|
|
|
|
|
|
|
A class hierarchy must be designed, and fundamental relationships among the interacting parts must be established. The preliminary design is not meant to be final, and functionality will migrate among objects as the design solidifies. |
|
|
|
|
|
|
|
|
It is a principal goal of object-oriented analysis to hide as much of the data and implementation as possible and to build discrete objects that have a narrow and well-defined interface. The clients of your object should not need to understand the implementation details of how they fulfill their responsibilities. |
|
|
|
|
|
|
|
|
Q In what way is object-oriented analysis and design fundamentally different from other approaches? |
|
|
|
|
|
|
|
|
A Prior to the development of these object-oriented techniques, analysts and programmers tended to think of programs as functions that acted on data. Object-oriented programming focuses on the integrated data and functionality as discrete units that have both knowledge (data) and capabilities (functions). Procedural programs, on the other hand, focus on functions and how they act on data. It has been said that Pascal and C programs are collections of procedures, and C++ programs are collections of classes. |
|
|
|
|
|
|
|
|
Q Is object-oriented programming finally the silver bullet that will solve all programming problems? |
|
|
|
|
|
|
|
|
A No, it was never intended to be. For large, complex problems, however, object-oriented analysis, design, and programming can provide the programmer with tools to manage enormous complexity in ways that were previously impossible. |
|
|
|
|
|