自己適応システム

どんな研究?

ソフトウェアシステムはシステム外部の要素(ユーザ,外部サービス,物理環境等)と密につながって動作しますが,それら外部の要素(環境)は絶えず変化し,その変化はソフトウェア開発時にすべて予測することは本質的にできません.ではどうすれば実行時に起こる環境の変化に対してソフトウェアは耐えることができるのでしょうか?自己適応ソフトウェアは,(1)利用環境の変化を検知し,(2)どのような変更が必要かを決定し,(3)自分自身を変更する機能を予めソフトウェア自身に組み込むことによって,実行時の変化に可能な限り耐えるよう自動で動作します.本研究では,これまで開発時にしか使われていなかった”モデル”を実行時にソフトウェア自身に保持させ,モデル上で自身の変更を決定させる実行時モデリング技術を使った自己適応ソフトウェア開発手法に関する研究を行っています.

何がわかる?

自己適応ソフトウェア開発では,ソフトウェアが提供する機能を表す”アプリケーションロジック”に加え,変化に対してソフトウェアをどのように変更するかを表す”適応ロジック”を開発する必要があります.本研究では,この新たな開発対象である”適応ロジック”を高品質に,かつ正しさの保証を伴って開発するためのつくり方を明らかにします.

研究内容

制御工学や人工知能技術を応用した実行時モデリング技術と,それらを応用した自己適応ソフトウェアの開発手法に関する研究を行っています.

  • 実行時の環境モデル学習
    実行時に環境内で生じた変化を迅速かつ正確に環境モデルに自動反映させる技術を構築しています.仮説形成の技術を用いて,実行中に得られたシステムの実行履歴を説明可能な有力な仮説を発見し,環境モデルを更新する手法を提案しています.仮説発見には確率的勾降下化法を応用し,実行時の高速な学習を可能としています.
  • 実行時の仕様モデル合成
    形式的に定義された要求,環境モデルから,要求充足が保証された仕様モデルを自動生成する技術を構築しています.特に,イベントベース制御理論の技術である離散制御器合成に活用し,扱える要求の種類に制限を設けることで合成時間を大幅に短縮する研究などを行っています.
  • 実行時モデルフレームワーク
    仕様モデルを直接解釈・実行し,予め準備されたコンポーネント群をオーケストレーションすることで,仕様の変更に対するシステムの実行時変更を可能とするフレームワークを開発しています.自走式ロボットなどを対象とした評価実験を行っております.