ソースコードの利用関係を用いた 再利用性評価手法の提案 横森 励士, 藤原 晃, 山本 哲男 松下 誠, 楠本 真二, 井上 克郎 大阪大学大学院基礎工学研究科 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 1 背景 ソフトウェア開発効率を向上するための手法とし て、再利用が注目されている 再利用とは既存のソフトウェア部品を同一システム内、 他のシステム内で用いること 部品が再利用に適しているか判断するために、 再利用性を定量的に示すことが必要 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 2 従来の再利用性評価手法 従来の再利用性評価手法は、個々の部品の静的な特性 を評価している コードメトリクスを足し合わせて再利用性を評価[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). JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 3 実績に基づく評価 計量社会学で一般に用いられている手法 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://wwwdb.stanford.edu/~backrub/pageranksub.ps JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 4 本研究の目的 利用実績に基づくソフトウェア部品の再利用性評価 手法を提案 提案手法による再利用性評価システムを実装 Javaソースコードに対して適用実験を行う 提案手法が利用実績を反映しているか JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 5 ソフトウェア部品 ソフトウェア開発者が再利用を行う単位をソフトウェ ア部品と呼ぶ ソースコードファイル、ドキュメントを部品として抽出 部品間には利用関係が存在する c4 c5 c1 c1 ' c2 c2 ' (a) 部品間の関係 c3 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 6 類似部品群(1) 実際に部品を抽出した場合、コピーした部品やコ ピーして一部変更した部品が多く存在する 類似した部品をまとめて類似部品群とする c4 c5 cC44 c1 c1 ' c1 c2 c2 ' (a) 部品間の関係 c3 c2 C2 JSTミーティング cC55 c1 ' C1 c2 ' C3 c3 Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 7 類似部品群(2) 所属する部品同士に利用関係があれば、部品群 間にも利用関係がある c4 c5 c1 c1 ' c2 c2 ' (a) 部品間の関係 C4 C5 C1 c3 C2 JSTミーティング C3 (b) 部品群間の関係 Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 8 相対的再利用性 再利用を用いてソフトウェア開発が繰り返されると、 利用関係は時間とともに変化していく 十分な時間が経過した状態で、部品の利用実績に 基づいて再利用性を評価 多数の部品間の利用関係から相対的に決まる 「相対的再利用性」 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 9 部品の分類 実際に部品を抽出した場合、コピーや類似した部品 が多数含まれる 類似部品群を相対的再利用性評価の対象とする JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 10 相対的再利用性評価値(1) 開発者は再利用性が高いと判断した部品群を利 用する 部品群を利用する→「再利用性が高い」という支持 投票をしたとみなす 多くの部品群から投票される部品群は再利用性評価が高い 再利用性評価が高い部品群から投票を受ける部品群は再利用 性評価が高い 部品群同士で互いに投票しあうことで評価値が循 環し相対的再利用性評価値が決まる JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 11 相対的再利用性評価値(2) 所属する部品群の評価値を部品の評価値とし、部 品を順位付けする 本提案手法を「Relative Reusability Ranking」 法(R3法)と呼ぶ JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 12 相対的再利用性評価値(3) C1 0.333 vC 1 1 C1 0.200 C2 C1 C2 0.333 vC 0.400 0.200 0.167 2 2 50% 0.200 C2 0.167 100% 100%0.167 0.400 0.200 0.333 C1 C 0.1670.333 C2 0.333 C3 C2 C1 C2 C1 3 0.167 CvC C0.250 C2 C 0.400 C2 0.167 0.417 13 3C 1 0.5000.333 0.167 0.167 1 2 0.334 0.250 C 0.500 0.2500.167 0.167 3 0.500 0.334 C3 0.417 0.167 0.250 C3 C3 C C3 0.417 0.334 3 C 50% 3 0.417 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 13 相対的再利用性評価値(4) 相対的再利用性評価値を求める計算は行列の固 有ベクトルを求める計算に帰着される C1 50% v1 C1 C2 v2 50% 0.200 0.400 100% C2 0.200 100% 0.200 0.400 C3 v3 C3 0.400 0.200 v1 V v2 v 3 0 0.5 0.5 D 0 0 1 1 0 0 V = Dt・V λ=1の固有ベクトル 0.4 0 0 1 0.4 0.2 0.5 0 0 0.2 0.4 0.5 1 0 0.4 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 14 Javaへの適用 ソースコードファイルを部品とする 類似度にはSlineを用いる[5] 2つのソースコード間で一致する行の割合 SMMT(Similarity Metrics Mesuring Tool)を用いて Slineを計測する 継承、インターフェイスの実装、メソッド呼出を部品 間の利用関係とする [5]山本, 松下, 神谷, 井上:``ソフトウェアシステムの類似度とその計測ツールSMMT'', 電子情報通信学会論文誌 D-I(採録決定). JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 15 R3-Systemの構成 Java ファイル (N個) SMMT ファイル間の関係 抽出部 クラスタ分析 ツール 部品群間の関係 抽出部 部品群の順位 →ファイルの順位 相対的再利用性 計算部 N個のファイルの順位 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 16 JDKへの適用 JDK(Java Development Kit) 1.3.0のソースコードへ 適用(1877 files, 18.4MB) 言語仕様上、直接的、間接的に利用しなければならな いクラスが上位を占めている 順位 1 2 3 4 5 6 7 8 9 10 クラス名 java.lang.Object java.lang.Class java.lang.Throwable java.lang.Exception java.io.IOException java.lang.StringBuffer java.lang.SecurityManager java.io.InputStream java.lang.reflect.Field java.lang.reflect.Constructor JSTミーティング 評価値 0.161269 0.087124 0.055101 0.031032 0.013438 0.012144 0.011700 0.010277 0.009483 0.009370 Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 17 研究室内ソースコードへの適用 研究室内で作成したツールと、使用したパッケージの ソースコードへ適用(582 files, 6.1MB) 類似した部品は同一評価値を持っている 作成したツールより使用パッケージの方が評価が高い 順位 1 2 2 4 5 6 7 8 8 10 クラス名 antlr.Token antlr.debug.Event antlr.debug.NewLineEvent antlr.collections.impl.Vector jp.gr.java_conf.keisuken.text.html.HtmlParameter jp.gr.java_conf.keisuken.net.server.ServerProperties Jama.Matrix jp.gr.java_conf.keisuken.util.IntegerArray jp.gr.java_conf.keisuken.util.LongArray jp.ac.osaka_u.es.ics.iip_lab.metrics.parser.java.IdentifierInfo JSTミーティング 評価値 0.107270 0.061890 0.061890 0.054348 0.052461 0.036995 0.015649 0.013907 0.013907 0.013654 Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 18 提案手法の応用 R3法をソフトウェア部品検索へ応用 インターネットを通じてソフトウェア部品を収集 R3法で部品を順位付け 検索結果を相対的再利用性で順位付けして表示 R3-System インターネット 部品の収集 部品リポジトリ 順位付け 部品検索 エンジン JSTミーティング 検索キー 検索結果 Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 19 まとめ まとめ 類似部品群間の利用関係から再利用性を評価する手 法を提案した 提案する手法に基づいて再利用性評価を行うシステムを 開発し、Javaソースコードを対象に適用した 適用結果から、提案する評価手法が利用実績を反映し ていることが示された 今後の課題 より多くの部品に対して適用する 利用関係の種類による重み付けの検討 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 20 JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 21 評価が循環しない場合 部品全体における票の重みの偏りを分析することで相対的 再利用性を評価している 票が全体に循環しなければ正しく評価できない 利用してない部品に対しては非常に低い重みの票を投票したとみなす JSTミーティング Software Engineering Research Group, Department of Informatics and Mathematical Science, Graduate School of Engineering Science, Osaka University 22
© Copyright 2024 ExpyDoc