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