研究概要 |
本研究では,ソフトウェア開発者の開発経験をマイニングし形式知化することで,多くの開発者を支援する手法を開発することを目的としている.開発経験の情報として,開発者がライブラリや再利用部品を利用して試行錯誤しながら実装する際の,作業履歴および結果として残る実装コード群をに着目しマイニングを行う,その本年度の成果は主に以下の3つである. 1)実行履歴の解析と効果的なデバッグ支援手法の開発 プログラムを実行した際の実行履歴は膨大な情報となり,全てを把握することが困難である.本年度はJavaプログラムをデバッグする際に,実行履歴を効果的に可視化するための手法としてメタパターンに基づく抽象化手法を提案した.提案手法によって,振る舞い理解の観点では不要となる相互作用をカプセル化し,可視化対象を大幅に削減することを可能とした.昨年度開発したslicing手法と併用することで,大規模な実行履歴に対しても着目箇所を効果的に可視化することが可能となる.また,実行履歴をマイニングすることで,不具合箇所の候補を提示するデバッグ支援手法の検討も行った. 2)作業履歴蓄積ツールを応用した保守作業支援手法の開発 昨年までの統合開発環境における開発者の作業履歴を蓄積するツールを用い,保守活動において困難とされる波及解析問題に対して,変更伝播を予測し次に修正が必要となる箇所を推薦する手法を提案した.提案手法では,ファイル参照などの保守活動の詳細な作業ログをマイニングすることで予測モデルを作成し,参照回数や時間をコンテキスト情報として用いることで精度の高い推薦を実現した. 3)コーディング規約違反履歴を利用したソフトウェアメトリクス. 開発活動情報としてコーディング規約違反に着目し,プロジェクトの状態や開発者を評価するためのソフトウェアメトリクスを提案した.提案手法ではコーディングルールチェッカーの出力結果を計測し,ルールや開発者毎の出現頻度,時間分布,空間分布を用いる複数のメトリクスを提案し,オープンソースソフトウェアの開発履歴を用いてその効果を測定する実験を行った.
|