研究背景・目的
ソフトウェアシステムが社会で果たす役割はますます大きくなり、その開発・運用において高い品質を効率的に担保することが強く求められています。一方で、機械学習を用いて構築したシステムや自動運転システムなど、複雑さ・不確かさが高いシステムも現れています。このため従来の方法での品質の向上・保証が難しくなっています。これに対し、(1)不確かさの中での要求や仕様、想定環境に対し「何に注目して、何をすべきか」をエンジニアが議論し、系統的、継続的に確認・改善していくための「道具立て」に取り組んでいます。さらに、複雑なシステムに対しても個々の問題に効率的に切り込むための支援として、(2)不具合を生じる状況、確認すべき状況の網羅、あるいは不具合の適切な修正などを自動的に「賢く探り出す」技術も追究しています(図)。
研究内容
(1)については、対象システムの要求や仕様、想定環境、あるいはその中での障害や事故のリスクに対し、本質をエンジニアがとらえ議論していくための、モデリング(表出化・形式知化)や分析の技法に取り組んでいます。
(2)については、形式検証、自動テスティング(テスト生成)、人工知能(特に進化計算や機械学習)など非常に強力になった最新技術を深化しつつ適宜組み合わせることで、品質の向上・保証に活用することをめざしています。いずれにおいても、機械学習を用いて構築したことにより振る舞いが不確かなシステム、自動運転のように実世界に深く踏み込んで動作するシステムに焦点を当てて取り組んでいます。
産業応用の可能性
ソフトウェア工学の技術は産業を支えることをめざしたものです。目標の「壮大さ」により今すぐ使えるのか5年後に使えるのかの差はあったとしても、研究成果は産業応用に近いものとなります。重要なことは、各企業における悩み・問題の本質(本当にやりたいこと)を議論し尽くすこと、そして使い手となるエンジニアや組織文化、開発プロセスなどを踏まえて「技術」を「道具」に仕立てあげていくことです。これまで100名を超える企業の開発者や研究者と様々な議論を行ってきた経験を基に、企業連携においては効果の高い実践的な提案を創りあげていきたいと考えています。