Microsoft PowerPoint - 2012-05-11-SQiP-intro.pptx



Similar documents


untitled

●70974_100_AC009160_KAPヘ<3099>ーシス自動車約款(11.10).indb


REALV5_A4…p_Ł\1_4A_OCF

untitled

「都市から地方への人材誘致・移住促進に関する調査」

<91498EE88CA D815B2E786C73>

〔 大 会 役 員 〕

橡本体資料+参考条文.PDF

Lecture on

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool

% 11.1% +6.% 4, % %+12.2% 54,16 6.6% EV7, ,183 Copyright 216 JAPAN POST GROUP. All Rights Reserved. 1

l t a2 b c f g or t a2 b c f a2 b c f or l t a2 b c f g t a2 b c f g l t



untitled


橡ボーダーライン.PDF

形式手法入門VDM++チュートリアル.key

( ) [18 30] [21 00] 2 3 ( ( ) ) ( ) ( ) a b

No.28

卒論 提出用ファイル.doc

AVIC-T07

EPSON

2.8% 2.0% 2.4% 2.4% 0.4% 0.1% 0.3% 0.5% 3.8% 5.6% 25.6% 29.3% 64.6% 60.0% 1

™…

sbhc01b.ai

bumon_pro.indd

01-.indd


.z {..5.15

‡o‡P†C‡P‡Q”R„û†^‡P†C‡P‡Q

2012_05_GLK_cover.indd


Q & A

表紙2.eps

untitled

項 目

Java演習(4) -- 変数と型 --

1級 ワンポイント

..0.._ e.qxp



1

h01

B5‘·¢‡Ì…X…X…†PDFŠp

JPROM-PRINT

untitled

ACtive 010 2

平成20年度内部評価実施結果報告書《本編》

-2-


技術流出防止指針公表用.PDF

0ミ0、0・タ

H1-4.indd

改訂版 :基本的な文字化の原則(Basic Transcription System for Japanese: BTSJ)

untitled

imagio Wide 7040

SystemC言語概論



K227 Java 2


コーディング基準.PDF

JavaScript の使い方

Transcription:

青 字 : 不 具 合 が 埋 め 込 まれる 場 所 黒 字 : 不 具 合 が 発 見 される 場 所 赤 字 : 不 具 合 の 除 去 における コストの 増 加 率

1. 早 くバグ を 見 つける 2. バグ 検 出 の コストを 下 げる

ピークコストを 下 げる 累 計 コストを 下 げる サイト 内 の 紹 介 資 料

class EventManager instance variables users : set of User := {}; rooms : set of Room := {}; events : set of Event := {}; inv (forall ev1, ev2 in set events & ev1 <> ev2 => ev1.room <> ev2.room or ev1.date <> ev2.date); reservations : set of Reservation := {}; inv operations

public searchusersbyevent : Event ==> set of User searchusersbyevent(event) == return { res.user res in set reservations & res.event = event } pre event in set events; public sorteventsbyuser : set of Event ==> seq of Event sorteventsbyuser(event) == is not yet specified post forall i, j in set inds RESULT & i < j => RESULT(i).date < RESULT(j).date and ;

システム 全 体 哲 学 者 が 空 いていたら ( 空 くまで 待 つ) 右 手 でとる 食 べて フォークを 戻 す が 空 いていたら ( 空 くまで 待 つ) 左 手 でとる

p0 右 手 p0 左 手 p1 右 手 p2 右 手 P0 食 p2 右 手 p1 右 手 P0 食 p0 左 手 p2 右 手 p1 右 手 p2 左 手 p1 右 手 デッドロック

mtype = {p0, p1, p2, none}; mtype fork[3] = none; active proctype P0(){ do :: atomic{fork[0] == none -> fork[0] = p0}; atomic{fork[2] == none -> fork[2] = p0}; od }... skip; fork[2] = none; fork[0] = none; [ ] (fork[2]==p2 -> <> fork[1]==p2)

#define SIZE 4 byte msg[size]; chan s2r = [2] of {byte}; proctype Sender() { byte i; do :: i == SIZE -> break; :: else -> s2r! msg[i]; i++; od } proctype Receiver() { byte j; byte rmsg; do :: j == SIZE -> break; :: else -> s2r? rmsg; assert (rmsg == msg[j]); j++; od } proctype Lost() { byte drop; do :: s2r? drop; od }

abstract sig Target {} sig Addr extends Target {} abstract sig Name extends Target {} sig Alias, Group extends Name {} sig Book { names: set Name, addr: names -> some Target } { all a: Alias lone a.addr } 抽 象 によるソフトウェア 設 計 -Alloyではじめる 形 式 手 法 -より

abstract sig Target {} sig Addr extends Target {} abstract sig Name extends Target {} sig Alias, Group extends Name {} sig Book { names: set Name, addr: names -> some Target } { all a: Alias lone a.addr no n: Name n in n.^(addr) } 抽 象 によるソフトウェア 設 計 -Alloyではじめる 形 式 手 法 -より

abstract sig Target {} sig Addr extends Target {} abstract sig Name extends Target {} sig Alias, Group extends Name {} sig Book { names: set Name, addr: names -> some Target } { all a: Alias lone a.addr no n: Name n in n.^(addr) } pred add (b, b : Book, n: Name, t: Target) {b addr = b.addr + n -> t} pred del (b, b': Book, n: Name, a: Addr) {b'.addr = b.addr - n-> a} 抽 象 によるソフトウェア 設 計 -Alloyではじめる 形 式 手 法 -より

assert delundoesadd{ all b, b', b'': Book, n: Name, a: Addr add [b, b', n, a] and del [b', b'', n, a] implies b.addr = b''.addr } check delundoesadd for 3