1 / 28

Schemas in Z

Schemas in Z. Chapter 6 in Potter Sinclair and Till. Schemas. Z’s main representational mechanism of structure and functions. Example: initialStock: Stock # initialStock < maxlines  i :ITEM; n : N | (i,n) e initalStock / n < 100 stockItem : P ITEM

alida
Télécharger la présentation

Schemas in Z

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. Schemas in Z Chapter 6 in Potter Sinclair and Till SWE 623: Fall 2002

  2. Schemas • Z’s main representational mechanism of structure and functions. • Example: initialStock: Stock # initialStock < maxlines  i :ITEM; n : N | (i,n)einitalStock /\ n<100 stockItem : P ITEM stockItems = dom initialStock SWE 623: Fall 2002

  3. Schemas Describing Abstract States Account Opened Regular Withdrawal AuthorizedWithdrawal Account in Good Standing AccountOverdrawn Overdraft Paid Off Deposit Account closed SWE 623: Fall 2002

  4. 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) SWE 623: Fall 2002

  5. 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? < minBalance => out! = withdraw(x?)/\out! = TRUE /\ total’ = total-x] \/[total – x? > minBalance => out! =FALSE /\ out! = withdraw(x?)/\ total’ = total ] SWE 623: Fall 2002

  6. 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 SWE 623: Fall 2002

  7. Inclusion - 1 BankAccount with Operations Bank Account 1 Bank Overdraft Where Bank Overdraft can be defined separately SWE 623: Fall 2002

  8. Inclusion - 2 Bank Regular Withdraw total, minBalance: R withdraw : R BOOL overDraft: R x BOOL R total > minBalance x?:R;out!:Bool. [total – x? < minBalance => out! = withdraw(x)/\out! = TRUE /\ minBalance’ = minBalance-x?] \/[total – x? > minBalance => out! =FALSE /\ out! = withdraw(x?)/\ total’ = total ] SWE 623: Fall 2002

  9. 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 SWE 623: Fall 2002

  10. Full Expansion of a Decorated Schema • Replace primed entities by their definitions Double Min Balance total, total’, minBalance, minBalance’ :R doubleMinBalance : R R total > minBalance /\ total’ > minBalance’ SWE 623: Fall 2002

  11. 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 SWE 623: Fall 2002

  12. Schema Disjunction - 2 Bank Overdraft Bank Account 1, Bank Account 1’ overdraft : R x BOOL BOOL x?: R, approve?: BOOL x?:R;out!:Bool. [approve? => (out! /\ total’=total-x?) total’ = total-x?] \/[not approve? => (not out! /\ total’=total)] SWE 623: Fall 2002

  13. 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 SWE 623: Fall 2002

  14. Schema Conjunction - 2 send Message Bank Account 1, Bank Account 1’ overdraft : R x BOOL BOOL x?: R, approve?: BOOL x?:R;out!:Bool. [approve? => out! /\total’=total-x?)] \/[ approve? => ( out! /\ total’=total)] SWE 623: Fall 2002

  15. Schema Conjunction - 3 Adjust Total Bank Account 1, Bank Account 1’ overdraft : R x BOOL BOOL x?: R, approve?: BOOL x?:R;out!:Bool. [approve? => out! /\ total’ t=total-x?] \/[ approve? => ( out! /\ total’=total)] SWE 623: Fall 2002

  16. Schema Negation Example 1: BankAccount 1 total, minBalance: R ` total > minBalance Bad bank Account = =  Bank Account 1 Bad BankAccount total, minBalance: R (total > minBalance) SWE 623: Fall 2002

  17. 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] SWE 623: Fall 2002

  18. 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? < minBalance=>out! = overDraft x?, app? /\out! /\ total’ = total-x] \/[total – x? < minBalance => out! =FALSE /\ out! = overDraft(x?,app?)/\ total’=total] SWE 623: Fall 2002

  19. 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? < minBalance=>out! = overDraft x?, app? /\out! /\ total’ = total-x] \/[total – x? < minBalance => out! =FALSE /\ out! = overDraft(x?,app?)/\ total’=total] SWE 623: Fall 2002

  20. Schema Composition • Recall that function composition: • If f : S1 -> S2 and g: S2 -> S3 then • fog : S1 -> S3 • 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 SWE 623: Fall 2002

  21. Schema Composition Method • Replace primed variables (‘)in first schema with double primed variables (“) S[“/’] • Replace un-primed variables in second schema with double primed variables (“) T[‘/] • Existentially quantify variables in double primed state (“)  State” . S[“/’]/\T[“/] SWE 623: Fall 2002

  22. Schema Composition Example -1 toGoodStanding D Bank Account 1 toGoodStanding: R -> NULL total < minBalance  x?:R ( x+total > minBalance) => total’ = total + x? SWE 623: Fall 2002

  23. Schema Composition Example -2 closeInGoodStanding D Bank Account 1 close: BOOL -> R total > minBalance  x?:BOOL, return!:R ( total>minBalance) => return!=total /\ total’=0 closeFromDefault = toGoodStanding o closeFromGoodStanding SWE 623: Fall 2002

  24. Schema Composition Example -3 closeFromDefault D Bank Account 1 close: BOOL -> R  Bank Account”  x?: R toGoodStanding x /\ close true return’ SWE 623: Fall 2002

  25. 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 SWE 623: Fall 2002

  26. Schema Precondition Example Simple x,y: N x < y NonEndPoint D Simple; Z!:N x < x’ < z! < y’ < y SWE 623: Fall 2002

  27. 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 SWE 623: Fall 2002

  28. 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 SWE 623: Fall 2002

More Related