Time is a great teacher, but unfortunately it kills all its pupils
owning a hammer doesn't make one an architect
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
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 (see Figure 1.2).
The purpose of modeling (sketching UML, …) is primarily to understand, not to document.
The central idea to appreciate and practice in the UP is short timeboxed iterative, evolutionary, and adaptive development.