しなやかなソフトウェアのつくりかた 自己適応ソフトウェアのた … ·...

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

Upload: others

Post on 20-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: しなやかなソフトウェアのつくりかた 自己適応ソフトウェアのた … · 実現するための従来のソフトウェアのつくり方を拡張し, ”適応ロジック”の実現も含めた,自己適応ソフトウェアのつく

しなやかなソフトウェアのつくりかた

連絡先:鄭顕志/ 国立情報学研究所 アーキテクチャ科学研究系 准教授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.衝突の危険性→ソフトウェアの実行時更新技術を応用し、

各モデルの共更新を安全に行うソフトウェアを合成環境変化により障害物による

移動の失敗や荷物の受け渡しの失敗が起きうるように