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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.