しなやかなソフトウェアのつくりかた 自己適応ソフトウェアのた … ·...
TRANSCRIPT
しなやかなソフトウェアのつくりかた
連絡先:鄭顕志/ 国立情報学研究所 アーキテクチャ科学研究系 准教授Email : [email protected] Web : http://researchmap.jp/teikenji
状況設定
自己適応ソフトウェアのための
ソフトウェア開発プロセス
実行時に起こる環境の変化にソフトウェアはどのようにして
耐えるのでしょうか?
自己適応ソフトウェアは,(1)利用環境の変化を検知し,(2)ど
のような変更が必要かを決定し,(3)自分自身を変更する機能
を予めソフトウェア自身に組み込むことによって,実行時の変
化 に 可 能 な 限 り 耐 え る よ う 自 動 で 動 作 し ま す .
本発表では,このような自己適応ソフトウェアのつくり方
(分析・設計)に関する研究を紹介します.
研究内容
どんな研究? 何がわかる?
自己適応ソフトウェア開発では,ソフトウェアが提供する機能
を表す”アプリケーションロジック”に加え,変化に対してソフト
ウェアをどのように変更するかを表す”適応ロジック”を開発す
る必要があります.本研究では,”アプリケーションロジック”を
実現するための従来のソフトウェアのつくり方を拡張し,
”適応ロジック”の実現も含めた,自己適応ソフトウェアのつく
り方を明らかにします.
鄭 顕志 (国立情報学研究所),
片江 将希(早稲田大学), 田邉 萌香(早稲田大学)
Self-adaptiveSoftware
自己適応ソフトウェア
適応ソフトウェア
適応可能なソフトウェア
変更観測
どう動く?(アプリケーションロジック)
どう適応させる?(適応ロジック)
自己適応ソフトウェア
観測
変更
アプリケーションロジックと適応ロジックが渾然一体→ 作りにくく,直しにくい
Internalアプローチ(従来の構成)
Externalアプローチ(モダンな構成)
アプリケーションロジックと適応ロジックを分離
→ 作りやすく,直しやすい
自己適応ソフトウェア自分自身で
環境にあうように行動をかえる
ロボット
IoT/ユビキタス
サービス指向/クラウドシステム モバイルシステム
自己適応ソフトウェアとは? 自己適応ソフトウェアの構成
このようなソフトウェアをどうつくる?
“正しさ”が保証された適応を行う自己適応ソフトウェア開発
ベースとなる技術
離散制御器合成技術
要素技術実行時更新の制御
形式的に定義環境モデルと要求モデルから,質的要求を満たすように環境を制御するソフトウェア仕様を自動で導出
ソフトウェアの動作仕様
環境
観測
作用
要求
xxがいつかは成り立つyyが常に成り立つ
決してzzしない
離散制御器合成とは
環境
要求
xxがいつかは成り立つyyが常に成り立つ
決してzzしない
合成器
ソフトウェアの動作仕様
現在の振舞モデル 新しい振舞モデル現在の環境モデル
更新された環境モデル
実行時更新
[現在の振る舞い]から[新しい振る舞い]への実行時更新を``正しく ’’行うソフトウェアを自動生成
全体を``アップデートのための環境モデル”として表し,離散制御器合成を用いて,アップデートを行う``正しく”行う
ソフトウェアを自動生成
通常はソフトウェアの動作仕様を注意深く,人手で決定
正しさが保証された動作仕様を自動導出
要素技術環境モデルの実行時更新
現在の環境モデル
更新された環境モデル
実行履歴
システムの実行履歴から環境の変化を検知し実行時に環境モデルを更新
update
仮説形成の技術を用いて,実行履歴を説明可能な有力な仮説を発見し,環境モデルを更新
研究のアプローチ
実行時モデルに基づく自己適応ソフトウェア開発
コントローラ
[email protected]プラットフォーム
コンポーネント群
...orchestrate
合成器
環境モデル更新
仕様モデルの実行時更新
更新された環境モデル
...
要求モデル
更新された振舞モデル
変更観測
振舞モデルを解釈実行し,コンポーネント
群をorchestration
システムの実行履歴から環境変化を検知し
環境モデルを更新
新しい振舞モデルに安全に切り替え
倉庫管理ロボット
出発地
配達地
出発地より倉庫エリアで荷物を受け取り,配達地に運ぶ
状況に応じて移動経路や順番,荷物の受け取り方を変更して運送タスクを完了する
離散制御器合成を用いて”正しい”コントロラー仕様を導出
鄭 顕志ら,"自己適応ソフトウェアのための自己適応性設計に関する研究動向",コンピュータソフトウェア,31(1),2014年2月
応用事例
倉庫管理システム
要素技術分割された環境モデル間での共更新
L.Nahabedian andet.al.,:AssuredandCorrectDynamicUpdateof Controllers,SEAMS2016,BestPaperAward
分割
モデル更新
モデルを分割し,個別に制御することで状態爆発を避ける→モデルを横断した変化に対する安全性は保証できない
e.g.衝突の危険性→ソフトウェアの実行時更新技術を応用し、
各モデルの共更新を安全に行うソフトウェアを合成環境変化により障害物による
移動の失敗や荷物の受け渡しの失敗が起きうるように