Download presentation
Presentation is loading. Please wait.
Published byAnnabel Karen Griffith Modified over 9 years ago
1
Duminda WijesekeraSWE 623: Fall 20021 Schemas in Z Chapter 6 in Potter Sinclair and Till
2
Duminda WijesekeraSWE 623: Fall 20022 Schemas Z’s main representational mechanism of structure and functions. Example: initialStock: Stock # initialStock < maxlines i :ITEM; n : N | (i,n) initalStock /\ n<100 stockItem : P ITEM stockItems = dom initialStock
3
Duminda WijesekeraSWE 623: Fall 20023 Schemas Describing Abstract States Account Opened Account Overdrawn Authorized Withdrawal Account closed Account in Good Standing Overdraft Paid Off Regular Withdrawal Deposit
4
Duminda WijesekeraSWE 623: Fall 20024 Schemas Describing Abstract States Example 1: BankAccount 1 total, minBalance: R `total > minBalance Example 2: BankAccount 2 total, minBalance: R `inGoodStanding: BOOLEAN inGoodStanding (total > minBalance)
5
Duminda WijesekeraSWE 623: Fall 20025 Schemas Describing Operations BankAccount with Operations total, minBalance: R withdraw : R BOOL overDraft: R x BOOL R total > minBalance x?:R;out!:Bool. [total – x? out! = withdraw(x?)/\out! = TRUE /\ total’ = total-x] \/[total – x? > minBalance => out! =FALSE /\ out! = withdraw(x?)/\ total’ = total ]
6
Duminda WijesekeraSWE 623: Fall 20026 Schema Calculus: Operations on Schemas Schemas can be built from other schemas. Schema calculus has some operations on schemas to build new schemas from the old. Operations: –Inclusion –Decoration –Disjunction –Conjunction –Negation –composition
7
Duminda WijesekeraSWE 623: Fall 20027 Inclusion - 1 BankAccount with Operations Bank Account 1 Bank Overdraft Where Bank Overdraft can be defined separately
8
Duminda WijesekeraSWE 623: Fall 20028 Inclusion - 2 Bank Regular Withdraw total, minBalance: R withdraw : R BOOL overDraft: R x BOOL R total > minBalance x?:R;out!:Bool. [total – x? out! = withdraw(x)/\out! = TRUE /\ minBalance’ = minBalance-x?] \/[total – x? > minBalance => out! =FALSE /\ out! = withdraw(x?)/\ total’ = total ]
9
Duminda WijesekeraSWE 623: Fall 20029 Decoration Adding ?, ! And ‘ to variables is referred to as decoration. Can use ‘ for schemas themselves. Example: Double Min Balance Bank Account, Bank Account’ doubleMinBalance: R R monBalance’ = 2*minBalance
10
Duminda WijesekeraSWE 623: Fall 200210 Full Expansion of a Decorated Schema Replace primed entities by their definitions Double Min Balance total, total’, minBalance, minBalance’ :R doubleMinBalance : RR total > minBalance /\ total’ > minBalance’
11
Duminda WijesekeraSWE 623: Fall 200211 Schema Disjunction Want to specify define two cases separately and state that they are two cases of the same “thing”. Example: –Bank WithdrawCash = Bank RegularWithdraw \/ Bank Overdraft –Bank Regular Withdraw defined earlier
12
Duminda WijesekeraSWE 623: Fall 200212 Schema Disjunction - 2 Bank Overdraft Bank Account 1, Bank Account 1’ overdraft : R x BOOLBOOL x?: R, approve?: BOOL x?:R;out!:Bool. [approve? => (out! /\ total’=total-x?) total’ = total-x?] \/[not approve? => (not out! /\ total’=total)]
13
Duminda WijesekeraSWE 623: Fall 200213 Schema Conjunction When one schema can be written specified as “two specifications” Results in taking the conjunction of both constraints Example: Bank Overdraft = sendMessage/\adjustBalance
14
Duminda WijesekeraSWE 623: Fall 200214 Schema Conjunction - 2 send Message Bank Account 1, Bank Account 1’ overdraft : R x BOOLBOOL x?: R, approve?: BOOL x?:R;out!:Bool. [approve? => out! /\total’=total- x?)] \/[ approve? => ( out! /\ total’=total)]
15
Duminda WijesekeraSWE 623: Fall 200215 Schema Conjunction - 3 Adjust Total Bank Account 1, Bank Account 1’ overdraft : R x BOOLBOOL x?: R, approve?: BOOL x?:R;out!:Bool. [approve? => out! /\ total’ t=total-x?] \/[ approve? => ( out! /\ total’=total)]
16
Duminda WijesekeraSWE 623: Fall 200216 Schema Negation Example 1: BankAccount 1 total, minBalance: R `total > minBalance Bad bank Account = = Bank Account 1 Bad BankAccount total, minBalance: R (total > minBalance)
17
Duminda WijesekeraSWE 623: Fall 200217 Schema Hiding Operations Used to hide some variables and declarations of already known schemas. Use to hide variables. Format –[Decs | Pred] \ Hidden variables –[Reduced Decs | Hidden Decs. Predicate]
18
Duminda WijesekeraSWE 623: Fall 200218 Schemas Hiding Example -1 BankAccount with Operations total, minBalance: R withdraw : R BOOL overDraft: R x BOOL R total > minBalance x?:R; app?out!:Bool. [total – x? out! = overDraft x?, app? /\out! /\ total’ = total-x] \/[total – x? out! =FALSE /\ out! = overDraft(x?,app?)/\ total’=total]
19
Duminda WijesekeraSWE 623: Fall 200219 Schemas Hiding Example -2 BankAccount with Operations total, minBalance: R withdraw : R BOOL overDraft: R x BOOL R total > minBalance x?:R; app?out!:Bool. [total – x? out! = overDraft x?, app? /\out! /\ total’ = total-x] \/[total – x? out! =FALSE /\ out! = overDraft(x?,app?)/\ total’=total]
20
Duminda WijesekeraSWE 623: Fall 200220 Schema Composition Recall that function composition: –If f : S 1 -> S 2 and g: S 2 -> S 3 then –fog : S 1 -> S 3 Schema Composition imports this idea to schemas. Example: Consider overdrawn bank account –To close account: Must pay up to minimum balance Then close account from account in good standing
21
Duminda WijesekeraSWE 623: Fall 200221 Schema Composition Method 1.Replace primed variables (‘)in first schema with double primed variables (“) S[“/’] 2.Replace un-primed variables in second schema with double primed variables (“) T[‘/] 3.Existentially quantify variables in double primed state (“) State”. S[“/’]/\T[“/]
22
Duminda WijesekeraSWE 623: Fall 200222 Schema Composition Example -1 toGoodStanding Bank Account 1 toGoodStanding: R -> NULL total < minBalance x?:R ( x+total > minBalance) => total’ = total + x?
23
Duminda WijesekeraSWE 623: Fall 200223 Schema Composition Example -2 closeInGoodStanding Bank Account 1 close: BOOL -> R total > minBalance x?:BOOL, return!:R ( total>minBalance) => return!=total /\ total’=0 closeFromDefault = toGoodStanding o closeFromGoodStanding
24
Duminda WijesekeraSWE 623: Fall 200224 Schema Composition Example -3 closeFromDefault Bank Account 1 close: BOOL -> R Bank Account” x?: R toGoodStanding x /\ close true return’
25
Duminda WijesekeraSWE 623: Fall 200225 Schema Preconditions Applicable only to schemas representing operations Pre Op = = State’; Out!. Op Means that the schema should be applied to those state that result in the given predicate satisfies in the post state. Here: Op is the operation
26
Duminda WijesekeraSWE 623: Fall 200226 Schema Precondition Example Simple x,y: N x < y NonEndPoint Simple; Z!:N x < x’ < z! < y’ < y
27
Duminda WijesekeraSWE 623: Fall 200227 Constructing pre NonEndPoint preNonEndPoint Simple x’,y’,z!: N x < x’ < z < y’ < y Can simplify the statement x’,y’,z!: N x < x’ < z < y’ < y to x+3 < y
28
Duminda WijesekeraSWE 623: Fall 200228 Schema Types A way to record data types by specifying filed and their types of a structure. Example Book title, author, isbn, publisher : String Pubdate, pages: Z slength title < 80, slength author < 80, (checksum isbn) mode 11 = 0 O < pages /\ 1800 < pubdate < 2050
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.