Skip to main content
QUICK REVIEW

[論文レビュー] Hierarchical Small Worlds in Software Architecture

Sergi Valverde, Ricard V. Solé|arXiv (Cornell University)|Jul 11, 2003
Software Engineering Research参考文献 53被引用数 156
ひとこと要約

本稿は、オブジェクト指向ソフトウェアシステムに複雑ネットワーク理論を適用し、それらを有向クラスグラフとしてモデル化することで、普遍的な構造的パターンを明らかにする。ソフトウェアアーキテクチャが、カプセル化や制限付き成長といった言語レベルの特徴によって、スモールワールド的およびスケールフリー的性質を示すことが示され、プログラム理解および実証的ソフトウェア工学における新たな知見を提供する。

ABSTRACT

In this paper, we present a complex network approach to the study of software engineering. We have found universal network patterns in a large collection of object-oriented (OO) software systems written in C++ and Java. All the systems analyzed here display the small-world behavior, that is, the average distance between any pair of classes is very small even when coupling is low and cohesion is high. In addition, the structure of OO software is a very heterogeneous network characterized by a degree distribution following a power-law with similar exponents. We have investigated the origin of these universal patterns. Our study suggests that some features of OO programing languages, like encapsulation, seem to be largely responsible for the small-world behavior. On the other hand, software heterogeneity is largely independent of the purpose and objectives of the particular system under study and appears to be related to a pattern of constrained growth. A number of software engineering topics may benefit from the present approach, including empirical software measurement and program comprehension.

研究の動機と目的

  • 複雑ネットワーク理論を用いて、オブジェクト指向ソフトウェアシステムに普遍的な構造的パターンが存在するかを同定すること。
  • スモールワールド的およびスケールフリー的性質が、機能とは独立してソフトウェア設計に内在的であるかどうかを調査すること。
  • これらのパターンの起源がプログラミング言語の特徴およびシステム進化の制約要因にどのように関連するかを明らかにすること。
  • ネットワーク指標が実証的ソフトウェア測定およびプログラム理解を向上させ得ることを提唱すること。
  • 分散ソフトウェア開発における社会的・組織的要因とソースコードの構造的パターンの関係(コンウェイの法則を介して)を検討すること。

提案手法

  • C++およびJavaのヘッダーファイルから有向クラスグラフを構築し、ノードをクラス、エッジを継承およびコンposition(「所有する」)関係として定義する。
  • 平均路長、クラスタリング係数、次数分布といったネットワーク特性を測定し、スモールワールド的およびスケールフリー的特性を同定する。
  • 二部グラフとしてのクラス-メソッド関連グラフを分析し、メソッド-クラス関係がスモールワールド的挙動を生成する役割を調査する。
  • 統計的分析を用いて、複数の実世界のソフトウェアシステムにおいてべき乗則に従う次数分布(スケールフリーなネットワークの兆候)が存在するかを検証する。
  • ネットワークの中心性指標(例:Pagerankに類似した指標)を適用し、プログラム理解に有用な主要構成要素を同定する。
  • ソースコードからクラス宣言、継承、属性/パラメータ型を抽出するアルゴリズムを用いて、ネットワークを再構築する。

実験結果

リサーチクエスチョン

  • RQ1オブジェクト指向ソフトウェアシステムは、多様な応用分野にわたり一貫してスモールワールド的およびスケールフリー的ネットワーク特性を示すのか?
  • RQ2オブジェクト指向プログラミング言語に内在する、ソフトウェアアーキテクチャにおけるスモールワールド的挙動を生じさせるメカニズムは何か?
  • RQ3ソフトウェアネットワークのスケールフリー性は、機能的要件ではなく、制限付きの進化的成長プロセスに起因する程度はどの程度か?
  • RQ4分散ソフトウェア開発における社会的・組織的要因は、ソースコードに観察される構造的パターンにどのように影響を与えるか?
  • RQ5ネットワークベースの指標は、実証的ソフトウェア測定およびプログラム理解の精度と予測可能性を向上させ得るか?

主な発見

  • 解析されたすべてのオブジェクト指向ソフトウェアシステムが、スモールワールド的性質を示しており、低結合・高凝集の条件下でも短い平均路長と高いクラスタリングを維持している。
  • ソフトウェアネットワークの次数分布は、システム間で類似した指数を示すべき乗則に従っており、スケールフリー構造であることを示している。
  • ソフトウェアにおけるスモールワールド的挙動は、主にメソッドとクラスの二部グラフ的関連、特にメソッドのパラメータおよび属性関係に起因している。
  • ソフトウェアネットワークのスケールフリー性は、システムの機能的目的とは独立して、制限付きの成長プロセスに起因する。
  • 高い接続性を持つハブクラスは、ウェブグラフにおけるハブやアーキテクチャと同様に、プログラム理解の中心的役割を果たす。
  • 中心性などのネットワーク指標を用いることで、大規模なコードベースにおける主要構成要素を効率的に同定でき、自動解析およびソフトウェア保守を支援できる。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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