2012 Fiscal Year Annual Research Report
超大規模ソースコードを対象としたコードクローン検出システムの構築
Project/Area Number |
24680002
|
Research Category |
Grant-in-Aid for Young Scientists (A)
|
Research Institution | Osaka University |
Principal Investigator |
肥後 芳樹 大阪大学, 大学院・情報科学研究科, 助教 (70452414)
|
Project Period (FY) |
2012-04-01 – 2015-03-31
|
Keywords | コードクローン / ソースコード解析 / リポジトリマイニング / 大規模データセット |
Research Abstract |
今年度は,単一システム内からの新しいコードクローン検出技術の考案を行った.新しいコードクローン検出技術では,ソースコード中の繰り返しコードに対して折りたたみという前処理を行う.繰り返しコードとは,画面に情報を出力するための連続したprintf文や,SQL文を生成するための文字連結処理,連続したif-else等である.このような繰り返し部分からは,行単位・字句単位の検出法では,非常に多くのコードクローンを検出してしまう傾向にあるが,そのようなコードクローンは人間がチェックする価値がないものである.そのようなコードクローンの存在により,検出の精度が著しく落ちてしまう.繰り返しコードを折りたたむことにより,その部分からは冗長なコードクローンが検出されなくなるため,コードクローンの検出精度が高くなる.既存の手法として,コードクローンを検出したあとにフィルタリングを行うというものがあるが,それとは違い本研究ではそもそも必要のないコードクローンを検出しない.コードクローンの検出時間は検出されたコードクローンの量に影響を受けるため,提案手法は既存手法に比べて高速に検出を行うことができる. 実際に複数の既存手法と比較を行った.検出の精度を算出するためには,コードクローンの正解集合が必要となる.本研究では,Bellonらの先行研究が行った調査結果である正解クローンの集合を利用した.その結果,Java言語とC言語で記述された8つのソフトウェアに対して,既存手法と比べて,無駄なコードクローンの検出数が少なくなっていることが確認された.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
平成24年度は,当初掲げた計画の内容を概ね達成できた.
|
Strategy for Future Research Activity |
今後は,複数のソフトウェアからの効率的なコードクローン検出法の考案に取り組む.更に,今年度提案した検出手法と併せて,1つのシステムとして構築する.
|
Expenditure Plans for the Next FY Research Funding |
現在のところ,次年度直接経費は成果発表用の出張旅費,論文誌別刷り代,発表用ノートPCの購入等に充てる予定である.もし必要が生じた場合には,今年度購入したワークステーションに追加でメモリを購入する.
|