Partial Evaluation of Model Transformations

ICSE’12 勉強会
Maintaining Invariant Traceability through
Bidirectional Transformations
Y. Yu, Y. Lin, Z. Hu, S. Hidaka,
H. Kato, and L. Montrieux
担当: 名古屋大学 渥美
1
Motivating example
(1) モデルから
テンプレートコードを生成
(2) テンプレートコードを改変
・ toString() を toString(String type) に拡張
・ getName() を getID() にリファクタリング
モデルからコードを再
生成した場合に書き換
えられないように
注釈 @generated はモデルから生成
されたことを示すものであり,モデルと
対応付けられている
2
(3) Name ⇒ iD の変更は自動的にモデルに反映 (自動)
(4) モデルからコードを再生成
・ 変更前の toString が生成される
・ toString(String type) 中の name が iD に変更されない
blinkit
(bidirectional invariant traceability framework)
目的:同時に更新されるモデルとユーザコードのトレーサビリ
ティを確保する
I.
II.
III.
IV.
モデルとテンプレートコードは対応付け
られている
U’ における修正したメソッドには 注釈
@generated INV を付ける
U’ と T の差分から U’ を T に変換する
ルールを求める
3. のルールをT’に適用し,TとU’のトレー
サビリティ情報を保持したまま U’ と T’ を
マージしたコードを生成する
3
1
4
2
External Changes
Meaningful Diff
Forward transf.
Backward transf.
GRoundTram: An Integrated Framework for
DevelopingWell-Behaved
Bidirectional Model Transformations
(ASE2011, short paper)
3
Optional Check
Figure 8.
The data flows inside bl i nki t
評価(1/2)
モデル,コードを並行して変更を加えて適切にトレーサビリ
ティを確保できるか?
 クラス数1, 属性数1 のEMFメタモデルを対象
@generated として生成された要素
 クラス: 8
 属性: 48
 メソッド: 10
モデル,生成されたクラスを変更



メソッド9つに対し,注釈を @generated INV に変更し,メッソド
コードを修正
モデルのクラス名,メソッド名を変更
blinkit でそれぞれの変更を正しくマージできることを確認した
4
評価 (2/2)
モデルとコードがような現実的なケースがオープンソースのプロ
ジェクトにあるか?
 GMF プロジェクトの CVS リポジトリから java code を対象に
調査


2005/08/14〜2011/08/13
28,070 リビジョン
• @model 要素 (モデルに対応する Java コード) の変更によ
る影響を受けるリビジョン: 15,223 (54%)
• @generated NOT のメソッド (ユーザコード) から参照され
るモデル要素: 146,415
⇒ 平均 9.61 (146,415/15,223) 個のモデル要素が
@generated NOT メソッドから参照されている
5
ICSE2012勉強会 Session N: Models #2
Slicing MATLAB Simulink Models
(R. Reicherdt & S. Glesner, Proc. ICSE2012, pp.551 - 561)
名古屋大学 大学院情報科学研究科 旧小林G
小林隆志 & 小林孝壽 (M1・インターンシップ中)
※ 図表は上記論文から引用しています.
6
概要
• 背景:Simulinkモデルに対する静的手法は少ない
• 手動レビューや構文チェックのみ or コード生成後に実施
• データフローや制御フローの認識が困難であることが原因
• 提案:スライス技法によるSimulinkモデルの複雑さ削減
• 特徴:Simulink向けの制御依存解析 (データ依存は直感的)
•
CEC (Conditional Execution Contexts)の考慮が肝
• モデル構造や階層を保持 → 他の手法・ツールを適用可能
• 評価:10個のサンプルモデル(57-394ブロック) により評価
• Ave. Forward/Backward Slice Size で特性を議論
• スライス計算の正確さなどは議論していない
7
Simulinkモデル

Simulink:データフロー指向モデル
 ブロックは機能の表現や
モデルの構成に使用される
 ラインは信号の流れを表し,
