1 / 30

利用頻度に基づくソフトウェア部品の 解析・検索システムの提案

利用頻度に基づくソフトウェア部品の 解析・検索システムの提案. 山本 哲男* , 横森 励士** , 松下 誠** , 楠本 真二** , 井上 克郎** *科学技術振興事業団 **大阪大学. 背景. ソフトウェアの開発効率を向上するための手法として、再利用が注目されている 再利用とは既存のソフトウェア部品を同一システム内、他のシステム内で用いること 部品が再利用に適しているか判断するために、再利用性を定量的に示すことが必要. 静的な特性からは再利用性が低いと評価されていても、実際には頻繁に再利用されている部品も存在する.

aidan-neal
Download Presentation

利用頻度に基づくソフトウェア部品の 解析・検索システムの提案

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 利用頻度に基づくソフトウェア部品の解析・検索システムの提案利用頻度に基づくソフトウェア部品の解析・検索システムの提案 山本 哲男*, 横森 励士**, 松下 誠**, 楠本 真二**, 井上 克郎** *科学技術振興事業団 **大阪大学

  2. 背景 • ソフトウェアの開発効率を向上するための手法として、再利用が注目されている • 再利用とは既存のソフトウェア部品を同一システム内、他のシステム内で用いること • 部品が再利用に適しているか判断するために、再利用性を定量的に示すことが必要

  3. 静的な特性からは再利用性が低いと評価されていても、実際には頻繁に再利用されている部品も存在する静的な特性からは再利用性が低いと評価されていても、実際には頻繁に再利用されている部品も存在する 利用頻度に基づく再利用性を定量的に評価することが必要 従来の再利用性評価手法 • 従来の再利用性評価手法は、個々の部品の静的な特性を評価している • コードメトリクスを足し合わせて再利用性を評価[1] • インタフェース部分の情報から再利用性を評価[2] [1] L. Etzkorn et al.: ``Automated reusability quality analysis of OO legacy software,'' Information and Software Technology, Vol. 43, Issue 5, pp. 295-308 (2001). [2]山本 他: ``再利用特性に基づくコンポーネントメトリクスの提案と検証," FOSE2001, (2001).

  4. 利用頻度に基づく評価 • 計量社会学で一般に用いられている手法 • Influence Weight[3](学術論文の重要度を評価) • 多くの論文に引用される論文は重要である • 重要な論文に引用される論文はまた重要である • 他の応用 • Page Rank[4] (Webページの重要度を評価) • 多くのページからリンクされるページは重要である • 重要なページからリンクされるページはまた重要である [3] G. Pinski et al.:``Citation Influence for Journal Aggregates of Scientific Publications: Theory, with Application to the Literature of Physics,“ Information Processing and Management, Vol. 12, Num 5, pp. 297-312, (1976). [4] L. Page et al.: ``The PageRank Citation Ranking: Bringing Order to the Web,'' http://www-db.stanford.edu/~backrub/pageranksub.ps

  5. 利用頻度に基づく再利用性 • 利用頻度に基づいた評価手法R3(Relative Reusability Ranking)法 • ソフトウェア部品の利用関係に着目 • 被利用数が多い部品は重要 • 重要な部品から利用されている部品もまた重要

  6. 本研究の目的 • R3法に基づくソフトウェア部品の解析・検索システムSPARS(Software Product Archive, analysis and Retrieval System)の提案 • プロトタイプを用いた適用実験を行う • 提案手法が利用頻度を反映しているか

  7. ソフトウェア部品 • ソフトウェア開発者が再利用を行う単位をソフトウェア部品と呼ぶ • ソースコードファイル、ドキュメントを部品として抽出 • 部品間には利用関係が存在する c4 c5 c1 c1' c2 c2' c3 (a) 部品間の関係

  8. c4 C4 c5 C5 c1 c1' C1 c2 C2 c2' C3 c3 類似部品群(1) • 実際に部品を抽出した場合、コピーした部品やコピーして一部変更した部品が多く存在する • 類似した部品をまとめて類似部品群とする c4 c5 c1 c1' c2 c2' c3 (a) 部品間の関係

  9. (b) 部品群間の関係 類似部品群(2) • 所属する部品に利用関係があれば、部品群間にもその利用関係がある c4 c5 C4 C5 c1 c1' C1 c2 c2' c3 C2 C3 (a) 部品間の関係

  10. 相対的再利用性 • 再利用を用いてソフトウェア開発が繰り返されると、利用関係は時間とともに変化していく • 十分な時間が経過した状態で、部品の利用頻度に基づいて再利用性を評価 多数の部品間の利用関係から相対的に決まる 「相対的再利用性」

  11. 部品の分類 • 実際に部品を抽出した場合、コピーや類似した部品が多数含まれる • 類似部品群を相対的再利用性評価の対象とする

  12. 相対的再利用性評価値(1) • 開発者は再利用性が高いと判断した部品群を利用する • 部品群を利用する→「再利用性が高い」という支持投票をしたとみなす • 多くの部品群から投票される部品群は再利用性評価が高い • 再利用性評価が高い部品群から投票を受ける部品群は再利用性評価が高い • 部品群同士で互いに投票しあうことで評価値が循環し相対的再利用性評価値が決まる

  13. 相対的再利用性評価値(2) • 所属する部品群の評価値を部品の評価値とし、部品を順位付けする • 順位が高いほど再利用性が高い部品である

  14. C1 v1 C1 0.333 C1 C1 0.333 C2 v2 C2 0.167 C2 C2 0.333 0.167 50% C1 v1 C2 v2 50% 50% 0.167 50% C1 C1 0.500 C1 0.334 C1 C2 0.167 C2 C2 0.250 C2 0.333 100% 0.250 0.167 0.333 100% 100% 100% C3 v3 C3 0.333 C3 0.500 C3 C3 v3 C1 0.417 C1 C1 0.400 C2 0.167 C2 C2 0.200 0.167 0.250 0.167 0.200 0.500 0.334 0.167 0.167 0.200 0.167 C3 C3 0.417 C3 0.334 C3 0.417 0.400 0.200 0.250 C3 C3 0.417 C3 0.400 相対的再利用性評価値(3)

  15. Java ソースファイル群 システム構成 Raw Source Repository Parser Analyzer Source Repository Relation Repository Query Parser Searcher Browser Ranker

  16. Raw Source Repository • ファイルをそのままの形で保存する • パッケージ名とクラス名をキーとして格納 • クラスファイルそのもの • 相対的再利用評価値

  17. Parser • Javaファイルの構文解析を行う • 解析結果をSource Repositoryへ格納 • 検索時に利用する • 利用関係の抽出 • 利用関係をRelation Repositoryへ格納 • クラスの継承関係 • インターフェースの実装関係 • 抽象クラスの実装関係 • メソドの呼び出し関係 • フィールドの参照関係

  18. Parser (続き) • 特徴メトリクスの計測 • クラス名 • フィールド名 • メソド名 • メソドのシグニチャ • メソドの複雑度

  19. Analyzer • 類似ファイルを検索し、部品群化を行う • 特徴メトリクスの一致している割合により判断 • 部品群化されたファイルの利用関係を統合する

  20. Ranker • 相対的利用評価値の計算を行う • この計算はグラフの隣接行列の固有ベクトルを求める計算に帰着される • 計算した評価値はRaw Source Repositoryに格納する

  21. Searcher • 検索キーを元に必要な部品を検索する • 検索キー • キーワード • コード片 • 検索対象 • コメント • コード

  22. Browser • 検索キーと一致した部分とその検索キーを含むファイル名を表示する • Rankerで求めた評価値の順番に表示

  23. 適用実験 • プロトタイプを作成し、部品の順位が利用頻度を反映しているかどうかの実験を行った • 適用対象は、JDK 1.3.0 および10個のアプリケーション(総部品数は6426)

  24. 適用結果 • 言語仕様上、直接的、間接的に利用しなければならないクラスが上位を占めている

  25. 計算手法の有効性評価 • 非利用回数だけの順位はアプリケーションでよく利用されている部品が上位にくる

  26. 部品群化の有効性評価 • 例外を扱うクラスがよく利用されている • コピーされた部品の把握

  27. まとめ • まとめ • R3法に基づくソフトウェア部品の解析・検索システムSPARS(Software Product Archive, analysis and Retrieval System)の提案 • 提案手法が利用頻度を反映しているかプロトタイプを用いた適用実験を行った • 今後の課題 • SPARSの実装 • 利用関係の種類による重み付けの検討

  28. C1 v1 C2 v2 50% 50% 100% 100% C3 v3 C1 0.400 C2 0.200 0.200 V = Dt・V 0.200 0.400 0.200 C3 0.400 相対的再利用性評価値(4) • 相対的再利用性評価値を求める計算は行列の固有ベクトルを求める計算に帰着される λ=1の固有ベクトル

  29. 票が全体に循環しなければ正しく評価できない票が全体に循環しなければ正しく評価できない 利用してない部品に対しては非常に低い重みの票を投票したとみなす 評価が循環しない場合 • 部品全体における票の重みの偏りを分析することで相対的再利用性を評価している

More Related