• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2023 Fiscal Year Research-status Report

多様なプログラミング言語に対応可能なコードクローン検出ツールの開発

Research Project

Project/Area Number 20K11745
Research InstitutionRitsumeikan University

Principal Investigator

吉田 則裕  立命館大学, 情報理工学部, 教授 (00582545)

Project Period (FY) 2020-04-01 – 2025-03-31
Keywordsコードクローン
Outline of Annual Research Achievements

コードクローンとは,ソフトウェア開発中にコピーアンドペーストなどにより作成された類似したコード片である.コードクローンは,ソフトウェア保守を困難にする要因の1つであるため,検出し管理する必要がある.1990年代以降,数多くのコードクローン検出ツールが提案されたが,そのほとんどは限られたプログラミング言語のみに対応し,対応言語を増加させることが難しい.プログラミング言語は,頻繁に新規開発や文法の更新が行われるため,対応言語を柔軟に追加可能なコードクローン検出ツールが必要であると考えられる.研究代表者は以前に,対象言語の文法の一部を正規表現として抽出し,対応言語を柔軟に増加できるコードクローン検出ツールを開発した.しかし,正規表現では表現能力が不足しているため,対応できない言語がある.加えて,トークン列の照合に基づきコードクローンを検出するため,ステートメントの追加や削除を行ったコードクローンを検出する能力はない.

そこで,多様なプログラミング言語に対応可能であり,ステートメントの追加・削除を許容するコードクローン検出ツールを実装した. 具体的には,パーサジェネレータの1つであるANTLRを使用してソースコード正規化を行い,Token Bagモデルを基にコード片の類似度を計算することによって,検出可能なコードクローンの種類を増加させることを試みた.

実装したコードクローン検出を,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用した.今後,IoTシステムにおいてコードクローンが適切に管理されているか分析を行う予定である.

Current Status of Research Progress
Current Status of Research Progress

3: Progress in research has been slightly delayed.

Reason

有効性の追加検証を行うため,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用することとなった.そのための実験対象の選定等準備に想定より時間を要している.

Strategy for Future Research Activity

有効性の追加検証を行うため,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用する.実験対象の準備や適用方法についての検討は完了したため,適用や適用結果の分析については効率的に行うことが出来ると考えている.

Causes of Carryover

有効性の追加検証を行うため,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用することとなった.追加検証のための物品購入費や検証結果について様々な研究者と議論するための旅費を使用する.

URL: 

Published: 2024-12-25  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi