1 / 23

Operation Contracts: Getting ready to open the “System” black box

Operation Contracts: Getting ready to open the “System” black box. All material from Applying UML and Patterns, 3 rd Edition, Craig Larman, chapter 11. Operation Contract.

jmanuel
Download Presentation

Operation Contracts: Getting ready to open the “System” black box

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. Operation Contracts: Getting ready to open the “System” black box All material from Applying UML and Patterns, 3rd Edition, Craig Larman, chapter 11.

  2. Operation Contract • Considered part of the Use Case Model because they provide more analysis detail on the effect of the system operations implied in the use cases

  3. Operation Contracts • Define the effect of the system operations on the domain model objects

  4. System Operations • Operations that the system as a black box offers in its public interface

  5. Public System Interface • The entire set of system operations across all use cases defines the public system interface, viewing the system as a single component or class.

  6. System Operations • Prime inputs to the contracts are the system operations identified in SSDs and the domain model • Contracts in turn serve as input to the object design as they describe changes that are likely required in the software objects or database.

  7. Fig. 11.1

  8. System Operations • Can be identified in SSDs

  9. Operation Contracts Text, Figure 11.2

  10. Sections of an Operation Contract • Operation: Name of the operation and parameters • Cross References: Use cases and scenarios this operation can occur within • Preconditions: Noteworthy assumptions about the state of the system or objects in the Domain Model before execution of the operation. • Postconditions: This is the most important section. The state of objects in the Domain Model after completion of the operation

  11. Postconditions: most important • Describe changes in the state of objects in the domain model after completion of the operation • what instances were created ? • what associations were formed/broken? • what attributes changed? • Are not actions to be performed during the operation

  12. Examples of Operation Contracts from Process Sale Use Case (Fig.11.9)

  13. Operation Contract for makeNewSale operation • Operation: makeNewSale() • Cross References: • Use Case: Process Sale • Scenario: Process Sale • Preconditions: none • Postconditions • a sale instance “s” was created (instance creation) • s was associated with the Register (association formed) • attributes of s were initialized

  14. What this looks like: s:Sale was created association was created attributes of s:Sale were initialized

  15. Example—Operation Contract for enterItem operation • Operation: enterItem(itemID,quantity) • Cross References: • Use Case: Process Sale • Scenario: Process Sale • Preconditions: There is a sale underway.

  16. Example—Operation Contract for enterItem operation • Postconditions: • A salesLineItem instance sli was created (instance creation) • sli was associated with the current Sale (association formed) • sli.quantity became quantity (attribute modification) • sli was associated with a ProductDescription, based on itemId match (association formed)

  17. What this looks like: associations were created sli:SalesLineItem was created sli.quantity was initialized to input quantity

  18. Example—Operation Contract for endSale operation • Operation: endSale() • Cross References: • Use Case: Process Sale • Scenario: Process Sale • Preconditions: There is a sale underway • Postconditions • s.isComplete became true (attribute modification)

  19. What this looks like: s.isComplete became true

  20. Example—Operation Contract for makePayment operation • Operation: makePayment(amount:Money) • Cross References: • Use Case: Process Sale • Scenario: Process Sale • Preconditions: There is a sale underway

  21. Example—Operation Contract for makePayment operation • Postconditions • a payment instance “p” was created (instance creation) • p.amountTendered became amount (attribute modification) • p was associated with s:Sale (association former) • s:Sale was associated with the Store (association formed)

  22. What this looks like: associations were created p:Payment was created p.amountTendered was initialized to input amount

  23. Why Operation Contracts? • An excellent tool of OO requirements analysis that describes in great detail the changes required by a system operation (in terms of the domain model objects) without having to describe how they are to be achieved • Excellent preparation for opening the System black box!

More Related