研究課題/領域番号 |
20K11745
|
研究種目 |
基盤研究(C)
|
配分区分 | 基金 |
応募区分 | 一般 |
審査区分 |
小区分60050:ソフトウェア関連
|
研究機関 | 立命館大学 (2022-2023) 名古屋大学 (2020-2021) |
研究代表者 |
吉田 則裕 立命館大学, 情報理工学部, 教授 (00582545)
|
研究期間 (年度) |
2020-04-01 – 2025-03-31
|
研究課題ステータス |
交付 (2023年度)
|
配分額 *注記 |
3,770千円 (直接経費: 2,900千円、間接経費: 870千円)
2022年度: 910千円 (直接経費: 700千円、間接経費: 210千円)
2021年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
2020年度: 1,690千円 (直接経費: 1,300千円、間接経費: 390千円)
|
キーワード | コードクローン / 構文解析 / プログラミング言語 |
研究開始時の研究の概要 |
コードクローンとは,ソースコード中の一部分(コード片)のうち,他のコード片と類似しているものを指す.これまで,数多くのコードクローン検出ツールが開発されてきたが,対応言語を追加するための拡張を行うことが難しいという問題点があった.目的に合わせ多種多様なプログラミング言語が開発・使用されるようになってきており,対応言語を柔軟に増やすことができないことは,コードクローン検出ツールの普及を阻害している.そこで本研究では,柔軟に変更可能な構文解析機構を持つコードクローン検出ツールを開発する.
|
研究実績の概要 |
コードクローンとは,ソフトウェア開発中にコピーアンドペーストなどにより作成された類似したコード片である.コードクローンは,ソフトウェア保守を困難にする要因の1つであるため,検出し管理する必要がある.1990年代以降,数多くのコードクローン検出ツールが提案されたが,そのほとんどは限られたプログラミング言語のみに対応し,対応言語を増加させることが難しい.プログラミング言語は,頻繁に新規開発や文法の更新が行われるため,対応言語を柔軟に追加可能なコードクローン検出ツールが必要であると考えられる.研究代表者は以前に,対象言語の文法の一部を正規表現として抽出し,対応言語を柔軟に増加できるコードクローン検出ツールを開発した.しかし,正規表現では表現能力が不足しているため,対応できない言語がある.加えて,トークン列の照合に基づきコードクローンを検出するため,ステートメントの追加や削除を行ったコードクローンを検出する能力はない.
そこで,多様なプログラミング言語に対応可能であり,ステートメントの追加・削除を許容するコードクローン検出ツールを実装した. 具体的には,パーサジェネレータの1つであるANTLRを使用してソースコード正規化を行い,Token Bagモデルを基にコード片の類似度を計算することによって,検出可能なコードクローンの種類を増加させることを試みた.
実装したコードクローン検出を,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用した.今後,IoTシステムにおいてコードクローンが適切に管理されているか分析を行う予定である.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
有効性の追加検証を行うため,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用することとなった.そのための実験対象の選定等準備に想定より時間を要している.
|
今後の研究の推進方策 |
有効性の追加検証を行うため,様々なプログラミング言語で記述されているIoTシステムのプログラムに適用する.実験対象の準備や適用方法についての検討は完了したため,適用や適用結果の分析については効率的に行うことが出来ると考えている.
|