Skip to main content
QUICK REVIEW

[論文レビュー] Software is a directed multigraph (and so is software process)

Robert Dąbrowski, Krzysztof Stencel|arXiv (Cornell University)|Mar 21, 2011
Software Engineering Research参考文献 9被引用数 3
ひとこと要約

本論文では、ソフトウェアシステムおよびその開発プロセスを有向多重グラフとして表現するグラフベースのモデルを提案する。これにより、統合的アーキテクチャ知識管理と定量的メトリクス計算が可能になる。アーティファクトを頂点、依存関係を複数のエッジタイプとしてモデル化することで、グラフデータベースを用いたツールに依存しない分析、継続的統合および検証が可能となり、ソフトウェア品質およびプロセス成熟度を評価する包括的な基盤を提供する。

ABSTRACT

For a software system, its architecture is typically defined as the fundamental organization of the system incorporated by its components, their relationships to one another and their environment, and the principles governing their design. If contributed to by the artifacts coresponding to engineering processes that govern the system's evolution, the definition gets natually extended into the architecture of software and software process. Obviously, as long as there were no software systems, managing their architecture was no problem at all; when there were only small systems, managing their architecture became a mild problem; and now we have gigantic software systems, and managing their architecture has become an equally gigantic problem (to paraphrase Edsger Dijkstra). In this paper we propose a simple, yet we believe effective, model for organizing architecture of software systems. First of all we postulate that only a hollistic approach that supports continuous integration and verification for all software and software process architectural artifacts is the one worth taking. Next we indicate a graph-based model that not only allows collecting and maintaining the architectural knowledge in respect to both software and software process, but allows to conveniently create various quantitive metric to asses their respective quality or maturity. Such model is actually independent of the development methodologies that are currently in-use, that is it could well be applied for projects managed in an adaptive, as well as in a formal approach. Eventually we argue that the model could actually be implemented by already existing tools, in particular graph databases are a convenient implementation of architectural repository.

研究の動機と目的

  • 大規模プロジェクトにおけるソフトウェアおよびソフトウェアプロセスアーキテクチャの管理の複雑化に対処すること。
  • ソフトウェアアーティファクトおよび開発プロセスアーティファクトのアーキテクチャ知識を、単一で一貫性のあるモデルに統合すること。
  • グラフベースのメトリクスを用いて、ソフトウェア品質およびプロセスマチュアティの体系的で定量的な評価を可能にすること。
  • グラフベースの基盤を用いて、すべてのアーキテクチャアーティファクトにおける継続的統合および検証を支援すること。
  • 実際のツール、特にグラフデータベースを用いて実装可能な妥当性を示すこと。

提案手法

  • アーティファクト(例:クラス、メソッド、要件)を頂点として、複数の依存関係タイプ(例:包含、実装、戻り値)をエッジとして表現する有向多重グラフとして、ソフトウェアシステムおよびプロセスをモデル化する。
  • 特定のアーティファクトおよびトレースタイプ(例:包含、実装、戻り値エッジを有するクラスビュー)を要約するためのグラフビューを定義する。
  • エッジ変換の推移的閉包(例:'包含'および'戻り値'を'map'に変換)を介してグラフマップを導入し、クラス図などの高レベルの抽象化を生成する。
  • グラフコンポーネント(A, T, V, L, E)から実数への関数としてメトリクスを定義し、グラフアルゴリズム(例:結合度要因、到達可能性)を用いて計算可能であるようにする。
  • アーキテクチャグラフの格納およびクエリに実用的なインフラストラクチャとしてグラフデータベースを用いる。
  • クエリ言語を用いたインタラクティブな探索を支援し、アーキテクチャ情報のフィルタリング、ズーム、詳細表示を可能にする。

実験結果

リサーチクエスチョン

  • RQ1ソフトウェアおよびソフトウェアプロセスアーティファクトをどのように一貫してモデル化すれば、統合的アーキテクチャ管理が可能になるか?
  • RQ2どのようなグラフベースの抽象化(ビューおよびマップ)が、異なる抽象化レベルでのソフトウェアアーキテクチャを効果的に表現できるか?
  • RQ3グラフモデルから効率的に計算可能な定量的メトリクスは何か? これらはソフトウェア品質およびプロセスマチュアティの評価に寄与するか?
  • RQ4既存のツール、特にグラフデータベースをどのように活用して、提案されたモデルの実装およびクエリを可能にするか?
  • RQ5グラフモデルは、アーキテクチャ的特性に基づいて、実世界のソフトウェアプロジェクトの体系的比較および分類を可能にするか?

主な発見

  • 有向多重グラフモデルは、ソフトウェアおよびソフトウェアプロセスアーティファクトを単一で分析可能な構造に統合し、包括的なアーキテクチャ管理を可能にした。
  • グラフビューおよびマップを用いることで、下位のグラフモデルから一般的なソフトウェア図(例:クラス図)を体系的に導出できる。
  • グラフ内の到達可能性特性を用いて、テストカバレッジや要件トレーサビリティなど、重要なソフトウェア品質属性を定義および検証できる。
  • 結合度要因およびその他の標準メトリクスは、モデル上でグラフアルゴリズムを用いて自然かつ効率的に表現・計算可能である。
  • このモデルは、既存の開発手法およびツールと互換性があり、現在のグラフデータベース技術を用いて実装可能である。
  • このフレームワークは、インタラクティブなアーキテクチャ探索およびメトリクス計算を可能にするクエリ言語の設計を可能にする。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。