Summary of Object-Oriented Design
Express the system as a collection of interacting agents (“objects”)
Identify data and functionality for each kind of object
Identify communication links among types of objects
Specify the interfaces for each type of object
Implement object behavior in classes and methods