2020 Fiscal Year Research-status Report
探索と対話の融合による半自動リファクタリング環境の確立
Project/Area Number |
18K11238
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
林 晋平 東京工業大学, 情報理工学院, 准教授 (40541975)
|
Project Period (FY) |
2018-04-01 – 2022-03-31
|
Keywords | リファクタリング / ソフトウェア自動進化 / 探索ベースソフトウェア工学 / 対話型システム / 不吉な臭い |
Outline of Annual Research Achievements |
本研究は,より現実的な自動リファクタリングの実現に向けて,探索処理の向上,対話的な制御,および対話的制御のためのリファクタリング結果の効率的なレビュー方法の確立を目指すものである.令和2年度では,主に以下の成果を得た. (1)前年度に引き続き自動リファクタリングに用いる探索手法の検討を行った.特に,開発者情報を利用した目的関数の構築方法を検討した.(2)リファクタリングを含むソースコード変更パターンを版管理履歴から抽出し,自動的にそれらを適用すべき箇所を特定するツールを,複数のプログラミング言語に対して適用可能なよう改良し,その効果を分析した.(3)リファクタリングによる品質向上を適用すべきソースコード中の低品質箇所である不吉な臭いの情報を,ソフトウェア変更記述とモジュールとの対応付けに活用する手法の特徴分析を進め,対応付け特定精度の変化との関係を整理した.(4)モジュールの開発者情報を得るため,Gitによる版管理リポジトリを対象として軽量でモジュールの細粒度追跡を行う手法を開発した.リポジトリ変換を行ってGitリポジトリからJavaメソッド単位のファイルを抽出し,メソッド単位の追跡を行う上で,追跡精度を向上させるための複数のヒューリスティックを検討した.(5)コードクローンを対象に,集約可能なコードの大きさと集約によるソースコードの可視性の低下の両方の観点を考慮してメソッド集約リファクタリングの候補を得る手法を開発した.
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
本研究は,リファクタリング等のプログラム変換を探索的に組み合わせて自動的にソフトウェア品質を改善する,自動ソフトウェア進化方式のより現実的な実現を目指している.令和2年度では,これまでに開発したリファクタリング操作列の探索手法の自動ツールの開発をさらに進め,また新しい評価関数の設計についても進めている.その一方で,リファクタリングの適用候補となるモジュールが備える特徴である不吉な臭いの情報の発展的利用法についての研究を追加した点,手法の評価に関する実験が遅れている点が,スケジュールの遅延につながっている.
|
Strategy for Future Research Activity |
令和3年度では,これまでに開発してきたツールを組み合わせ,実際に探索に基づいたリファクタリングの提案を実現していく.また,これまでに収集したリファクタリング実例および提案されたリファクタリング操作を組み合わせて用いて,その適用範囲を拡張していくとともに,得られた候補の評価について進めていく.さらに,研究成果の公表に注力する.
|
Causes of Carryover |
令和2年度では,COVID-19感染拡大の影響による研究計画の変更や国際会議の運営状況の変化により,大学院生を雇用するための謝金や成果発表のための旅費の執行状況に変更が生じた.これらの予算は令和3年度で使用する.令和3年度では,ソフトウェア保守・進化国際会議(International Conference on Software Maintenance and Evolution; ICSME),ソフトウェア解析・進化・リエンジニアリング国際会議(International Conference on Software Analytics, Evolution, and Reengineering; SANER)などの国際会議,ソフトウェア工学の基礎ワークショップ(FOSE)などの国内ワークショップに参加し,提案中のリファクタリング支援手法やそれに関連する技術の研究成果を発表していく予定である.また,雑誌論文の掲載費としても利用する.
|
Research Products
(10 results)