2017 Fiscal Year Research-status Report
ソフトウェア進化分析に基づくソフトウェア保守支援環境
Project/Area Number |
15K15973
|
Research Institution | Kyoto University |
Principal Investigator |
渥美 紀寿 京都大学, 学術情報メディアセンター, 助教 (70397446)
|
Project Period (FY) |
2015-04-01 – 2019-03-31
|
Keywords | ソフトウェア工学 / プログラム解析 / ソフトウェア保守 / ソフトウェア進化 |
Outline of Annual Research Achievements |
本年度は解析対象のソフトウェアが利用している外部ライブラリの更新に伴なう変更を支援するための手法を検討した.外部ライブラリの更新では,API の引数の増減や型の変更などによりビルドに失敗することや,API の処理の変更などにより動作に変わることがある.そのため,外部ライブラリの更新に伴なって,それを利用している箇所を修正する必要がある. 外部ライブラリの更新に伴なる変更を支援するためには,外部ライブラリの更新で API の変更にどのようなパターンが存在するか,調査する必要がある.これを調査するため,ライブラリが提供する API のシグネチャを解析する必要がある.本解析ツールを用いて既存のライブラリに対して各バージョン間の違いを分析することで,変更パターンを収集する.それぞれの変更パターンに対してどのように修正すべきかを開発者に提示することで,外部ライブラリの更新に伴なう変更支援が可能となる. Java では API を変更する場合,古い API には @deprecated アノテーションを付けることで,それを利用しているソフトウェアのビルド時に変更があることがわかるようになっている.多くの場合,@deprecated アノテーションが付けられた API は,新たな API を用いて実装されるため,そのコードを示すことで支援が可能である. また,OSS の外部ライブラリおよびそれを利用した OSS を対象にそれぞれの外部ライブラリの更新に伴なう,それを利用したソフトウェアの変更がどのように行われているか変更履歴から抽出するための手法を検討した.
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
外部ライブラリの変更分析およびその変更に伴なう変更支援をするための解析ツールの開発に時間がかかったため,進捗に遅れが出ている. 解析ツールの開発が遅れたのは,外部ライブラリの更新の種類が明確でなかったこと,その変更に対してライブラリを利用しているソフトウェアでどのような変更が必要かが明確でなかったことが原因である. 現在これらのことが明らかになってきているため,解析ツールを開発し,変更支援を行うためのフレームワークの構築を実現することが可能である.
|
Strategy for Future Research Activity |
外部ライブラリの更新に伴ない,それを利用したソフトウェアにおいて,変更が必要となるパターンを抽出するための解析ツールの実現およびその変更パターンに対応する変更を支援するためのフレームワークを構築する.OSS の外部ライブラリおよびそれを利用したOSS を対象に実験を行うことで,本手法の有用性を示す.
|
Causes of Carryover |
解析ツールおよび修正支援フレームワークに必要な情報の検討に時間がかかり,その実現方法が確定していなかったため,開発に必要な費用の支出を延期した.また,その結果の成果発表を延期した.
|