Chapter 12. Object-Oriented Design
To learn about the software life cycle
To learn how to discover new classes and methods
To understand the use of CRC cards for class discovery
To be able to identify inheritance, aggregation, and dependency relationships between classes
To master the use of UML class diagrams to describe class relationships
To learn how to use object-oriented design to build complex programs
To implement a software system successfully, be it as simple as your next homework project or as complex as the next air traffic monitoring system, some amount of planning, design, and testing is required. In fact, for larger projects, the amount of time spent on planning is much higher than the amount of time spent on programming and testing.
If you find that most of your homework time is spent in front of the computer, keying in code and fixing bugs, you are probably spending more time on your homework than you should. You could cut down your total time by spending more on the planning and design phase. This chapter tells you how to approach these tasks in a systematic manner, using the object-oriented design methodology.
The Software Life Cycle
In this section we will discuss the software life cycle: the activities that take place between the time a software program is first conceived and the time it is finally retired.
The software life cycle encompasses all activities from initial analysis until obsolescence.
A software project usually starts because a customer has ...