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: 不確実性の度合いに相関がある
提案手法を使うと遅い.
(モデルサイズが小さいと特に)
© Copyright 2026 ExpyDoc