ソフトウェアの再利用や新たなソフトウェア構築を行う際に、既存のソフトウェアとどの程度似ているかを知ることは、効率的なソフトウェア構築を行う際には必須の情報である。本年度は、以下の3つの問題に対して分析を行った。 1. Androidは携帯ソフトウェアの基盤であり、Android向けに開発された多数のソフトウェアが公開されている。それらのソフトウェアがどのように利用されているかをグラフとして分析し、べき乗則として一般のソフトウェアと同様に成り立っているかを調査、分析した。この結果、一般のソフトウェア集合と同様にAndroidのソフトウェア集合は、べき乗則が成り立ち、少数の一部の部品が繰り返し利用されていることがわかった。 2. 類似のソフトウェアをまとめて集約し、いわゆるリファクタリングを行うための、プログラム間の差分の抽出方法の検討、および、類似メソッドの集約するための支援方法について検討し、それぞれ実際のプロトタイプシステムを開発し、それぞれの手法が、有効に働き、リファクタリング支援につながることを検証した。 3. ソフトウェアの類似度としてコードクローンは重要な手がかりを示す。コードクローンは、欠陥を引き起こすと言われているが、定量的な評価はなされていなかった。そこで、コードクローンと欠陥修正の関係を、そのコードの生存期間を考慮して分析を行った結果、寿命の長いコードクローンより短いコードクローンが多くの欠陥を引き起こすことがわかった。
|