1 / 17

CSSL: A Logic for Specifying Conditional Scenarios

CSSL: A Logic for Specifying Conditional Scenarios. Shoham Ben-David, Marcha Chechik , Arie Gurfinkel , Sebastian Ushitel Reported in FSE’11 ( 紹介者 : 東工大佐伯研 井上 ). 問題提起 – 表現目標と既存手法の欠点 –. 「分岐のある」 シナリオの「存在性」の形式表現が主な目標 存在性 : システムが「 ×× の動作を し うる」なら「真」と評価. ATM では、 認証が完了する と 現金 の 引き落とし が

tuyet
Download Presentation

CSSL: A Logic for Specifying Conditional Scenarios

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSSL: A Logic for Specifying Conditional Scenarios Shoham Ben-David,MarchaChechik, ArieGurfinkel, Sebastian Ushitel Reported in FSE’11 (紹介者: 東工大佐伯研 井上)

  2. 問題提起 –表現目標と既存手法の欠点– • 「分岐のある」シナリオの「存在性」の形式表現が主な目標 • 存在性: システムが「××の動作をしうる」なら「真」と評価 ATMでは、 認証が完了すると 現金の引き落としが 実行されうる → “ok”の時点で “cash” について真 (本文より引用,Figure2)

  3. 問題提起 –表現目標と既存手法の欠点– • 「分岐のある」シナリオの「存在性」の形式表現が主な目標 • 存在性: システムが「××の動作をしうる」なら「真」と評価 • CTL(Computation Tree Logic, 計算木論理)では… • シナリオの表現が複雑 CTLでは、“cash” の前に現れる 動作の記述が面倒 (本文より引用,Figure2)

  4. 問題提起 –表現目標と既存手法の欠点– • 「分岐のある」シナリオの「存在性」の形式表現が主な目標 • 存在性: システムが「××の動作をしうる」なら「真」と評価 • CTL(Computation Tree Logic, 計算木論理)では… • シナリオの表現が複雑 • PSL(Property Specification Language, 特性記述言語) では… • 「××の動作をしない場合がある」とき、特性の評価が「偽」となる • 本当は「真」になってほしい PSLでは、“cash” を通らないパスがあると 反例扱いされ、 特性が偽になる (本文より引用,Figure2)

  5. CSSL–ConditionalSenario Specification Language- • CSSL: PSLにBranching Suffix Implication(BSI) を導入したもの • シナリオの「存在性」の表現が可能 • 例: 「銀行利用者がATMへのログインに成功した時、現金の引き下ろしが実行されうる」 G((pwdverifyok) X(reqCash cash)) • CSSLでモデルチェックを行うオートマトンについて考察 • CTLの理論を利用しながらチェック • チェック時の計算量オーダーはPSLでのチェックと同等 BSI記号 特性を受理する ステートマシンをNuSMV上で実装 研究範囲 特性を CSSLで記述 NuSMVで モデルチェック

  6. ケーススタディ(評価) • テレビやビデオのセットで用いるプロトコルの検証 • CSSLで特性を記述 • 多くの特性は検証できた • 事前条件が緩すぎる特性は検証できない場合もあった • PCIのトランザクションの検証 • PCI: プロセッサと周辺機器の通信バスアーキテクチャ • CSSLでデッドロックをモデル化 • CSSLでの「状態の分岐」の表現力を主張 • LTLでは普遍性を前提 → 分岐の存在を扱いにくい * ・・* ・ ・ * ・ ・ * ・ 複雑 * ・ (CSSL の式は本文中のものを参照, Section 5.1)

  7. Using an SMT Solver for Interactive Requirements Prioritization Francis Palma, Angelo Susi, Paolo Tonella Fondazione Bruno Kessier, Software Engineering Research Unit Trento, Italy 紹介者:鵜飼

  8. 概要 • 要求の優先順位をつけるって、要求獲得の早い段階でとっても大事 • SMT Solverを使って、対話的に優先順位をつける • ヘルスケアの実プロジェクトの要求を使って評価を行い、効果、効率、意思決定者の誤りに対する頑強さの観点で、既存の対話的な技術を上回る

  9. SMT Solver • 充足問題解決器?(SAT)の便利バージョン • 変数、配列、関数などを定義できる • 満たすべき制約を等式や不等式を使って列挙 • 制約を満たす変数、関数の割り当ての例を求めることができる • SATは命題論理式で制約を満たす変数のtrue/falseの例を求める A∧(A∨B) → (A=true,B=true),(A=true,B=false)

  10. 事例によるアルゴリズムの説明 要求に対する優先順位 充足しないペアの数 SMTによる充足解

  11. 事例によるアルゴリズムの説明 充足解同士の比較 R2とR4、R3とR4、R4とR5をそれぞれ比較して優先順位をつける R2,R3,R4,R5からなるEliという優先順位のグラフを作成し、PrioとDepsに加える 前のページに戻る

  12. Modeling the HTML DOM and Browser APIin Static Analysis of JavaScript Web Applications Anders Møller, Magnus Madsen and Simon Holm Jensen Reported in ESEC/FSE 2011 (紹介者: 東工大 佐伯研 有賀)

  13. 概要 ツールサポートの不足 現状の問題点 静的解析ツール 作成 ・TAJSを拡張 ・HTML ・イベント ・その他 ・JavaScript 用 静的解析ツール (JavaやCだとEclipse, Visual Studioで可能) ・エラーの早期発見 ・JavaScript言語 ・ブラウザ環境 ・アプリケーション開発 できたツール 評価 今後のツールサポート に期待できる!! TAJS: Type Analysis for JavaScript (本文より引用, Figure 4)

  14. 問題点 • JavaScript言語 • 静的解析に向かない言語的特徴 • 実行時に修正、変化する型や継承関係のオブジェクトモデル • 高階関数、例外など • ブラウザ環境 • ブラウザ間の非互換性 • 特定ブラウザでサポートされていない関数が多数 • アプリケーション開発 • ソースコードと実行可能コード • 動的に生成されるコード(lazy loadingなど) • 今回はソースコードに焦点

  15. TAJS拡張のアプローチ:HTMLページのモデル化 • HTMLオブジェクトの階層構造 • プロトタイプチェーン • 要素のルックアップメカニズムのモデル化 • HTMLページの要素の更新に合わせてマッピングも更新 • 例:新しいid属性が挿入されるなら解析中にマップを更新 • 要素のゲット関数の健全性を保持 • getElementByIdなど 継承 継承 HTMLInputElement.prototype HTMLInputElement

  16. TAJS拡張のアプローチ:イベントシステムのモデル化TAJS拡張のアプローチ:イベントシステムのモデル化 • イベントシステムのモデル化 • イベントハンドラの動的登録、除去のモデル化 • オブジェクト参照の変更(登録、除去)に対応 • onload, onclickのような静的な変更 • addEventListenerのような動的な変更 • 解析の健全性を保持 • イベントハンドラのトリガーのモデル化 • HTMLページの実行順序のモデル化 • 右図のようにフローグラフを拡張 • loadイベントとそれ以外を分ける • 実行順序をより正確に追跡できる • 他にもいろいろTAJSを拡張してます (本文より引用, Figure 3)

  17. 実験と評価 • 実験対象 • 53のベンチマークプログラム(ウェブアプリケーション) • Research Question Q1:エラー検出能力 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・90%以上 Q2:プログラマにエラーの位置を把握させる能力があるか・○ Q3:コールグラフの精度 ・・・・・・・・・・・・・・・・・・・・・・・・・・・49/53 Q4:型の精度 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・85%で単一に特定 Q5:デッドコード、到達不能コードの検出能力があるか ・・○ • 結論 • 新たなツールサポートの基盤情報としては十分

More Related