ソフトウェア部品グラフの次数分布におけるべき乗則の調査

Slides:



Advertisements
Similar presentations
生物統計学・第 5 回 比べる準備をする 標準偏差、標準誤差、標準化 2013 年 11 月 7 日 生命環境科学域 応用生命科学 類 尾形 善之.
Advertisements

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
利用実績に基づくソフトウェア部品検索システムSPARS-J
データ解析基礎 4. 正規分布と相関係数 keyword 正規分布(教科書:31ページ~38ページ) 正規分布の性質 偏差値
アクセス修飾子過剰性の変遷に着目したJavaプログラム部品の分析
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
FreeBSD Ports Collection におけるファイルクローンの検出
第3章 重回帰分析 ー 計量経済学 ー.
主成分分析                     結城  隆   .
正規性の検定 ● χ2分布を用いる適合度検定 ●コルモゴロフ‐スミノルフ検定
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
コンポーネントランクを用いた ソフトウェアのクラス設計に関する 分析手法の提案
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
ソフトウェア部品の利用関係におけるスケールフリー性の調査
ソースコードに対する適用可能な修正手順を 可視化するリファクタリング支援手法の提案
プログラム実行履歴を用いたトランザクションファンクション抽出手法
オントロジーを使用した プログラム開発支援システムの提案
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
Javaクラスの利用関係を用いた ソフトウェア部品のカテゴリ階層構築法
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
ネットワーク共生環境を築く情報技術の創出 テーマ4:高信頼性・高安全性を有するネットワーク共生環境の構築技術の創出
動的依存グラフの3-gramを用いた 実行トレースの比較手法
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
動的情報を利用したソフトウェア 部品評価手法
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
環境リスクマネジメントに関する 検索システム
WWW上の効率的な ハブ探索法の提案と実装
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
利用実績に基づくソフトウェア部品検索システムSPARS-J
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価
主成分分析 Principal Component Analysis PCA
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
プログラム理解におけるThin sliceの 統計的調査による有用性評価
バイトコードを単位とするJavaスライスシステムの試作
コードスメルの深刻度がリファクタリングの実施に与える影響の実証的研究
様々な情報源(4章).
部分的最小二乗回帰 Partial Least Squares Regression PLS
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
第3章 線形回帰モデル 修士1年 山田 孝太郎.
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
情報経済システム論:第13回 担当教員 黒田敏史 2019/5/7 情報経済システム論.
ソフトウェア工学 知能情報学部 新田直也.
構造的類似性を持つ半構造化文書における頻度分析
情報の集約 記述統計 記述統計とは、収集したデータの分布を明らかにする事により、データの示す傾向や性質を要約することです。データを収集してもそこから情報を読み取らなければ意味はありません。特に膨大な量のデータになれば読みやすい形にまとめて要約する必要があります。
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
コードクローン解析に基づく デザインパターン適用候補の検出手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
Presentation transcript:

ソフトウェア部品グラフの次数分布におけるべき乗則の調査 ○市井 誠,松下 誠 ,井上 克郎 大阪大学 大学院情報科学研究科 2006/7/19 FORCE 3rd Workshop

