• 検索結果がありません。

untitled

N/A
N/A
Protected

Academic year: 2021

シェア "untitled"

Copied!
28
0
0

読み込み中.... (全文を見る)

全文

(1)

Model Checking Web Specifications

-

Verification of design specifications

for Web applications

-JAIST/AIST Workshop Sep. 21 2005

Eun-Hye CHOI Hiroshi WATANABE

Research Center for Verification and Semantics (CVS), AIST http://unit.aist.go.jp/cvs/

(2)

Outline of My Talk

z Background

z Proposed methods

z Experiments

(3)

Background

z A certain company, A, provided us a set of design

specifications which was used for an actual Web-based business processing application.

z In our fieldwork, we tackled proposing a verification

technique for the given design specifications that is easily applicable to existing design process for Web applications.

(4)

Design Specifications for a Web Application

z Consistency checking for design specifications is important

in terms of not only reliability but also maintenance and reuse of a Web application.

Action A +a() B +b( ) Preliminary Design Phase Detailed Design Phase Page Flow

Diagram UML ActivityDiagram

Class Specification: UML Class Diagram, Method Specifications

(5)

Our Work

z We proposed verification methods to check

I. Consistency between a page flow diagram & an activity

diagram

II. Consistency between a page flow diagram & a class

specification

III. Consistency between a class specification & an activity

diagram

z The proposed methods are based on a model checking

