Design by Contract, by Example
Home > Computing and Information Technology > Computer programming / software engineering > Object-oriented programming (OOP) > Design by Contract, by Example
Design by Contract, by Example

Design by Contract, by Example

|
     0     
5
4
3
2
1




Out of Stock


Notify me when this book is in stock
About the Book

Design by Contract is a systematic approach to specifying and implementing object-oriented software elements based on precisely defined obligations between them. This is the first practical, example-centered guide to using Design by Contract. The authors introduce powerful design principles for writing good contracts and supporting guidelines -- and demonstrate those principles with real-world Java and Eiffel code examples. They review the fundamentals of Design by Contract -- preconditions, postconditions and invariants -- and presenting a real-world example. Next, drawing on their unparalleled experience with Design by Contract, they present six powerful design principles -- each with a clear statement of goals, rationale, examples in both Java and Eiffel, and supporting notes. Developers will learn how to strengthen their components' internal support for contracts; how to use contracts to specify subclasses whose objects can safely be substituted for superclass objects; how to extend contract to specify and check properties that remain unchanged; and how to use contracts in analysis-level models. The book concludes by summarizing key principles and presenting a realistic cost/benefit analysis of their use.

Table of Contents:
Foreword. Preface. 1. A First Taste of Design by Contract. About This Chapter. The Customer Manager Example. Some Questions. A Contract for CUSTOMER_MANAGER. The Story So Far. Runtime Checking. Trustworthy Documentation. Summary. An Aide Memoire. Things to Do. 2. Elementary Principles of Design by Contract. About This Chapter. Stacks. Separate Commands and Queries. Naming Conventions. Separate Basic Queries and Derived Queries. Specify How Commands Affect Basic Queries. Capture Unchanging Properties in Invariants. The Class and Its Contract. The Basic Queries Are a Conceptual Model of Stacks. The Six Principles. Things to Do. 3. Applying the Six Principles. About This Chapter. Dictionaries. Separating and Categorizing Features. Postconditions. Preconditions. Invariant. A Complete, Contract-Level View of DICTIONARY. Summary. Things to Do. 4. Building Support for Contracts—Immutable Lists. About This Chapter. Support for Linear Structures. Contracts Involve Expressions. Immutable Lists. A Contract for Immutable Lists. The Basic Queries. The Creation Command. The Derived Query Count. The Derived Query Preceded_by. The Derived Query Item. The Derived Query is_equal. The Derived Query Sublist. Summary. Things to Do. 5. Applying the Six Principles to QUEUE. About This Chapter. Queues. A Contract for the Remove Feature. Making Count a Derived Feature. A Contract for the Initialize Feature. A Contract for the Head Feature. A Contract for the put Feature. More Derived Queries. Summary. Things to Do. 6. Design by Contract and Inheritance. About This Chapter. Superclasses and Subclasses. Redefining Contracts. Eiffel Syntax. Summary. Invariants and Inheritance. Designing Superclasses with Guarded Postconditions. Two Kinds of Inheritance. Summary. Things to Do. 7. Frame Rules. About This Chapter. Change Specifications and Frame Rules. Frame Rules for put Using Immutable Lists. Frame Rules for put Using “Forall”. Kinds of Frame Rules. Things to Do. Appendix: More About the Preprocessor. 8. Benefits of Design by Contract. About This Chapter. Kinds of Benefits. Better Designs. Improved Reliability. Better Documentation. Easier Debugging. Support for Reuse. Design by Contract and Defensive Programming. Defending a Program Against Unwanted Input. Bulletproofing a Routine. Defensive Programming. Some Costs and Limitations of Contracts. 9. Contracts for an Observer Framework. About This Chapter. The Observer Framework. Immutable Sets. Attaching and Detaching Observers. Notification (For One Observer). Notification (For All Observers). A Performance Issue. Frame Rules. Privacy. Things to Do. 10. Fulfilling a Precondition. About This Chapter. The Examples. Fulfilling and Testing a Precondition. Testing Versus Checking. A Simple Counter Class. The User's View of the Program. The Internal Structure of the Program. The Program's Behavior. A Minor Detail. Summary. Things to Do. 11. Java Examples. About This Chapter. Why Java? Queues. The Basic Query size(). The Basic Query get(). The Derived Query head(). The Derived Query isEmpty(). The Derived Query shallowCopy(). The Constructor Queue. The Command put. The Command remove. Summary. Dictionaries. Names. The Invariant. The Basic Queries. A Derived Query. The Commands. The Constructor. A Possible Set of Classes. Java Without iContract. Precondition Testing. Things to Do. 12. Analysis by Contract. About This Chapter. A Use Case. Contracts in Analysis Models. A Contract for the withdrawCash Use Case. From Analysis to Design. Problem Domain and System Models. The Object Constraint Language. Summary. Bibliography. Index. 0201634600T10102001


Best Sellers


Product Details
  • ISBN-13: 9780201634600
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Height: 236 mm
  • No of Pages: 256
  • Weight: 530 gr
  • ISBN-10: 0201634600
  • Publisher Date: 29 Oct 2001
  • Binding: Paperback
  • Language: English
  • Spine Width: 16 mm
  • Width: 188 mm


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Design by Contract, by Example
Pearson Education (US) -
Design by Contract, by Example
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Design by Contract, by Example

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals

    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!