1 / 21

(State) Model-Based Approaches II Software Specification Lecture 36

Learn about model-based software specification using Z, a mature and expressive notation that combines formal and informal descriptions and incorporates graphical highlighting.

georgel
Télécharger la présentation

(State) Model-Based Approaches II Software Specification Lecture 36

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. (State) Model-Based Approaches II Software SpecificationLecture 36 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

  2. Specification using “Z” • Z is a mature and expressive notation for model-based specification. It combines formal and informal descriptions and incorporates graphical highlighting. • The basic building blocks of Z-based specifications are schemas. • Schemas identify state variables and define constraints and operations in terms of those variables. Software Engineering, 5th Edition. Chapter 11

  3. Schemas • Schemas are comprised of three parts: name, signature, and predicate. • The signature declares (state) entities introduced in a schema and their type. • Signature declarations are given in the form identifier: type. • The predicate defines logical relationships between entities in the declaration. • Z is based on the predicate calculus + typed sets. Software Engineering, 5th Edition. Chapter 11

  4. Graphical Layout of a Schema Schema Name Signature Predicate Software Engineering, 5th Edition. Chapter 11

  5. Schemas (cont’d) • Schemas describe state entities or operations on state entities. • To describe state entities,declared variables comprise the entities while predicates specify their invariant properties. • To describe operations,declarations consist of initial and final state variables, inputs, and outputs, while predicates specify the relations among them. Software Engineering, 5th Edition. Chapter 11

  6. modeled as natural numbers Container contents: N capacity: N contents  capacity invariant property Example 1 Specification of a genericcontainer entity: Software Engineering, 5th Edition. Chapter 11

  7. Indicator light: {off, on} reading: N danger_level:N light = on  reading  danger_level Example 1 (cont’d) Specification of a generic indicator entity: Software Engineering, 5th Edition. Chapter 11

  8. Specification of a storage tank entity: Storage_tank Container Indicator reading = contents capacity = 500 danger_level = 50 Predicates on separate lines are separated by an implicit “AND”. Example 1 (cont’d) Software Engineering, 5th Edition. Chapter 11

  9. Storage_tank contents: N capacity: N light: {off, on} reading: N danger_level:N contents  capacity light = on  reading  danger_level reading = contents capacity = 500 danger_level = 50 Example 1 (cont’d) Expanded specification of a storage tank entity: Software Engineering, 5th Edition. Chapter 11

  10. “Delta” indicates that values of one or more variables will be changed. “?” indicates that amount is an INPUT. Fill-OK  Storage-tank amount?: N contents + amount?  capacity contents’ = contents + amount? “dash” indicates the value of contentsAFTER the operation Example 1 (cont’d) Specification of anominalstorage tankfill operation: Software Engineering, 5th Edition. Chapter 11

  11. “Xi” indicates that NO variables will be changed by the operation. “!” indicates that r is an OUTPUT. OverFill  Storage-tank amount?: N r!: seq CHAR capacity < contents + amount? r! = “Insufficient tank capacity – Fill cancelled” Example 1 (cont’d) Specification of an exceptional storage tank fill operation: Software Engineering, 5th Edition. Chapter 11

  12. Fill Fill-OK V OverFill Example 1 (cont’d) Complete specification of the storage tank fill operation: Software Engineering, 5th Edition. Chapter 11

  13. “Powerset Book”: the set of sets of books set of books held by library Library stock:  Book onLoan: Book  Borrower set of (book, borrower) pairs dom onLoan  stock books on loan are a subset of existing stock Example 2 Specification of a simpleLibrary system: Each book on loan is mapped to a borrower. Note use of typed sets. G Kontoya and I. Sommerville 1998

  14. Borrow  Library book?: Book reader?: Borrower book?  stock book?  dom onLoan onLoan’ = onLoan  {(book?, reader?)} stock’ = stock Example 2 (cont’d) Specification of theborrow operation: G Kontoya and I. Sommerville 1998

  15. New  Library book?: Book stock’ = stock  {book?} onLoan’ = onLoan Example 2 (cont’d) Operation for adding a new bookto current stock: G Kontoya and I. Sommerville 1998

  16. Return  Library book?: Book book?  dom onLoan dom onLoan’ = dom onLoan  book? stock’ = stock Example 2 (cont’d) Operation for returning a bookto the library: “Overriding” operator G Kontoya and I. Sommerville 1998

  17. Exercise 4 Modify the storage tank specification by adding a fill warning light which indicates when the tank is close to capacity. This should be switched on when the contents are some high percentage of the capacity. Software Engineering, 5th Edition. Chapter 11

  18. Key Points • Model-based specification relies on a state modelof the system using mathematical entities such as the predicate calculus and typed sets. • Functions / operations may be specified by defining their effect on system state. Software Engineering, 5th Edition. Chapter 11

  19. Key Points (cont’d) • It is normal to specify functions / operations incrementally and then combine the fragments to produce a complete specification. • Z specifications are comprised of a number of schemas that introduce typed names and define predicates over those names. They are distinguished from surrounding text by graphical highlighting. Software Engineering, 5th Edition. Chapter 11

  20. Key Points (cont’d) • Schemas are building blocks which may be combined and used in other schemas. The effect of including schema A in schema B is that schema B inherits the names and predicates of schema A. Software Engineering, 5th Edition. Chapter 11

  21. (State) Model-Based Approaches II Software SpecificationLecture 36 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

More Related