ソフトウェア部品グラフ ソフトウェア部品 (部品) ソフトウェア部品グラフ (部品グラフ) A B ソフトウェアの構成単位 クラス,関数,… 互いに利用関係が存在 変数宣言,呼び出し,… ソフトウェア部品グラフ (部品グラフ) ソフトウェア部品を頂点・利用関係を有向辺としたグラフ ソフトウェアの静的な構造を反映 class A { public void exec () { … } class B { … A.exec(); } A B 背景としてソフトウェア部品グラフについて。 まずソフトウェア部品とは,クラスや関数といったソフトウェアの構成単位のことを指す. 部品間には,変数宣言や,呼び出しなどの利用関係が存在する 例えばJavaのクラスを部品とすると,これらのクラスA,Bはそれぞれ部品になる.  クラスAにはexec()というメソッドがあり,Bには,そのメソッドに対する呼び出しが存在する.  このとき,BからAへの利用関係が存在する. ソフトウェア部品グラフは,ソフトウェア部品を頂点,利用関係を有効辺としたグラフのことを言う. 先ほどの部品と利用関係は,このような2頂点からなるグラフとして表される. 実際にはソフトウェア全体などでグラフを構成する. ソフトウェアの静的な構造を反映していて, ソフトウェア工学の様々な手法に用いられる. 本研究では,ソフトウェアをソフトウェア部品グラフとして表し, その特徴から,ソフトウェアの性質を得ることを目標とする. このソフトウェアは○○○だ! ソフトウェア部品グラフ ソフトウェア 2006/7/19 FORCE 3rd Workshop

部品グラフとべき乗則 頂点の次数分布: グラフを特徴付ける重要な要素 部品グラフの次数分布に関する研究 これらの研究の特徴 JDKのクラス図を部品グラフを見なしたとき,次数がべき乗則に従う[12] C++のソフトウェアの部品グラフの次数がべき乗則に従う[8] これらの研究の特徴 対象は部分的な利用関係に基づく単体のソフトウェアの部品グラフのみ グラフとしての共通する性質を得ることに主眼があり, 個々のソフトウェアの性質との関連に関して議論されていない べき乗則 (べき分布): 値 x をもつ要素の出現頻度が,x のべき乗に比例する P[X=x] ~ x-a 本研究では,部品グラフの特徴として,頂点の次数分布に注目する. 頂点の次数分布は,一般的に,グラフを特徴付ける重要な要素と言われている. 部品グラフの次数分布における研究として, ・JDK ・C++ がある.べき乗則とは,…,興味深い性質. これは既存研究により示されている,部品グラフの全体像. 真ん中の辺り,ごく一部の部品が多くの利用関係をもつのに対して, 周辺には,ほとんど利用関係を持たない部品が多数存在することがわかる. こういう感じで研究されているが,これらの研究は, ・対象は部分的な利用関係にもとづき,単体のソフトウェアの部品グラフで,一般的な部品グラフではない ・これらの方々が統計を専門としているからだと思うが,グラフとしての~. (次ページつなぎ) 本研究では,この辺りをふまえて, [3] [12] S. Valverde, R. Ferrer-Cancho and R. V. Sole, "Scale-free Networks from Optimal Design", Europhysics Letters, 2002 [8] C. R. Myers, “Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs”, Physical Review E 68, 046116 ,2003 2006/7/19 FORCE 3rd Workshop

研究の目的 べき乗則に注目した部品グラフの次数分布の調査 調査1: 詳細な利用関係に基づく部品グラフ・複数のソフトウェア集合に基づく部品グラフの次数は,べき乗則に従うか? 多数のソフトウェアを収集・解析して部品グラフを構築し,調査 調査2: ソフトウェアの設計の特徴を,部品グラフの次数分布から読み取ることはできるか? 異なる部品集合に基づく部品グラフの次数分布を比較 既存研究とは異なった視点で,べき乗則に注目した部品グラフの次数分布の調査. 注目するのは以下2点: ・ 2006/7/19 FORCE 3rd Workshop

発表の流れ 準備 調査1 調査2 考察 まとめ 部品グラフと部品集合 調査で示す内容 部品グラフの次数がべき乗則に従うか ソフトウェア設計の特徴を部品グラフの次数分布から読み取れるか 考察 ソフトウェアの設計評価に関して まとめ 2006/7/19 FORCE 3rd Workshop

準備: 部品グラフと部品集合 対象:Javaソフトウェアに基づく部品グラフ 部品集合 部品(頂点):Javaのクラス 継承,実装,変数宣言,生成,フィールド参照,メソッド呼び出し 既存研究では,継承や実装,変数宣言(フィールドのみ)など,部分的 部品集合 説明 クラス数 JDK Java 基本ライブラリ JDK1.4 約11,000 ECLIPSE Java統合開発環境 Eclipse 3.0.1 約14,000 NETBEANS Java統合開発環境 NetBeans 3.6 約13,000 APACHE Apache Projectから収集したソフトウェア集合 約59,000 ALL JDK, Eclipse, NetBeans, Apache Project, SourceForgeから収集したソフトウェア集合 約180,000 2006/7/19 FORCE 3rd Workshop

準備: 調査で示す内容 (1/2) 次数分布のプロット P[X=x] ~ x-a 入力次数と出力次数を個別に示す 両対数軸を用いた累積度数プロット べき乗則に従う場合,点が直線上にならぶ P[X=x] ~ x-a 傾き: -(a-1) 傾き: -a 調査結果として示す内容について説明します. まず,頂点の次数分布のプロットを示します. 部品グラフは有向グラフであり,入力と出力に分けることができますので,入力次数と出力次数を個別に示します. そしてプロットについてですが,べき乗則に従う場合, 普通にプロットしますとこのように特徴が捉えられない図になりますので,両対数軸を用います. すると点が直線上に並び,その傾きはべきの乗数であるaとなるのですが, すると値の大きな部分にばらつきが出てしまいます. そこで,上位からの累積度数を取ってプロットします. すると,上位のばらつきが吸収され,よりきれいに直線上に並びます. このときの傾きは-(a-1)となります. 値の大きい部分にばらつき 入力次数:2 出力次数:1 2006/7/19 FORCE 3rd Workshop

準備:調査で示す内容 (2/2) 回帰分析により得られる値 P[X=x] ~ x-a べき乗則のパラメータ a 寄与率 R*2 べき乗則に従う度合い P[X=x] ~ x-a 傾き: -(a-1) また,この状態から回帰直線を求めることにより,べき乗則のパラメータである a をもとめます. また,べき乗則に従う度合いとして,対象がどの程度回帰モデルに従っているか,を示す寄与率を求めます. 2006/7/19 FORCE 3rd Workshop

発表の流れ 準備 調査1 調査2 考察 まとめ 部品グラフと部品集合 調査で示す内容 部品グラフの次数がべき乗則に従うか ソフトウェア設計の特徴を部品グラフの次数分布から読み取れるか 考察 ソフトウェアの設計評価に関して まとめ 2006/7/19 FORCE 3rd Workshop

調査1 詳細な利用関係に基づく部品グラフ・複数のソフトウェア集合に基づく部品グラフの次数分布は,べき乗則に従うか? 入力次数・出力次数を調査 部品集合 JDK, ALL 次数と部品との関連を調査し,その要因を考察 上位の部品の傾向,次数とメトリクスとの相関 部品集合 ALL 2006/7/19 FORCE 3rd Workshop

調査1: 入力次数の分布 JDK ALL 最大値:116,326 最大値:6,461 a R*2 JDK ALL べき乗則に従う ・グラフ,表の見方 ・きれいに直線上にならんでいる ・寄与率も高い →べき乗則に従う. ・べきの乗数であるaの値は,他の分野で観測されることの多い 2 に近い値.  例えばWWW上のページのリンク数もこの辺. ・最大値はJDKは約6400だが,対してALLは約11万 →部品数の違いを考慮しても,大きな差が出ている a R*2 JDK 2.1 ±8.6×10-3 0.99 ALL 2.0 ±1.4×10-3 1.00 べき乗則に従う 値域に大きな差が見られる 2006/7/19 FORCE 3rd Workshop

調査1: 出力次数の分布 JDK ALL 最大値:140 最大値:354 べき乗則には従わない 値域はそれほど変わらない a R*2 JDK ・図,表の見方. ・値の大きな範囲では入力と同様に直線だが,  値の小さな範囲で曲線になっている →べき分布では無い <s>・参考程度に直線に回帰してみると,かなり大きな傾き.  極端な値が出にくい.</s> ・最大値はJDKが140でALLは350で,あまり大きな違いは無い べき乗則には従わない 値の小さな部分は曲線 値域はそれほど変わらない a R*2 JDK 3.1 ±8.2×10-2 0.88 ALL 3.7 ±6.9×10-2 0.90 2006/7/19 FORCE 3rd Workshop

調査1: 入力次数と部品との関連 ALLの入力次数上位の部品 メトリクスとの相関** 入力次数がべき乗則に従う要因 部品が持つ役割に関連 JDKなど,基礎的な役割をもつ部品 String,Objectは特に大きな値 メトリクスとの相関** 行数,複雑度*とは相関なし メソッド数とやや相関 クラス名 行数 出力次数 入力次数 1 java.lang.String 675 21 116,326 2 java.lang.Object 35 4 98,377 3 java.lang.Class 605 41 29,767 java.lang.Exception 15 21,057 5 java.lang.Throwable 136 12 19,536 出力次数 行数 複雑度* メソッド数 入力次数 0.00 0.07 0.08 0.24 入力次数がべき乗則に従う要因 部品が持つ役割に関連 一部の基礎的な部品は,様々な部分から利用される 多くの部品は,ソフトウェアの一部など局地的に利用されるのみ ・入力次数に関して,部品との関連をみていくことで,  べき乗則に従う要因を調べる. ・表(上)の説明 ・JDKの部品が並んでいる. ・その中でも,文字列を表すクラスであるString,すべてのクラスの親クラスであるObjectは特に大きな値. ・表(下)の説明  ・入力次数と,出力次数,行数,複雑度,メソッド数と相関を求めた結果  ・部品そのものから得られるメトリクス ・メソッド数とやや相関が見られる程度で,他とは相関が見られない →入力次数は部品の役割に関連するため  ・基礎的な部品は様々な所から利用され,きわめて大きな値  ・特殊な役割の部品は,ソフトウェアの一部など局地的に利用されるのみで,小さい値しか持たない ** スピアマンの順位相関係数 2006/7/19 FORCE 3rd Workshop *WMC: サイクロマチック数を重みとした,重み付きメソッド和

調査1: 出力次数と部品との関連 ALLの出力次数上位の部品 メトリクスとの相関 出力次数がべき乗則に従わない要因 部品の規模や複雑さに関連 単純に大きな部品 メトリクスとの相関 行数や複雑度・メソッド数と高い相関 クラス名 行数 出力次数 入力次数 1 org.apache.poi… …FunctionEval 364 354 2 org.jgraph.GPGraphpad 2,196 255 130 3 com.jgraph.GPGraphpad 2,200 253 131 4 542 252 209 5 org.eclipse.jdt… …ASTConverter 4,520 223 入力次数 行数 複雑度 メソッド数 出力次数 0.00 0.83 0.75 0.64 出力次数がべき乗則に従わない要因 部品の規模や複雑さに関連 極端に大きな部品は非現実的 ・出力次数に関して,部品との関連をみていくことで,  べき乗則に従わなかった要因を調べる. ・表(上)の説明 ・単純に規模の大きな部品が並んでいる ・表(下)の説明  ・出力次数と,入力次数,行数,複雑度,メソッド数と相関を取った結果  ・... →出力次数は,他の部品の存在にあまり影響されず,  部品の規模や複雑さと関係するため  ・部品に記述された内容に基づいている  ・極端に大きな部品=規模が大きく複雑な部品は非現実的で,あまり存在せず,   存在してもたかだか200~300程度ということ. 2006/7/19 FORCE 3rd Workshop

調査1: まとめ 入力次数 出力次数 べき乗則に従う 部品の役割に関連し,基礎的な役割の部品が大きな次数をもつ べき乗則には従わない 高い度合い 部品集合によって値域に大きな差 部品の役割に関連し,基礎的な役割の部品が大きな次数をもつ 出力次数 べき乗則には従わない 値の小さな部分が異なる 部品集合によって値域はあまり変わらない 部品の規模や複雑さと関連し,極端に大きな部品はあまり存在しない ・入力次数  ・高い度合いでべき乗則に従い,部品集合により値域に大きな差  ・これは,部品の役割に関連し,基礎的な部品は大きな次数をもつため. ・出力次数  ・べき乗則に従わず,部品集合がかわっても値域はあまり変わらない  ・これは,出力次数が部品そのものの規模や複雑さに関係し,極端に大きな部品は存在しないため, 2006/7/19 FORCE 3rd Workshop

発表の流れ 準備 調査1 調査2 考察 まとめ 部品グラフと部品集合 調査で示す内容 部品グラフの次数がべき乗則に従うか ソフトウェア設計の特徴を部品グラフの次数分布から読み取れるか 考察 ソフトウェアの設計評価に関して まとめ 2006/7/19 FORCE 3rd Workshop

調査2 ソフトウェアの設計の特徴を,部品グラフの次数分布から読み取ることはできるか? 異なる部品集合の次数分布を比較 2-1: ソフトウェア単体と ソフトウェア集合 部品集合 ECLIPSE, NETBEANS と ALL, APACHE 入力次数の分布を比較 2-2: 類似したソフトウェア同士 部品集合ECLIPSEとNETBEANS 入力次数,出力次数の分布を比較 2006/7/19 FORCE 3rd Workshop

実験2-1: 入力次数分布 a R*2 ECLIPSE NETBEANS APACHE ALL 2.2 ±1.6×10-2 0.96 NETBEANS 2.2 ±7.9×10-3 0.99 APACHE 2.4 ±1.1×10-2 0.98 ALL 2.0 ±1.4×10-3 1.00 ECLIPSE APACHE NETBEANS ALL ・図の説明 ・Eclipseはべき乗則に従う度合いがやや低く,また,値の大きな部分で傾きに変化が見られる ・NetBeansはべき乗則に従う度合いは高いが,Eclipse同様,値の大きな部分で傾きに変化が見られる ・Apache, Allは,ともにべき乗則に従う度合いが高く,また傾きの変化は見られない ソフトウェア単体は,値の大きな部分で傾きが変化 ソフトウェア集合は,べき乗則に従う度合いが高い 2006/7/19 FORCE 3rd Workshop

調査2-1: まとめ 見られた傾向 要因の考察 ソフトウェア単体は,値の大きな部分で傾きに変化が見られる ソフトウェア集合は,より高い度合いでべき乗則に従う ソフトウェア単体は,利用関係が一部の部品に集中する度合いが低い 要因の考察 ソフトウェア単体では,一部の部品に利用関係が集中しないような構造となっている レイヤー構造など ソフトウェア集合では,ソフトウェア間で共通して利用される部品に利用関係が集中 JDKやXML関連の部品などに限定 それぞれのソフトウェアでのみ利用される部品の入力次数は相対的に低い 2006/7/19 FORCE 3rd Workshop

調査2-2: 対象説明 ECLIPSEとNETBEANS の比較をおこなう 比較内容 どちらも Java の統合開発環境 ほぼ同規模 入力次数と出力次数の分布 次に,調査2について まず比較対象について  D3:Eclipse と D4: NetBeansの比較をおこなう  これらはどちらも Javaの統合開発環境であり,Javaソースコードの編集およびビルド・デバッグ機能,また構成管理機能をもつ.  また,D3は14000クラス/120万行, D4は13000クラスで100万行と,ほぼ同規模であるといえる. これらについて,入力辺数および出力辺数の分布を比較する --- Eclipse 3.0 NetBeans 3.5 ダウンロードしてきたアーカイブに含まれるクラス群が対象. 2006/7/19 FORCE 3rd Workshop

調査2-2: 入力次数 ECLIPSE NETBEANS ECLIPSEには極端な傾きの変化(カットオフ)がみられる 最大値にも大きな差 最大値:1,497 最大値:1,921 ECLIPSEには極端な傾きの変化(カットオフ)がみられる NETBEANSにも見られるが,やや小さい 最大値にも大きな差 ECLIPSEの方が,利用関係が集中する度合いが低い まず入力辺数の比較 図はどちらも入力辺数の分布を,対数軸かつ累積度数で示したもので, 左側がD3, 右側がD4となっている. どちらも大体直線になるが,D3の方については,約500付近で カットオフとよばれる傾きの変化が極端に見られる. また,最大値をみてみると,D3は最大値1500付近なのに対し,D4では1900以上となっている. これらのことから,D3については,上位でも比較的入力辺数が小さい, すなわち利用関係の集中度が低い,と言える. --- D3: a=2.20 ± 0.02 D4: a=1.99 ± 0.01 ただし平均だと D3: 10.09 D4: 5.14 で逆転. ただし,今の話は上位あたりなので特に問題は無い. (D3は途中まで傾きがやや小さいので,その辺りが効いている) というかD4は単純に辺数が多い. 2006/7/19 FORCE 3rd Workshop

調査2-2: 出力次数 分布の形状はほぼ同じ 最大値に大きな差 ECLIPSEの方が,単位行あたりの利用部品数が多い ECLIPSE NETBEANS 最大値:102 最大値:192 分布の形状はほぼ同じ 最大値に大きな差 ECLIPSEの方が,単位行あたりの利用部品数が多い 続いて出力辺数を,同様に対数軸かつ累積度数で示す. 先ほどとことなり,分布の形状自体には差がみられない しかし,最大値をみてみると D3が200近いのに対してD4では100程度と,大きな差がみられる. このことから,D3は全体的に1部品辺りの利用部品数が多いと言える. D3とD4は同程度の総行数であることも考慮すると,D3は単位行あたりの利用部品数が多い,と言える. --- 意味があるかどうか別として,平均だと D2: 10.09 D3: 5.14 こちらも2倍程度の差. (* というか当然入力と同じになる) 2006/7/19 FORCE 3rd Workshop

調査2-2: まとめ 見られた傾向 要因の考察 ECLIPSEはNETBEANSよりも, 利用関係が集中する度合いが低い 単位行あたりの利用部品数が多い 要因の考察 ECLIPSEで中心的に利用される部品は,それぞれの役割が細分化されている 保守性や柔軟性のため 次数分布にアーキテクチャの違いが反映 --- 役割を細分化すると,理解がやや困難,てことを口頭で. 2006/7/19 FORCE 3rd Workshop

発表の流れ 準備 調査1 調査2 考察 まとめ 部品グラフと部品集合 調査で示す内容 部品グラフの次数がべき乗則に従うか ソフトウェア設計の特徴を部品グラフの次数分布から読み取れるか 考察 ソフトウェアの設計評価に関して まとめ 2006/7/19 FORCE 3rd Workshop

考察 次数分布をみることで,ソフトウェアの設計を評価出来るのでは無いだろうか? 以下の様なソフトウェアは設計に問題がある 入力次数がべき乗則に従う度合いが高い カットオフがほとんど存在しない 利用関係が一部の部品に集中しすぎている 設計が不十分で,基礎的な部品が直接利用されている "God Class": 一部のクラスに機能が集中しすぎている 具体的にメトリクスとして定式化し,指標を定めることが必要 2006/7/19 FORCE 3rd Workshop

発表の流れ 準備 調査1 調査2 考察 まとめ 部品グラフと部品集合 調査で示す内容 部品グラフの次数がべき乗則に従うか ソフトウェア設計の特徴を部品グラフの次数分布から読み取れるか 考察 ソフトウェアの設計評価に関して まとめ 2006/7/19 FORCE 3rd Workshop

まとめ べき乗則に注目した部品グラフの次数分布の調査 明らかになったこと ソフトウェアの設計の評価に関して考察 入力次数はべき乗則に従う 出力次数はべき乗則に従わない 値の小さい部分で異なる ソフトウェア設計の特徴が部品グラフの次数分布に現れる 利用関係の集中の度合い ソフトウェアのアーキテクチャ ソフトウェアの設計の評価に関して考察 今後,次数分布とソフトウェアの設計や品質とのより詳細な関連について調査する必要がある 2006/7/19 FORCE 3rd Workshop