研究概要 |
本研究では, 開発者がソフトウェア部品を再利用する工程を支援のための情報をソフトウェアリポジトリやデバッグ履歴から再利用部品の過去の利用方法を抽出し, 利用支援を行う手法の開発を目的としている. 本年度は、制御構造を含む再利用性の高いコードスニペット抽出技術を検討した. 既存のソースコード群から, 頻出するコードパターンを効率よく抽出するために, 構文要素の出現数を特徴とした構造類似と出現する文字列の類似度を合わせた類似度判定手法を開発した. この手法を用いることで,再利用の際に必要となるが従来方式では検出できない制御構造を含むコードスニペットの効果的な抽出を可能とした. また, 適切なコードスニペットの検索手法として, 過去の開発履歴における同様の問題とその解法を効果的に検索する手法を検討し, スタックトレース情報を利用する検索方法を提案した. 提案手法では, 例外発生時のスタックトレースの類似度を利用することで, ソースコードの情報だけでは判断できない開発者の試行錯誤の状況を考慮した適切なコード片の提示を可能としている。提案手法を利用することで, 複雑なフレームワークを多用した過去の開発履歴から、単なる利用方法だけでなく、誤使用を訂正するためのコードスニペットを提示することが可能となるため開発の効率化が期待できる. これらの作業と並行して, コードスニペット抽出の際にデザインパターンの情報を利用できるように, デザインパターンが利用されている箇所を静的情報と実行時の動的情報を合わせて効率よく検出する手法を提案した。さらに、フレームワーク利用コードに関する分析精度を向上させるため、要求仕様とフレームワークに実装されている機能のそれぞれをモデル化し比較することで, 複数のフレームワークから適切なものを選択する手法を提案した。
|