View
0
Download
0
Category
Preview:
Citation preview
自分を変えるソフトウェアのつくりかた
連絡先:鄭顕志/ 国立情報学研究所 アーキテクチャ科学研究系 准教授
Email : tei@nii.ac.jp Web : http://researchmap.jp/teikenji
状況設定
自己適応ソフトウェアのための
ソフトウェア開発プロセス
実行時に起こる環境の変化にソフトウェアはどのようにして
耐えるのでしょうか?
自己適応ソフトウェアは,(1)利用環境の変化を検知し,(2)ど
のような変更が必要かを決定し,(3)自分自身を変更する機能
を予めソフトウェア自身に組み込むことによって,実行時の変
化に可能な限り耐えるよう自動で動作します.
本発表では,このような自己適応ソフトウェアのつくり方
(分析・設計)に関する研究を紹介します.
研究内容
どんな研究? 何がわかる?自己適応ソフトウェア開発では,ソフトウェアが提供する機能
を表す”アプリケーションロジック”に加え,変化に対してソフト
ウェアをどのように変更するかを表す”適応ロジック”を開発す
る必要があります.本研究では,”アプリケーションロジック”を
実現するための従来のソフトウェアのつくり方を拡張し,
”適応ロジック”の実現も含めた,自己適応ソフトウェアのつく
り方を明らかにします.
鄭 顕志 (国立情報学研究所), 末永 俊一郎 (国立情報学研究所), 高橋 竜一(早稲田大学)
相澤 和也(早稲田大学), 片江 将希(早稲田大学), 田邉 萌香(早稲田大学)
Self-adaptive Software
自己適応ソフトウェア
適応 ソフトウェア
適応可能な ソフトウェア
変更観測
どう動く? (アプリケーションロジック)
どう適応させる? (適応ロジック)
自己適応 ソフトウェア
観測
変更
アプリケーションロジックと 適応ロジックが渾然一体 → 作りにくく,直しにくい
Internalアプローチ (従来の構成)
Externalアプローチ (モダンな構成)
アプリケーションロジックと 適応ロジックを分離
→ 作りやすく,直しやすい
自己適応ソフトウェア自分自身で
環境にあうように行動をかえる
ロボット
IoT/ユビキタス
サービス指向/ クラウドシステム モバイルシステム
自己適応ソフトウェアとは? 自己適応ソフトウェアの構成
このようなソフトウェアをどうつくる?
“正しさ”が保証された適応を行う自己適応ソフトウェア開発ベースとなる技術
離散制御器合成技術
要素技術 実行時更新の制御
プロジェクトマネジメントの技法を応用した適応ソフトウェア開発
Development TimeRequirement
Resources
Price of Resources
APIs
Analysis /Setting Process
PV
Thresholds
ConvertibleData
Action Table
ConversionEquations
Self-‐‑‒adaptation EngineRuntime
Adaptable Application
PV
ThresholdsAction Table
ConversionEquations
Status ID
ConvertibleData
EV, AC
API
Action
Analyze Plan
Monitor Execute
プロジェクトマネジメントのプロセスを利利⽤用した計画(PV)の作成
EVM(Earned Value Management)による実績の把握
EVMを⽤用いた状況の分析(SPI,CPI)と分析結果の通知
分析結果に基づくアクションの選択
適⽤用例例
分析・設計プロセスにより構築された適応フレームワーク
EVMを利用したDBCアプリケーションのための適応フレームワーク末永 俊一郎,鄭 顕志情報処理学会論文誌, Vol.56(No.5), 2015年05月
Project Management Inspired Framework for AcKon SelecKon in Wireless Sensor Networks Shunichiro Suenaga, Kenji Tei Asia Pacific Conference on Wireless and Mobile 2014 (APWiMob2014), August 2014
形式的に定義環境モデルと要求モデルから,要求を満たすように環境を制御する ソフトウェア仕様を自動で導出
ソフトウェアの 動作仕様
環境
観測
作用
要求
xxがいつかは成り立つyyが常に成り立つ決してzzしない
離散制御器合成とは
環境
要求
xxがいつかは成り立つyyが常に成り立つ決してzzしない
合成器
ソフトウェアの 動作仕様
現在の振舞モデル 新しい振舞モデル現在の 環境モデル
更新された 環境モデル
実行時更新
[現在の振る舞い]から[新しい振る舞い]への実行時更新を ``正しく’’行うソフトウェアを自動生成
全体を``アップデートのための環境モデル”として表し, 離散制御器合成を用いて,アップデートを行う``正しく”行うソフトウェアを自動生成
通常はソフトウェアの動作仕様を 注意深く,人手で決定
正しさが保証された 動作仕様を自動導出
要素技術 環境モデルの実行時更新
現在の 環境モデル
更新された 環境モデル
実行履歴
システムの実行履歴に基き環境の変化を検知し 環境モデルを更新
update
仮説形成の技術を用いて,実行履歴を説明可能な 有力な仮説を発見し,環境モデルを更新
研究のアプローチ 離散制御器合成技術を用いた自己適応ソフトウェア開発
コントローラ
Models@run.Kme プラットフォーム
コンポーネント群
...orchestrate
合成器
環境モデル 更新
仕様モデルの 実行時更新
更新された 環境モデル
...
要求モデル
更新された振舞モデル
変更 観測
正しい振舞モデルを解釈実行し,コンポーネント群
をorchestraKon
システムの実行履歴 から環境変化を検知し
環境モデルを更新
不具合が発生しない タイミングで新しい
振舞モデルに切り替え
応用事例
小型飛行ロボットで机や階段等を清掃
飛んでどんな 段差も越えられる
小型なので 電池容量が少ない
拭き掃除 +ほこり飛ばし
長所・短所の異なる通常/節電モードを準備 状況に応じて切り替えて清掃
台車型ロボットを用いた運送タスク
障害物による移動の失敗や 荷物の受け渡しの失敗が起きうる
出発地
配達地
出発地より配達地に向かい、 荷物を受け取ったら戻ってくる
状況に応じて移動経路や順番,荷物の受け取り方を変更して運送タスクを完了する
離散制御器合成を用いて ”正しい”コントロラー仕様を
導出
鄭 顕志ら, "自己適応ソフトウェアのための自己適応性設計に関する研究動向", コンピュータソフトウェア, 31(1), 2014年2月
Recommended