technique. Action A +a () B + b(

(6)

Model Checking

z Model checking is a verification technique that can

exhaustively check whether a finite transition system satisfies a temporal logic formula or not.

z Model checking is also helpful to allocate errors because,

when the system does not satisfy the property, counterexample is output with the result.

Model Formula • AG p • EF p Model Checker Property • always p • eventually p • True • False Counter-example System (Design Specification)

(7)

Outline of My Talk

z Background

z Proposed methods to check

I. Consistency between a page flow diagram & an activity

diagram

II. Consistency between a page flow diagram & a class

specification

III. Consistency between a class specification & an activity

diagram z Experiments z Conclusion Action A +a () B + b( )

(8)

Outline of the proposed method I

z Proposed method to verify the consistency between a

page flow diagram and an activity diagram

1. Define the consistency between a page flow diagram and

an activity diagram.

2. Represent the consistency using CTL formulas, which are

generated from the page flow diagram.

3. Model check if the CTL formulas hold for a Kripke model

constructed from the activity diagram.

Page Flow Diagram Activity Diagram CTL Formulas Kripke Model CTL Model Checker

(9)

Show Reserve-Page Input Check Show Error-Page Click Back button

Input User ID, Facility, Date Show Confirm-Page Click Submit button Click Cancel button Show Finish-Page User System Click Reserve button [OK] [NG] Reservation: Update DB Click Back button

Example Application and Specifications

Page A: Reserve-Page Page B: Error-Page

Page C: Confirm-Page Page D: Finish-Page

Page Flow Diagram Activity Diagram Page A Page B Page C Page D error back back cancel reserve submit

(10)

Inconsistency 1

Page Flow Diagram Activity Diagram

A page transition (page D, page A) in the page flow diagram

does not occur in the activity diagram.

Page A :

Reserve-Page Error-PagePage B :

Page C :

Confirm-Page Finish-PagePage D :

Show Reserve-Page Input Check Show Error-Page Click Back button

Input User ID, Facility, Date Show Confirm-Page Click Submit button Click Cancel button Show Finish-Page User System Click Reserve button [OK] [NG] Reservation: Update DB Click Back button

(11)

Inconsistency 2

Page Flow Diagram Activity Diagram

A page transition (page D, page C) in the activity diagram

does not exist in the page flow diagram.

Page A :

Reserve-Page Error-PagePage B :

Page C :

Confirm-Page Finish-PagePage D :

Show Reserve-Page Input Check Show Error-Page Click Back button

Input User ID, Facility, Date Show Confirm-Page Click Submit button Click Cancel button Show Finish-Page User System Click Reserve button [OK] [NG] Reservation: Update DB Click Back button

(12)

Consistency of

Page Flow Diagram and Activity Diagram

z We employ the following two conditions for a definition of

the consistency between a page flow diagram and an activity diagram:

C1 : For each page transition in the page flow diagram, a transition corresponding to the page transition exists in the activity

diagram.

C2 : Every transition in the activity diagram corresponds to a stuttering or a page transition in the page flow diagram.

Page Flow

(13)

Show Reserve-Page Input Check Show Error-Page Click Back button

Input User ID, Facility, Date Show Confirm-Page Click Submit button Click Cancel button Show Finish-Page User System Click Reserve button [OK] [NG] Reservation: Update DB Click Back button

Definition of Consistency

Page Flow Diagram: (V,E(⊆V×V)) Activity Diagram: (S,T(⊆S×S)) • view:S→V A A A A B C A B C C C D D Page A :

Reserve-Page Error-PagePage B :

Page C :

Confirm-Page Finish-PagePage D :

V={A,B,C,D}

Def. Consistency between (V,E) and (S,T,view) holds iff

C1 : For each (x,x’)∈E, there exists (s,s’)∈T such that

view(s)=x and view(s’)=x’.

C2 : For each (s,s’)∈T, view(s)=view(s’) or

(14)

Consistency Checking Problem

z Consider a page flow diagram (V,E) and a Kripke structure

K = (S,T,

λ

s.{view(s)}:S→2V) where (S,T) denotes an

activity diagram. Let s0 denote the initial state of K.

z The two conditions for the consistency are represented

using CTL (Computation Tree Logic) as follows:

C1 : ∀(x,x’)∈ E, (K, s0) |= EF (x ∧ EX x’)

C2 : ∀x∈V, (K, s0) |= AG (x → AX (∨ x’

x))

z The consistency between a page flow diagram and an

activity diagram is verified by model checking the above CTL formulas for Kripke structure K.

(15)

Show Reserve-Page Input Check Show Error-Page Click Back button

Input User ID, Facility, Date Show Confirm-Page Click Submit button Click Cancel button Show Finish-Page User System Click Reserve button [OK] [NG] Reservation: Update DB Click Back button

Model input to Model Checker

z Input model is constructed from an activity diagram.

Activity Diagram: (S,T) Kripke Model K: (S,T,λs.{view(s)}) {A} {A} {A} {A} {B} {C} {A} {B} {C} {C} {C} {D} {D} Show Reserve-Page Input Check Show Error-Page Click Back button

Input User ID, Facility, Date Show Confirm-Page Click Submit button Click Cancel button Show Finish-Page User System Click Reserve button [OK] [NG] Reservation: Update DB Click Back button

(16)

Formulas input to Model Checker

z C1 1. EF (A ∧ EX B) 2. EF (A ∧ EX C) 3. EF (B ∧ EX A) 4. EF (C ∧ EX A) 5. EF (C ∧ EX D) 6. EF (D ∧ EX A) z C2 7. AG (A → AX (A∨B∨C)) 8. AG (B → AX (B∨A)) 9. AG (C → AX (C∨A∨D)) 10. AG (D → AX (D∨A))

Page Flow Diagram CTL Formulas

z Input formulas are generated from a page flow diagram.

Page A :

Reserve-Page Error-PagePage B :

Page C :

(17)

Model Checking

Kripke Model K: (S,T,λs.{view(s)}) Show Reserve-Page Input Check Show Error-Page Press Back button

Input User ID, Date Show Confirm-Page Press Submit button Press Cancel button Show Finish-Page User System Press Reserve button [OK] [NG] Reservation: Update DB Press Back button {A}

{A}{A} {A}

{B} {C} {A} {B} {C} {C} {C} {D} {D} z Cond1 1. EF (A ∧ EX B) --- True 2. EF (A ∧ EX C) --- True 3. EF (B ∧ EX A) --- True 4. EF (C ∧ EX A) --- True 5. EF (C ∧ EX D) --- True 6. EF (D ∧ EX A) --- False z Cond2 7. AG (A → AX (A∨B∨C)) --- True 8. AG (B → AX (B∨A)) --- True 9. AG (C → AX (C∨A∨D)) --- True 10. AG (D → AX (D∨A)) --- False CTL Formulas CTL Model Checker Result

(18)

Outline of My Talk

z Background

z Proposed methods to check

I. Consistency between a page flow diagram & an activity

diagram

II. Consistency between a page flow diagram & a class

specification

III. Consistency between a class specification & an activity

diagram z Experiments z Conclusion Action A B +

(19)

Outline of the proposed method II

z Proposed method to verify the consistency between a

page flow diagram and a class specification

1. From the given class specification consisting of a class

diagram and method specifications, we model its behavior by a parallel composition of labeled transition systems.

2. Apply the proposed method I to the behavior model of the

class specification. ReservAction ConfirmAction ErrorAction FinishAction Page Flow Diagram CTL Formulas Action A +a () B + b( ) Class Specification Class Model Model Checker

(20)

Outline of My Talk

z Background

z Proposed methods to check

I. Consistency between a page flow diagram & an activity

diagram

II. Consistency between a page flow diagram & a class

specification

III. Consistency between a class specification & an activity

diagram z Experiments z Conclusion Action A B +

(21)

Outline of the proposed method III

z Proposed method to check the consistency between a

class specification and an activity diagram

1. Compose the class model and the activity diagram.

2. Model check the deadlock-free property for the composed

model.

z If a deadlock occurs in the composed model, there exists

an inconsistency between the two specifications.

Activity Diagram Action A +a () B + b( ) Class Specification ReservAction ConfirmAction ErrorAction FinishAction Class Model || Parallel Composition Deadlock-free Property Model Checker

(22)

Outline of My Talk

z Background

z Proposed methods to check

I. Consistency between a page flow diagram & an activity

diagram

II. Consistency between a page flow diagram & a class

specification

III. Consistency between a class specification & an activity

diagram z Experiments z Conclusion Action A B +

(23)

Case Study

z We applied the proposed methods to the real

specifications of the given Web application.

z Developed by Java using Jakarta Struts framework.

z Classified into several tens of modules.

z We chose one module M and checked the consistencies

for a page flow diagram, an activity diagram, and a class specification for module M.

(24)

Experiment I

• Number of pages: 6

• Number of transitions: 9

Page Flow Diagram

申 請 者 ・ 支 店 [申 請者 ] 申請 者 メニュー・審 査 状 況 一覧 [支 店] 支店 メニュ ー・ 業務 検 索 一 覧 申 請 書コピー 表 示データより選 択する。 データを入 力 明細 登 録 を選 択 入 力す る。 選 択 ボタン を押 下す... 申請 を入 力 す る。 CSVファイルを選 択 する。 次 へボタン押 下 時 メニュ ーへリンクを押 下 時 戻 るボタン押 下 時 詳 細 データの入 力 を行 う 冠 称 名 ボタン押 下 時 明 細 追加 ボタン押 下時 明 細 変 更 ボタン押 下時 明 細削 除 ボタン 押下時 次 へボタン押 下 時 戻 るボタン 押 下時 申 請 内 容 を確 認す る。 送 信ボタン押 下 時 戻 るボタン押 下 時 明 細 変更 リンクを押 下す る。 該当 行 をを明 細 入 力 フレームへ表 示 する。 該当 データの選 択 前 ページへ 次 ページへ 訂 正 モード時 のみ有 効         前 ページ・次 ペ... 明 細 データの位 置ページ 表 示 件 数 のデータを表示 する 。 表 示 ページの制 御 を行う 共 架 管 理 シ ス テム 事 前 調 査 申請 画 面 を表示 す る。 受 付番 号 一 覧 画 面を表 示 する。 選択 した 対 象 データを検索 す る。 scv選 択 画面 を表 示す る。 C SVファイ ルを受 信 明細 入 力 画 面を 表 示する。 3.9 受 付 番 号 一覧 ポップアップ ... 明細 入 力 画 面を 表 示する。 csv送 信 オ ンライン 登録 事 前 調査 申 請 確 認 画 面 を表 示 する。 冠称 名 を検 索 する 。 冠称 名 一 覧 表 を表 示する。 属 性 チ ェック・必 須 チ ェック・電柱 番 号 重 複チ ェック 取 得データを保 持させる 。 エラーメッセージを 表示 する。 明 細 一覧 の該 当 行 の 追加 ・変 更 を行 う 明 細 一 覧 で削 除 チ ェックされて いる明 細行 の削 除 を行 う 明 細 件 数が一 件 以 上 入力され て いる事 を確 認 共 架 管理DBへの登 録を行 う 受 付 番 号 の採 番 を行う 事 前 調査 申 請 受 付 完 了 画 面 を表 示 する。 メニュ ー画 面 を表 示 する 。 初 期表 示 データ・ド ロップ ダウン リストデータの取 得 13.1 共 架 明 細 CSVファイル更 新 受 付 番 号 一覧 画 面の表 示 3.9 受 付番 号 一 覧 選 択 の受 付 番号 をキー として 該 当 データを取 得 工程 「事 前 申 請 受付 待 ち」 「契 約 申 申請 受 付 待 ち」のデータを取 得 ホ ス ト 受 付 チ ェックを行 う 受 付 チ ェック・設 備 情 報 取 得結 果 デ ータから安 全 率 計 算に 必 要 な項 目 を取 得 [OK] [NG] [NG] [OK] [OK] [NG] [手 入 力 の場合 ] 申 請 内 容 変 更時 • Number of states: 66 • Number of transitions: 83 Activity Diagram

Proposed Method I, NuSMV

Menu Menu Menu Menu 1 2 3 4 5

X : page transition that

does not exist in the activity diagram

→ : page transition

that exists only in the activity diagram

Result 6

(25)

Experiment II

• Number of pages: 6

• Number of transitions: 9

Page Flow Diagram

Proposed Method II, UPPAAL

Menu Menu Menu Menu 1 2 3 4 5 Result 6 • Number of classes: 5 • Number of methods: 17 Class Specification : : Class

Diagram SpecificationsMethod

X : page transition that

does not exist in the class specification

→ : page transition

that exists only in the class specification

(26)

Experiment III

Proposed Method III, UPPAAL

By analyzing counterexample, we found several inconsistencies such that • After clicked button B in page P, transferred pages are different.

• After action A, error checking is performed only in the class specification.

Result: Deadlock-free --- False

• Number of classes: 5 • Number of methods: 17 Class Specification : : Class

Diagram SpecificationsMethod 申 請 者 ・ 支 店 [申 請者 ] 申請 者 メニュー・審 査 状 況 一覧 [支 店] 支店 メニュ ー・ 業務 検 索 一 覧 申 請 書コピー 表 示データより選 択する。 データを入 力 明細 登 録 を選 択 入 力す る。 選 択 ボタン を押 下す... 申請 を入 力 す る。 CSVファイルを選 択 する。 次 へボタン押 下 時 メニュ ーへリンクを押 下 時 戻 るボタン押 下 時 詳 細 データの入 力 を行 う 冠 称 名 ボタン押 下 時 明 細 追加 ボタン押 下時 明 細 変 更 ボタン押 下時 明 細削 除 ボタン 押下時 次 へボタン押 下 時 戻 るボタン 押 下時 申 請 内 容 を確 認す る。 送 信ボタン押 下 時 戻 るボタン押 下 時 明 細 変更 リンクを押 下す る。 該当 行 をを明 細 入 力 フレームへ表 示 する。 該当 データの選 択 前 ページへ 次 ページへ 訂 正 モード時 のみ有 効       前 ページ・次 ペ... 明 細 データの位 置ページ 表 示 件 数 のデータを表示 する 。 表 示 ページの制 御 を行う 共 架 管 理 シ ス テム 事 前 調 査 申請 画 面 を表示 す る。 受 付番 号 一 覧 画 面を表 示 する。 選択 した 対 象 データを検索 す る。 scv選 択 画面 を表 示す る。 C SVファイ ルを受 信 明細 入 力 画 面を 表 示する。 3.9 受 付 番 号 一覧 ポップアップ ... 明細 入 力 画 面を 表 示する。 csv送 信 オ ンライン 登録 事 前 調査 申 請 確 認 画 面 を表 示 する。 冠称 名 を検 索 する 。 冠称 名 一 覧 表 を表 示する。 属 性 チ ェック・必 須 チ ェック・電柱 番 号 重 複チ ェック 取 得データを保 持させる 。 エラーメッセージを 表示 する。 明 細 一覧 の該 当 行 の 追加 ・変 更 を行 う 明 細 一 覧 で削 除 チ ェックされて いる明 細行 の削 除 を行 う 明 細 件 数が一 件 以 上 入力され て いる事 を確 認 共 架 管理DBへの登 録を行 う 受 付 番 号 の採 番 を行う 事 前 調査 申 請 受 付 完 了 画 面 を表 示 する。 メニュ ー画 面 を表 示 する 。 初 期表 示 データ・ド ロップ ダウン リストデータの取 得 13.1 共 架 明 細 CSVファイル更 新 受 付 番 号 一覧 画 面の表 示 3.9 受 付番 号 一 覧 選 択 の受 付 番号 をキー として 該 当 データを取 得 工程 「事 前 申 請 受付 待 ち」 「契 約 申 申請 受 付 待 ち」のデータを取 得 ホ ス ト 受 付 チ ェックを行 う 受 付 チ ェック・設 備 情 報 取 得結 果 デ ータから安 全 率 計 算に 必 要 な項 目 を取 得 [OK] [NG] [NG] [OK] [OK] [NG] [手 入 力 の場合 ] 申 請 内 容 変 更時 • Number of states: 66 • Number of transitions: 83 Activity Diagram Proprietary Secret

(27)

Outline of My Talk

z Background

z Proposed methods to check

I. Consistency between a page flow diagram & an activity

diagram

II. Consistency between a page flow diagram & a class

specification

III. Consistency between a class specification & an activity

diagram z Experiments z Conclusion Action A +a () B + b( )

(28)

Conclusion

z As a fieldwork, we proposed the methods to verify the

consistency between design specifications for Web applications.

z By applying the proposed methods, we found several

faults in the real specifications that had not been detected in actual reviews.

z Future work includes a full automation and an evaluation of

参照

関連したドキュメント

♦ DSP detects low battery voltage and puts HPM10 into Deep Sleep Mode through the DS_EN pin Hearing Aid with a Push Button and Unsealed Battery Door:..

Other Key Features − R3910 also supports the following features: Directional processing, built−in feedback path measurement, cross fading between audio paths for click−free

Other Key Features – Ayre SA3291 also supports the following features: directional processing, built−in feedback path measurement, cross fading between audio paths for

VCC When using DC−DC converter powered by different voltage as the primary side of the driver Power supply for DC−DC converter need to be connected to the VCC pin on P1.. ANB SET

• Apply Chateau EZ Herbicide, at 2 to 3 fl oz/A, between 7 and 30 days prior to planting field corn for the preemergence control of the weeds listed in Table 1, Broadleaf

 Do not apply more than 0.5 lb active ingredient (1 quart) per acre per season including at-plant, PRE, PPI and foliar applications of RUCKUS™ LFR® Soil Insecticide and

USE INSTRUCTIONS: This product may be applied by aerial or ground application equipment at rates up to 1 quart per acre per application postemergence to Roundup Ready cotton from

04h INT_MSK1 RW FFh Mask register 1 to enable or disable interrupt sources (trim) 05h INT_MSK2 RW FFh Mask register 2 to enable or disable interrupt sources (trim). 06h PID R