The proverb “owning a hammer doesn’t make one an architect” is especially true with respect to object technology. Knowing an object-oriented language (such as Java) is a necessary but insufficient first step to create object systems. Knowing how to “think in objects” is critical! A critical ability in OO development is to skillfully assign responsibilities to software objects. It is one activity that must be performed either while drawing a UML diagram or programming and it strongly influences the robustness, maintainability, and re-usability of software components.
Analysis emphasizes an investigation of the problem and requirements, rather than a solution. For example, if a new online trading system is desired, how will it be used? What are its functions?
“Analysis” is a broad term, best qualified, as in requirements analysis (an investigation of the requirements) or object-oriented analysis (an investigation of the domain objects).
“Design” emphasizes a conceptual solution (in software and hardware) that fulfills the requirements, rather than its implementation. For example, a description of a database schema and software objects. Design ideas often exclude low-level or “obvious” details obvious to the intended consumers. Ultimately, designs can be implemented, and the implementation (such as code) expresses the true and complete realized design. As with analysis, the term is best qualified, as in object-oriented design or database design.
Useful analysis and design have been summarized in the phrase “do the right thing (analysis)”, and “do the thing right (design)”.
During object-oriented analysis there is an emphasis on finding and describing the objects or concepts in the problem domain. For example, in the case of the flight information system, some of the concepts include Plane, Flight, and Pilot.
During object-oriented design (or simply, object design) there is an emphasis on defining software objects and how they collaborate to fulfill the requirements. For example, a Plane software object may have a tailNumber attribute and a getFlightHistory method. Finally, during implementation or object-oriented programming, design objects are implemented, such as a Plane class in Java.
This excerpt and other text can be referred from the collections of the books and other materials. DOWNLOAD E-BOOKS