2015 Fiscal Year Annual Research Report
ハイブリッドプログラム解析を利用した機能識別に基づくプログラム理解支援技術
Project/Area Number |
15H02683
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
小林 隆志 東京工業大学, 情報理工学(系)研究科, 准教授 (50345386)
|
Co-Investigator(Kenkyū-buntansha) |
石尾 隆 大阪大学, 情報科学研究科, 助教 (60452413)
林 晋平 東京工業大学, 情報理工学(系)研究科, 助教 (40541975)
渥美 紀寿 名古屋大学, 学内共同利用施設等, その他 (70397446)
|
Project Period (FY) |
2015-04-01 – 2019-03-31
|
Keywords | ソフトウェア学 / ソフトウェア工学 / プログラム理解 |
Outline of Annual Research Achievements |
本研究は,ソフトウェアが提供する外的機能とその実現方法である内的機能とを区別して識別することでソフトウェア更新を効果的に行うためのプログラム理解を支援する手法の開発を目指す. 適切にソフトウェア更新をするためには,システムが提供する機能の実現方法をプログラムから正確に読み取る必要がある.本研究では,外的機能の組み合わせを実行トレースおよびソースコードの静的構造特徴,改版履歴を対象としたハイブリッドプログラム解析を行うことで,外的機能を実現する内的機能およびその関係を識別し開発者のプログラム理解を支援する.段階的な抽象化を可能にすることで,従来困難であった中間の抽象度の設計情報復元を可能にする手法を確立する. 本年度は,形式概念分析に基づいた機能識別手法の例題を整備し初期解析を行った.形式概念分析によって,共通性及び可変性がどのように分析され,その結果重要な箇所が形式概念上のどの領域に出現する可能性があるかの分析・検討を行った. また,「新しい進化結合の算出方法」のために,より有益な進化結合を発見するためには時間的近接性が重要であることを3つの大規模オープンソースの履歴を解析することで明らかとした.さらに,開発行動履歴を用いることで再現性の高い進化予測が可能となることも明らかとした. このほかに,ハイブリッド解析を構成する静的解析・動的解析のそれぞれにおいて基盤研究を実施し,APIの利用パターンの抽出,機能のバリエーションを静的に選択することを想定したソースコードに対する解析手法,詳細な動的解析基盤の構築を行った.
|
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 |
Java ソフトウェア内におけるライブラリの利用状況を分析する手法を開発することにより,従来使用してこなかったユーザコード以外の情報を活用した機能捜索手法を開発する. また,昨年度開発した「内的機能構造の識別」に関する手法を改善し,「外的機能の復元・詳細補完」の手法を検討する.
上記に並行して,プログラムの静的情報から得られる「設計意図」を用いて,実行トレースの抽象化を行う研究を実施し,抽象化された実行トレースと前述の形式概念との差異の分析を行う.
|