表題番号:2013A-6250 日付:2014/04/10
研究課題品質確保のためのプログラムソースコードにおける高精度なデザインパターン自動検出
研究者所属(当時) 資格 氏名
(代表者) 理工学術院 准教授 鷲崎 弘宜
研究成果概要
オブジェクト指向プログラムの開発にあたり、適用されているデザインパターンを検出することで理解を助け効率的な保守や再利用が可能となる。パターンとは、オブジェクト指向開発の設計工程において繰り返し現れる問題に対する優れた解決策を経験的に導出しパターン化したものである。パターンは特定の役割(ロール)を持つオブジェクト集合として構成される。しかしながら従来の検出の試みは、主にパターン毎に定義した厳密な条件記述に基づくため、構造が類似したパターンの区別や様々な適用バリエーションの検出が難しく、実用に至っていない。さらに、デザインパターンの種類は保守性や再利用性向上を意図したものに加えてセキュリティ確保・向上を意図したセキュリティデザインパターンも拡充されつつあるが、その自動検出は世界的に十分に取り組まれていない。そこで本研究では最初に代表的な保守性に関するデザインパターン群の特徴を分析し、そのうえでメトリクスと機械学習により高精度で実用的なデザインパターン検出手法を確立した。提案手法では、従来手法のような厳格な条件記述(静的構造など)を用いるのではなく、一定数のプログラム資産から得られるメトリクス測定値を入力とした機械学習によりパターンのロール担当要素の候補を緩やかに判定し、それらの関連から最終的にパターンを検出する。メトリクスとは、ソフトウェア開発をさまざまな視点から評価するための定量的尺度メトリックの集合を指し、例としてクラス中のメソッド数の測定などが挙げられる。多数のメトリクス測定値の組み合わせを用いることで、プログラムの特徴を多面的に捉えるため類似パターンを区別しての検出が可能となった。また、検出結果が機械学習の学習データに依存するため、パターンの適用形態に関する様々な種類の一定数の学習データを用意することで、パターン適用の多様性に対して網羅的に検出できることを確認した。今後は検出対象として、代表的なセキュリティに関する設計パターンについても網羅を検討する予定である。