2016 Fiscal Year Research-status Report
ソフトウェア進化分析に基づくソフトウェア保守支援環境
Project/Area Number |
15K15973
|
Research Institution | Kyoto University |
Principal Investigator |
渥美 紀寿 京都大学, 学術情報メディアセンター, 助教 (70397446)
|
Project Period (FY) |
2015-04-01 – 2018-03-31
|
Keywords | ソフトウェア保守 / ソースコード解析 |
Outline of Annual Research Achievements |
本年度は,Cによるバリエーションソフトウェアを対象とした前処理による条件命令の構成方法の違いによる保守性に関する調査を行った.Cによるバリエーションソフトウェアでは,ソフトウェアを構成するフィーチャをマクロで表現し,マクロの組み合わせを前処理条件の条件式で用いることによって,コードを分割して実現する.各バリアントのためのコードを生成するための前処理条件の構成方法には様々な方法があり,その構成方法の違いと保守性にどのような関係があるかを調査した. 本調査では保守性が低いコードは頻繁に改変されると仮定し,コードの改変と前処理条件の構成方法に関して調査した.OSS を対象に,バリアントコード(前処理条件によって制御されるコード)の改変頻度と,前処理条件,バリアントコードの行数,前処理条件の分岐数,前処理条件で使用されるマクロ数の関係について,版管理リポジトリの開発履歴から情報を抽出し,分析した.その結果,バリアントコードの改変頻度が高い前処理条件が存在することは明らかとなったが,バリアンコードの行数,分岐命令数,マクロ数と改変頻度との間に関係はないことがわかった.ただし,改変の種類(修正,拡張)に関係なく改変頻度を調査しているため,修正に限定した調査をすることで,別の結果が得られる可能性がある. 本調査において前処理条件を改版履歴を遡って追跡する方法と,その条件によって制御されるコードに関して分析するための基盤技術を実現することができ,今後の研究に有益な基盤技術を得ることができた.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
当初計画では,メトリクス値や使用ライブラリに関する情報を進化情報として蓄積することを検討していたが,これらはプログラムやファイル単位での情報であり,保守支援として活用する情報の粒度として粗いことがわかった.本年度の調査では,特定の範囲内のコードの改変に関する調査をしており,その解析器を応用することでプログラムやファイルなどの粗い粒度ではなく,もっと細かい単位で情報を蓄積することが可能となった.当初計画とは異なるが,進化分析において分析可能な範囲が広がっており,本研究の基盤技術が拡張されたため,順調に進展していると認識している.
|
Strategy for Future Research Activity |
今後は関数単位での情報の蓄積方法を検討し,静的検査結果や改変の有無だけでなく,利用ライブラリやメトリクスに関する情報を蓄積可能にする.また,それらの情報を利用した保守支援手法について検討する.
|
Causes of Carryover |
国際会議で発表できておらず,その発表用に確保していた費用が残った.
|
Expenditure Plan for Carryover Budget |
国際会議で採録が決定した論文があり,その参加費および旅費の一部として使用する.
|
Research Products
(5 results)