ソフトウェアの自動デバッグ方式の構築を目的とし,特にプログラムの誤り特定手法の開発に重点を置いて研究を行った.そのためのアプローチとして制約の概念を採用した.具体的には,事後条件違反を生じる入力をモデル検査によって求め,入力,プログラム,事後条件から制約充足問題を構成した上で,違反の原因となった制約を特定し,プログラム中の対応する部分を誤り箇所の候補として提示するようにした.本研究では効果的な誤り特定を行うために,特に柔らかい制約の考え方を採用した.本研究ではこのような柔らかい制約を用いた自動デバッグ方式を構築し,C言語を対象とする自動デバッグツールを開発した. 平成28年度には,誤り箇所特定のための新しい制約充足問題の表現と充足の方法について研究した.本研究でこれまでに用いてきた方法では,固い制約と柔らかい制約からなる最大制約充足問題としてこれを表現していた.この方法では,固い制約を必ず充足しながら,柔らかい制約を最大限に充足するように解が決定されるが,その際に柔らかい制約同士は対等に扱われる.本研究では,この考え方を拡張し,柔らかい制約に対して優先度を導入することで,解に対してその適切性の度合いも求められるようにしている.この方法を誤り特定に適用するためには,柔らかい制約の数理的な表現に加えて,制約充足問題を実際に解くためのアルゴリズムも必要となるため,この点も検討した.また,本研究における機械学習の適用可能性についても検討した.
|