Chapter 12. Object-Oriented Design

CHAPTER GOALS

  • 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.

Note

The software life cycle encompasses all activities from initial analysis until obsolescence.

A software project usually starts because a customer has ...

Get Big Java, 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.