2018 Fiscal Year Annual Research Report
Retrieving code clones that are harmful for software quality
Project/Area Number |
17H01725
|
Research Institution | Osaka University |
Principal Investigator |
肥後 芳樹 大阪大学, 情報科学研究科, 准教授 (70452414)
|
Project Period (FY) |
2017-04-01 – 2020-03-31
|
Keywords | コードクローン / 機械学習 |
Outline of Annual Research Achievements |
有害なコードクローンを判定する手法として,機械学習を用いる手法が既存研究で提案されている.これは開発者による有害か無害かの判定結果を学習することで,クローンが有害か否かを判定する手法である.しかし機械学習を用いるためには学習用のデータセットを用意しなくてはならない.既存手法では学習用データセットとして開発者やプロジェクトごとに有害か否かの判断結果を収集する必要があるため,準備にかかるコストが高いという問題がある. 一方でクローンセットの中には開発者やプロジェクトによらず無害であることが自明なクローンセットが存在する.無害であることが自明なクローンセットは学習用データセットを構築する際に自動で無害と判断することで準備にかかるコストを削減できる. そこで本年度は,クローンセット間の類似度を可視化することでコードクローンを分類する手法の開発に取り組んだ.提案手法を用いてオープンソースソフトウェアに対して実験を行った結果,3,993 種類のクローンセットから 145 個の 言語固有のクローンと 507 個の プロジェクト固有のクローンを抽出することができ,抽出された言語固有のクローンは無害であることを確認した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
コードクローン間の類似度を利用して無害なコードクローンを推定する手法を考案した. この手法を利用することによって,「無害でないと推定されなかったコードクローン=有害なコードクローン」ということから,有害なコードクローンを自動的に特定できる. 実施内容の中には当初は予定していなかった作業も含んではいるが,3年間の研究計画で問題なく当初の予定を達成できる見込みであり,二面目の成果としては順調に進展していると言える.
|
Strategy for Future Research Activity |
コードクローン情報を活用するという観点ではクローンペア形式の検出よりもクローンセット形式の検出の方が望ましいが,既存の検出手法はクローンペア形式でコードクローンを検出するものばかりである.この検出方法では,検出された有害なクローン情報を活用することは難しい.来年度は有害なコードクローン情報を有効に活用するための基盤として,クローンセット形式で高速にコードクローンを検出する手法について取り組む.また,ソフトウェアの品質を向上させるための方法の1つとして,検出されたコードクローンを自動的にに取り除く手法についても考案する.
|