Recall
Some key points in this chapter:
- Analyzing problem requirements in an object-oriented context
 - How to draw Unified Modeling Language (UML) diagrams to communicate how the system works
 - Discussing object-oriented systems using the correct terminology and jargon
 - Understanding the distinction between class, object, attribute, and behavior
 - Some OO design techniques are used more than others. In our case study example, we focused on a few:
- Encapsulating features into classes
 - Inheritance to extend a class with new features
 - Composition to build a class from component objects