Top Banner
Aluminum: Principled Scenario Exploration through Minimality 酒井 政裕 2013-07-09 ICSE2013 勉強会 The background image is from http://images-of-elements.com/. The image is licensed under a Creative Commons Attribution 3.0 Unported License. F1 by Tim Nelson, Salman Saghafi, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi @ ICSE 2013
7

Aluminum: Principled Scenario Exploration through Minimality

Jul 20, 2015

Download

Technology

Masahiro Sakai
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aluminum: Principled Scenario Exploration through Minimality

Aluminum: Principled Scenario Exploration through Minimality

酒井 政裕

2013-07-09

ICSE2013 勉強会

The background image is from http://images-of-elements.com/. The image is licensed under a Creative Commons Attribution 3.0 Unported License.

F1

by Tim Nelson, Salman Saghafi, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi @ ICSE 2013

Page 2: Aluminum: Principled Scenario Exploration through Minimality

背景 • 背景

– 高レベルの仕様記述に対して「シナリオ」(=具体例)を探索・生成するAlloyなどのツール

– シナリオの利点 • システム設計者が、その設計の帰結、見落としていた制約、代替的なデザインなどを検討するのを助ける

• 具体的なので分かりやすく、現実に対応させやすい。

• 論理学等に詳しくない、ドメインの専門家にも理解可能

• 課題 – 複数あるシナリオから、どんなシナリオをどんな順で提示するべきか?

– 小さいシナリオはしばしば病的で、微妙な問題を明らかにすることが多い

– ⇒ 小さいシナリオから提示するように出来ないか?

F1

Page 3: Aluminum: Principled Scenario Exploration through Minimality

Alloyの例 F1 abstract sig Subject {} sig Student extends Subject {} sig Professor extends Subject {} sig Class { TAs: set Student, instructor: one Professor } sig Assignment { forClass: one Class, submittedBy: some Student } pred PolicyAllowsGrading(s: Subject, a: Assignment) { s in a.forClass.TAs or s in a.forClass.instructor } pred WhoCanGradeAssignments() { some s : Subject | some a: Assignment | PolicyAllowsGrading[s, a] } run WhoCanGradeAssignments for 3 コードと図は Aluminum: Principled Scenario Exploration through

Minimality (by Tim Nelson, Salman Saghafi, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi) より抜粋

Page 4: Aluminum: Principled Scenario Exploration through Minimality

F1 複数シナリオの列挙

図は Aluminum: Principled Scenario Exploration through Minimality (by

Tim Nelson, Salman Saghafi, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi) より抜粋

Next

Next

Next

Page 5: Aluminum: Principled Scenario Exploration through Minimality

Alloy を変更し Aluminum を実装

機能

1. GenerateMin –極小なシナリオの生成・列挙

(関係からタプルを一つでも取り除くと、制約を満たさなくなる)

2. Augment –シナリオを、関係にタプルを追加することでユーザが拡張

3. ConsistentTuples –シナリオに対し、関係に追加可能なタプルを計算

F1

シナリオ探索の スタートポイント

余計なものを含まない、シナリオの本質に注目!

対話的探索!

「制約を追加して 再探索」という コンテキストスイッチを減らす

Page 6: Aluminum: Principled Scenario Exploration through Minimality

F1

図は Aluminum: Principled Scenario Exploration through Minimality (by Tim Nelson, Salman Saghafi, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi) より抜粋

Alloy

Aluminum

Next Next

Next Next

列挙の比較

Page 7: Aluminum: Principled Scenario Exploration through Minimality

• アルゴリズムは素直 – SATレベルでの制約の順次追加による極小化など

–ただし、Symmetry-Breakingは極小化との相互作用の問題から、Alloy(KodKod)と別のヒューリスティクスを採用

• 実験を通じた観察 – Alloyは特定の極小シナリオの上位のシナリオばかりを列挙し、それ以外を数百回以上も出さないことが多い

–それまでにユーザが探索をやめてしまい、重要・危険なシナリオを見逃す危険性

– Aluminumはシナリオ空間の本質をユーザに早く見せる

• 性能への影響はあまりなし

F1