Presentation is loading. Please wait.

Presentation is loading. Please wait.

Duminda WijesekeraSWE 623: Fall 20021 Schemas in Z Chapter 6 in Potter Sinclair and Till.

Similar presentations


Presentation on theme: "Duminda WijesekeraSWE 623: Fall 20021 Schemas in Z Chapter 6 in Potter Sinclair and Till."— Presentation transcript:

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


Download ppt "Duminda WijesekeraSWE 623: Fall 20021 Schemas in Z Chapter 6 in Potter Sinclair and Till."

Similar presentations


Ads by Google