Design patterns and contracts
Author(s)
Bibliographic Information
Design patterns and contracts
Addison-Wesley, c2000
- : alk. paper
Available at 4 libraries
  Aomori
  Iwate
  Miyagi
  Akita
  Yamagata
  Fukushima
  Ibaraki
  Tochigi
  Gunma
  Saitama
  Chiba
  Tokyo
  Kanagawa
  Niigata
  Toyama
  Ishikawa
  Fukui
  Yamanashi
  Nagano
  Gifu
  Shizuoka
  Aichi
  Mie
  Shiga
  Kyoto
  Osaka
  Hyogo
  Nara
  Wakayama
  Tottori
  Shimane
  Okayama
  Hiroshima
  Yamaguchi
  Tokushima
  Kagawa
  Ehime
  Kochi
  Fukuoka
  Saga
  Nagasaki
  Kumamoto
  Oita
  Miyazaki
  Kagoshima
  Okinawa
  Korea
  China
  Thailand
  United Kingdom
  Germany
  Switzerland
  France
  Belgium
  Netherlands
  Sweden
  Norway
  United States of America
Note
Includes bibliographical references
Description and Table of Contents
Description
Design Patterns and Contracts is a thought-provoking guide to building design patterns to solve software engineering problems. Design patterns have gained widespread acceptance today because they capture the best practices of software design. Patterns offer optimized solutions to common design problems, reduce complexity by naming and defining abstractions, and provide a base for building reusable software. With Design Patterns and Contracts, object-oriented software practitioners have a new resource to help them further exploit the power of design patterns. This book introduces the fundamentals of software contracts and illustrates how Design by Contract contributes to the optimal use of design patterns in a quality-oriented software engineering process. The Design by Contract approach to software construction provides a methodological guideline for building systems that are robust, modular, and simple. Readers will find value in the bookis overview of the Object Constraint Language, a precise modeling language that allows Design by Contract to be used with the industry standard Unified Modeling Language (UML).
Although written in Eiffel, this book makes an excellent companion for developers who are using languages such as Java and UML. Throughout the book the authors discuss specific implementation issues and provide complete, ready-to-be-compiled examples of the use of each pattern. They introduce design patterns and Design by Contract in the context of software engineering, and show how these tools are used to guide and document system design. 0201309599B04062001
Table of Contents
- Preface. I. DESIGN PATTERNS IN A SOFTWARE ENGINEERING CONTEXT. 1. A Software Engineering Perspective. Introduction to Design Patterns. Key Points. Understanding the Notion of Design Patterns. An Example: The Observer Pattern. Describing Design Patterns. Notions Related to Patterns. Design Patterns and Frameworks. Design Patterns in the Software Life Cycle. A Software Engineering Process. Modeling Problems and Solutions with UML. From Problems to Solutions with Patterns. Toward Formalizing a Pattern-Based Software Process. The Common Phases. Two Levels of Decision. Synthesis and Transformations. 2. Object-Oriented Design with Contracts. Supporting Design Patterns with Contracts. Choice of a Language. Covariant Typing. Controlled Multiple Inheritance. Supporting OO Design. Encapsulation and Information Hiding. Modularity and Coupling. Idioms for Implementing Design Patterns. Accessing the Original Version of a Redefined Feature. Implementing Inheritance and Delegation. Class Variables. Finalization. Low Complexity of Routines. Command-Query Distinction. Dealing with Optional Behaviors. Documenting the Use of Design Patterns. Importance of Documentation. Modeling Pattern Roles with Inheritance. Documenting the Use of Patterns with the Indexing Clause. Conclusion. II. GoF DESIGN PATTERNS WITH CONTRACTS. 3. Creational Patterns. The Maze Example. Creating Objects in Eiffel. Using Creational Design Patterns. Abstract Factory (GoF 87). Builder (GoF 97). Factory Method (GoF 107). Prototype (GoF 117). Singleton (GoF 127). 4. Structural Patterns. Adapter (GoF 139). Bridge (GoF 151). Composite (GoF 163). Decorator (GoF 175). Facade (GoF 185). Flyweight (GoF 195). Proxy. 5. Behavioral Patterns. Chain of Responsibility (GoF 223). Command (GoF 233). Interpreter (GoF 243). Iterator (GoF 257). Mediator (GoF 273). Memento (GoF 283). Observer (GoF 293). State (GoF 305). Strategy (GoF 315). Template Method (GoF 325). Visitor (GoF 331). III. BUILDING ON DESIGN PATTERNS. 6. Application to Software Configuration Management. Introduction. Software Configuration Management. Variants in Software Systems. Traditional Solutions. Using SCM Tools. Case Study: The Mercure Software System. Object-Oriented Modeling of Variants. Applying Creational Design Patterns. Compilation Technology. Principle of Type Inference and Code Specialization. The SmallEiffel Compiler. Living and Dead Code in SmallEiffel. Specialized Code Generation in SmallEiffel. Performance Results. Experimental Conditions. Compilation. Memory Footprint and Runtime Performance. Discussion. Bibliographic Notes. Conclusion. 7. Combining Patterns for Building User Interfaces. Problems and Strategies. Building a Model. The Interface Builder Approach. Modal or Nonmodal Interaction: Responsibility versus Forbidding. A Consistent Interface from Uniform Mechanisms. Models and Designs. Two Worlds and a Bridge: From Application to Interface. The Observer: Always the Same
- Always Different. Graphics Creation and Binding. Keeping Track of Model Path Changes. Triggering Actions: Passing Information Around. Combining and Grouping. Introducing Control: How to Stay Generic. Generating or Reusing: The Limits of Genericity. Analysis and Remarks. Exposing Properties for Further Uses. Reifying Collaborations. Designing Components
- Using Connection Protocols. Performance Issues. Leaving Room for Evolution. A. Glossary. B. Design Pattern and Design by Contract Pointers. Sources of Information. Frequently Asked Questions (FAQ) (with Answers). Mailing Lists. World Wide Web. USENET. Software Resources. SmallEiffel. Interactive Software Engineering Inc. Halstenbach ACT GmbH. Object Tools Inc. C Design by Contract in Other Languages. Design by Contract in Java. The iContract Tool. A Simple Example. Design by Contract in UML. Introduction to the OCL. A Simple Example. D. More Information about This Book. Bibliography. Index. 0201309599T04062001
by "Nielsen BookData"