The most important step of the design phase is designing the individual classes and methods. Object-oriented systems can be quite complex, so analysts need to create instructions and guidelines for programmers that clearly describe what the system must do. This chapter presents a set of criteria, activities, and techniques used to design classes and methods. Together they are used to ensure the object-oriented design communicates how the system needs to be coded.


  • Become familiar with coupling, cohesion, and connascence
  • Be able to specify, restructure, and optimize object designs
  • Be able to identify the reuse of predefined classes, libraries, frameworks, and components
  • Be able to specify constraints and contracts
  • Be able to create a method specification


  1. Introduction
  2. Review of the Basic Characteristics of Object Orientation
    1. Classes, Objects, Methods, and Messages
    2. Encapsulation and Information Hiding
    3. Polymorphism and Dynamic Binding
    4. Inheritance
  3. Design Criteria
    1. Coupling
    2. Cohesion
    3. Connascence
  4. Object Design Activities
    1. Adding Specifications
    2. Identifying Opportunities for Reuse
    3. Restructuring the Design
    4. Optimizing the Design
    5. Mapping Problem-Domain Classes to Implementation Languages
  5. Constraints and Contracts
    1. Elements of a Contract
    2. Types of Constraints
  6. Method Specification
    1. General Information
    2. Events
    3. Message Passing
    4. Algorithm Specification
    5. Example
  7. Applying the Concepts at CD Selections
  8. Summary



Get Systems Analysis and Design with UML, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.