研究概要 |
今年度は,単一システム内からの新しいコードクローン検出技術の考案を行った.新しいコードクローン検出技術では,ソースコード中の繰り返しコードに対して折りたたみという前処理を行う.繰り返しコードとは,画面に情報を出力するための連続したprintf文や,SQL文を生成するための文字連結処理,連続したif-else等である.このような繰り返し部分からは,行単位・字句単位の検出法では,非常に多くのコードクローンを検出してしまう傾向にあるが,そのようなコードクローンは人間がチェックする価値がないものである.そのようなコードクローンの存在により,検出の精度が著しく落ちてしまう.繰り返しコードを折りたたむことにより,その部分からは冗長なコードクローンが検出されなくなるため,コードクローンの検出精度が高くなる.既存の手法として,コードクローンを検出したあとにフィルタリングを行うというものがあるが,それとは違い本研究ではそもそも必要のないコードクローンを検出しない.コードクローンの検出時間は検出されたコードクローンの量に影響を受けるため,提案手法は既存手法に比べて高速に検出を行うことができる. 実際に複数の既存手法と比較を行った.検出の精度を算出するためには,コードクローンの正解集合が必要となる.本研究では,Bellonらの先行研究が行った調査結果である正解クローンの集合を利用した.その結果,Java言語とC言語で記述された8つのソフトウェアに対して,既存手法と比べて,無駄なコードクローンの検出数が少なくなっていることが確認された.
|
次年度の研究費の使用計画 |
現在のところ,次年度直接経費は成果発表用の出張旅費,論文誌別刷り代,発表用ノートPCの購入等に充てる予定である.もし必要が生じた場合には,今年度購入したワークステーションに追加でメモリを購入する.
|