A10 - qwik.jp

FSE/ASE勉強会
A10:Software Maintenance II
紹介者:肥後芳樹
2012/3/21
Self-Adaptive Software Meets Control
Theory: A Prelimnary Approach Supporting
Reliability Requrement
Antonio Filieri
Carlo Ghezzi
Alberto Leva
Martina Maggio
2012/3/21
概要
• Control-theoretical なアプローチを用いること
によりモデルレベルでのself-adaptation(自己
適用?)を達成
– モデルには離散時間マルコフ連鎖を利用
• シミュレーションで評価
– 必要とされる信頼性を時間に応じて変化させ,モ
デルがどのように振る舞うのかを観察
2012/3/21
Self-Adaptive(自己適用型)とは
• 環境の変化に応じて,その変化に対応すべく
自身の振る舞いを変化させること
• この論文では,要求される信頼性を満たし続
けることがself-adaptiveと定義
– 実験では,要求される信頼性は数値として与えら
れる
2012/3/21
なぜ離散時間マルコフ連鎖を用いる
のか
• 可能性として起こりうる異常状態をモデル化
することにより,信頼性に関する事柄を表現
できる
• 要求される信頼性は,モデル上における(以
上状態等の)ある状態への遷移の到達可能
性として表現されうる
2012/3/21
Generalizing Evolutionary Coupling
with Stochastic Dependencies
Sunny Wong
Yuanfang Cai
2012/3/21
概要
• マルコフ連鎖を用いてStochastic
Dependencies (確立論的な依存関係)定義
• Stochastic Dependenciesを用いて,モジュー
ルの同時更新を予測
• 5つのソフトウェアの計78のリリースに対して
実験
– 16種類の Stochastic Dependenciesを用いた
– 既存手法よりは精度が良かった
2012/3/21
手法の概要
• 下記の履歴があったとき
– {a,b}, {a,c}, {d}, {a,b}, {a}, {a,b,c}, {b,d}, {a}, {a,d}, {c}, {a,c}, {a}
• cに対するstochastic dependenciesは
p.295(論文3ページ目)の表
• 工夫点は
– 大昔のリビジョン情報は使わない
2012/3/21
– 履歴データには重み(λ)をつける
評価方法
• Research Questionは4つ
1. Structure-based IA(Impact Analysis) techniquesと比べ
てどうか
• CBO等のメトリクス,依存グラフ(呼び出し関係?)
2. History-based IA techniquesと比べてどうか
• Kとλをなくしたもの(アイテムセットマイニングのようなもの?)
3. k(大昔の履歴とみなすしきい値)はどの程度精度に
影響を与えるか
4. λ(用いる履歴の重み付け)はどの程度精度に影響を
与えるか
• 精度は,precision,recall,F値を算出することによ
り比較
2012/3/21
実験結果
• RQ1:すべての対象,すべてのkとλの組み合
わせで提案手法が有意に良い
• RQ2:すべての対象,3/4のkとλの組み合わせ
で提案手法が有意に良い
• RQ3:kは長すぎても短すぎでもダメ
– ソフトウェアによって最適なkが違うかどうか書い
ていないような…
• RQ4:const,line,sine,exponで調査
– ソフトウェアによって違う
2012/3/21
感想
• 手法に斬新さはあまりない(ような気がする…)
• 評価がしっかりしている
– 4ページ目からevaluationの章が始まる
– 複数の既存手法との比較
– Discussionに約1ページ使っている
2012/3/21
Differential Precondition Checking: A
Lightweight Reusable Analysis for
Refactoring Tools
Jeffrey L. Overbey
Ralph E. Johnson
2012/3/21
概要
• リファクタリングの自動化で難しいのは,その
リファクタリングが振る舞いを変えないことを
保証すること
• この論文では,この保証のための新しい手法
を提案
– 高速
– さまざまなリファクタリングパターンに対応
– 多言語対応
• Fortran,PHP,BCで実験
2012/3/21
提案手法の流れ
1. ソースコードからモデルを生成(initial model)
2. ソースコードに対してリファクタリングを適用
3. リファクタリング後のソースコードからモデルを生成
(derivative model)
4. Initial modelとderivative modelに対して
preservation analysisを実行
– 成功ならそのリファクタリングは振る舞いを変えない
– そうでないなら振る舞いを変えてしまう
2012/3/21
用いたモデル
• Program graph
– AST+CFG+PDGを
合わせたような
もの?
2012/3/21
p.306(論文の4ページ目の図)
評価
• 多言語化の評価
p.310(論文8ページ目の表)
– このうちのいくつかはEclipseのCDTやJDTでもやっ
てみた
• スピード
– 既存手法よりは遅いけど,数秒程度であり許容
範囲内
2012/3/21