D1 - qwik.jp

D1
Managing non-functional uncertainty
via model-driven adaptivity
Carlo Ghezzi (Politecnico di Milano, Italy)
Leandro Sales Pinto (Politecnico di Milano, Italy)
Paola Spoletini (Università dell'Insubria, Italy)
Giordano Tamburrelli (Politecnico di Milano, Italy)
Carlo Ghezzi, Leandro Sales Pinto, Paola Spoletini, and Giordano Tamburrelli. 2013. Managing non-functional
uncertainty via model-driven adaptivity. In Proceedings of the 2013 International Conference on Software
Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 33-42.
適応型ソフトウェアは複雑になりがちである
D1
 近年,サードパーティが提供するコンポーネントをリモ
ートで用いるシステムが増えている.
 利用時の実行時間などは不確定である.
 不確定要素を考慮して,非機能要求を満たすようにソ
フトウェアを作成すると,非常に複雑になる.
 非機能要求: 応答時間,ユーザビリティ,バッテリー使用量
AF付きカメラ?
1. 商品のバー
コード読み取り
GPS付き端末?
2. ユーザの
場所検知
検索時間?
3. 同じ商品をネットショップ
/周辺の店から検索
ソートして表示?
4. 価格表示
1
ロジックの分割により保守性を高める
D1
 実行環境に適応するためのロジックと,各機能を分割
する.
1. UMLのアクティビティ図を作成し,各機能のソースに非機能
要求への影響を記述する(手動).
2. マルコフ決定過程に変換し,各パスを通過した場合の非機
能要求への影響をPRISMを用いて計算する(自動).
3. 実行時に,確定している結果と,予測される結果に基づき,
非機能要求が最大限満たされるパスを選択する(自動).
 確定,予測される結果:応答時間,ユーザビリティ,バッテリー使用量
@Implementation(name=”ProductLookup”)
@Impact(metrics={”responseTime” , ”energy” , ”usabilit
y”}, values={1, 2 , 1})
public String automaticProductLookup(String barcode) {
/ / invoke http://searchupc.com/
}
2
信頼性を高められ,オーバーヘッドも少ない
D1
 従来法との違い
 信頼性も高めることができる.
 あるコンポーネントで例外が発生すると,別のパスを選ぶ.
 評価実験
 ソフトウェアの規模や複雑度を変えて,提案方法適用時のオ
ーバーヘッドを確かめた.
 最大で9%実行時間が増えた.
 ツールが公開されている
 ADAM (Adaptive Model-driven execution)
 http://code.google.com/p/adam-java/
 感想
 手法の説明はかなり具体的に記述されていた。
 有用と思うが、他手法との比較は少し不十分に感じた。
3