ブロックの入力と出力に接続する
 EC(実行コンテキスト) を考慮した
シミュレーション

Fig2では,whileブロックの実行は
1サイクルだが,内部(Fig3)では
複数サイクルで実行される.
(1/z が正しく機能する)
condが成り立つ
間は繰り返す
i++
【delay block】
1サイクル前の
値を返す
i += i
i *= i
8
EC(実行コンテキスト)

実行サイクルを制御する単位


モデル全体(=root context),各Atomicサブシステムが
それぞれに1つもつ
ECに入るとECに含まれる全ての要素が実行される
実行するブロックの順序リストとネストしたECを含む
 他のサブシステム、ブロックとのデータ依存と
親サブシステムのECよりスケジュールされる

root context (EC1)
1:3
1:2
1:1
2:2
2:1
EC2 (for subsystem#1)
3:2
3:1
EC3 (for subsystem#2)
9
Conditional Execution Contexts(CEC)

条件の値を指定する特殊な入力ポートに関連するEC
実行スケジュール
が cond の真偽で
異なる

任意のCECに含まれるノードmは
述語ブロックに制御依存
11
CECの計算

問題点: CECはサブシステム境界を超えて両方向に伝播
Mathwoksが定義.シミュレーション最適化が目的
 条件付きサブシステムSのCECに,Sに含まれていない
ブロックbを追加できる(= 実行サイクルを減らすことができる)
 単純な構文指向アプローチを利用できない


伝播を考慮するアルゴリズムを定義している
サブシステム外のブロックも同じ
EC 2 に入れる (GainとBiasが同ECに)
In1の入力で
In2-4のどれを
出力するか決定
12
評価実験

提案手法に基づくスライシングツールを実装
 モデル解析,制御依存・データ依存の解析,PDG構築
 Forward,Backward走査が可能
 グラフを配色して印刷,スライス以外のブロックの除去


MATLAB IDEで実行可能なM言語スクリプト
10個のケーススタディにより評価
 m1を自身で作成
(57 block)
 m2をプロジェクトパートナーから提供 (227 block)
 残り8個はSimulinkデモモデル (78-394 block)
15
実験結果
FW:forward m: モデル
BW:Backward S(b): bを基準にしたスライス
dd:データ依存
cd:制御依存
dd+cd はddと同程度か, ddより大きなサイズとなる
 条件付き実行に必要なブロックをスライスに追加するため

16
実証研究との比較

[9]:様々なプログラムのスライス


[10]:異なる定義の拡張有限状態機械


AVG BW=28%, FW=26%
AVG BW=39.42%~67.99%
本研究:

AVG BW=54.26%, FW=54.39%
 [9]と大小が逆転している



Simulinkは制御依存があまり含まれない
Constantブロックや大きなフィードバックループを持つ
[9]と比べ大きい
 処理に関係ないVirtualブロック(Portなど)が多い
 フィードバックループ
→多数のブロックによる環状データ依存
[ 9 ] D. Binkley, N. Gold, and M. Harman, “An empirical study of static program slice size,” ACM TOSEM (16)2, 2007
[10] K. Androutsopoulos, et al. “A theoretical and empirical study of EFSM dependence,” Proc. ICSM2009
17
ICSE’12 勉強会 Session N #3
Partial Evaluation of
Model Transformations
A. Razavi
(U. of Waterloo) &
K. Kontogiannis
(National Tech. U. of Athens)
Proc. ICSE2012 pp.562-572
担当:東工大 小林
スライド中の図は論文から引用しています.
18
概要

背景:モデル変換(MT)は高コスト


提案:部分評価をベースにした漸次的モデル変換法



MTは新しいモデルを作る時だけではなく,開発プロセス全体で頻繁
に利用されるが,変換コスト(時間)が問題となる.
モデル変換のプログラムを部分評価して得た
残余プログラム =最適化されたモデル変換プログラム
部分評価対象 = 新たな変更に関係ない要素の変換
評価:QvtMixを用いた変換実験


19
QvtMix: QVT-OM言語用の提案手法のプロトタイプ実装
要素数を3~11Kで変化させ変換の高速化を確認
部分評価

部分評価:


静的に決定できる(入力が予想できる)計算を事前評価し,
実行コストを削減する手法.事前評価できなかった個所は
残余(residual)プログラムと呼ばれる
式による説明



20
言語 で書かれた prog が in を入力として実行した場合に out を
出力することを
と表記する
部分評価器
は prog と,事前に決定可能な入力
,
を入力として与え,残余プログラム progsを出力する
つまり,事前に決定できない入力を
とすると
提案手法の概要

Binding Time Analysis(BTA)



Parserが生成したASTに対して,事前決
定できる入力と伝播ルールを使って,
FIXEDかVAR をアノテーションする
式の評価結果をキャッシュして利用
Specializer

21
ASTをトラバースしてFIXEDは評価結果
と置き換える.VARに対してもFIXEDに
関係する部分は書き換える
例題(と実験でのモデル)
22
BTAとSpecializer 実行例:

BookがFIXED


全属性がFIXED


値は変わらない
CompositionがVAR

23
新しいインスタンス
は増えない
インスタンス数が変化する
BTAとSpecializer 実行例:
24
BTAとSpecializer 実行例:
25
評価

例題と同じモデルを
Bookの数を変化させて
速度を評価

要素数100以上での
爆発的な速度増加を
大幅に改善


100まではI/O dominant
FIXEDにする割合を変化
させて効果を評価

26
およそ倍の速度で計算可能
ICSE’12 勉強会 Session N #4
Partial Models: Towards Modeling and
Reasoning with Uncertainty
M. Famelis, R. Salay, and M. Chechik
(U. of Tronto)
Proc. ICSE2012 pp.573-583
担当:東工大 小林
スライド中の図は論文から引用しています.
27
概要

不確実性を取り扱うことのできるモデリング手法の提案

この論文での “不確実性(uncertainty)” = “multiple possibilities”


例:「ある属性をどのクラスに持たせるべきか,現時点では判断できない」
対象:モデル=メタモデルが存在する型付グラフ

28
“Partial Model” = 不確実性を許容するモデル = ノードとエッジの
存在が {True, False, Maybe(実際は論理式)}で表現される.
Reasoning with Partial Models

不確実性を取り除くために候補を選択する手段として
4つの reasoning operations を定義




29
OP1: Construction

複数の候補モデルからPartial Modelを構成する方法

不一致要素をMaybeとして,その論理式を構成する
アルゴリズムで定義
OP2: Verification

Partial Model(ΦM) がプロパティ(Φp)を満たすか確認する方法

SAT問題に変換 (ΦM ∧ Φp と ΦM ∧ ¬Φp を確認)
OP3: Diagnosis

どの候補モデルがプロパティに違反しているかを見つける方法

SAT問題に変換 (OP3a~cの3種類が定義されている)
OP4: Refinement

プロパティに違反している候補モデルを除外する方法

アルゴリズムで定義
評価


RQ1: 伝統的な方法と比べて,提案手法のモデルはで
推論することはどの程度ふさわしい(feasible)か?

E1: ΦM ∧ Φp と ΦM ∧ ¬Φp を確認,時間を比較

モデルサイズ(S,M,L,XL), 不確実性(S,M,L,XL)を変化
実験結果


30
E1: 従来法と比べて
最大29倍高速
OP2, OP3の一部は
大変効果的
評価結果

RQ2: 提案手法は,不確実性の度合いに対してどの程
度の精度(sensitive) か?



E2: ΦM ∧ Φp をもつ partial model(提案手法),全モデル(従来法)を作
成.時間を比較
モデルサイズ(S,M,L,XL), 不確実性(S,M,L,XL)を変化
実験結果


31
E2: 不確実性の度合いに相関がある
提案手法を使うと遅い.
(モデルサイズが小さいと特に)