2003 Fiscal Year Annual Research Report
ソースプログラムの収集・分類・解析を行う統合システムに関する研究
Project/Area Number |
14380144
|
Research Institution | Osaka University |
Principal Investigator |
井上 克郎 大阪大学, 大学院・情報科学研究科, 教授 (20168438)
|
Co-Investigator(Kenkyū-buntansha) |
松下 誠 大阪大学, 大学院・情報科学研究科, 助手 (60304028)
楠本 真二 大阪大学, 大学院・情報科学研究科, 助教授 (30234438)
|
Keywords | 潜在的意味解析手法LSA / 識別子 / 類似度 / クラスタ / 自動分類 |
Research Abstract |
本年度は、ソースプログラムの分類を効率よく行う方式の検討、およびシステムの試作を行った。 提案するソフトウェア分類手法では、ソフトウェアが持つそれぞれの側面を抽出するために、プログラムに含まれる変数名や、関数名などの識別子に着目する。これら識別子は、それらが使われている文脈での動作を表しているものと考える。例えばwindowという識別子は何らかのウィドウを表しており、この識別子が使われているプログラム文の近傍ではなんらかのGUIに関する動作が行われている可能性が高い。 関連の高い識別子群を特定するために、自然言語の分野で利用されている潜在的意味解析手法Latent Semantic Analysisを応用した。LSAは、直接連した単語がなくとも、類似した単語を抽出することができる。 この方式を用いてシステムを構築した。システムでは、まず、各ソフトウェアからトークンの抽出を行い、共起行列を作成する。次に、分析に不要なトークンを取りのぞき、LSAを適用する。その結果を用いて識別子間の類似度を計測し、その類似度に基づいてクラスタ分析を行う。その結果得られたクラスタ一つ一つをカテゴリとして、ソフトウェアの分類を行う。 本システムを用いて、実際にソフトウェアの分類を行い、既存の分類と比較して適正な分類が可能かどうか確認を行った。その結果、既存の分類と比較した場合、得られたクラスタの多数は既存の分類に従っていることがわかった。 本手法を用いることにより、対象ソフトウェアに対する詳細な知識が無くとも自動的に分類が行えるようになった。
|
-
[Publications] 小堀一雄: "類似度メトリクスを用いたJavaソースコード間類似度測定ツールの試作"電子情報通信学会技術研究報告(SS2003-2). Vol.103,No.102. 7-12 (2003)
-
[Publications] Shinji Kawaguchi: "Automatic Categorization Tool for Open Software Repositories"The Proceedings of the Third Workshop on Open Source Software Engineering : Taking Stock of the Bazaar (cooperated with ICSE2003). 79-83 (2003)
-
[Publications] Shinji Kawaguchi: "Automatic Categorization Algorithm for Evolvable Software Archive"The Proceedings of the International Workshop on Principles of Software Evolution (IWPSE2003). 195-200 (2003)
-
[Publications] Shinji Kawaguchi: "Automatic Categorization Tool for Open Software Repositories"The Proceedings of the 1st Workshop on Open Source in an Industrial Context (OSIC' 03). 11-15 (2003)
-
[Publications] Kazuo Kobori: "Classification of Java Programs in SPARS-J"The International Workshop on Community-Driven Evolution of Knowledge Artifacts (SLIDES PDF Files). 1-26 (2003)