Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
When doing analysis you are trying to understand the problem. To my mind this is not just listing requirements in use cases. … Analysis also involves looking behind the surface requirements to come up with a mental model of what is going on in the problem. … Some kind of conceptual model is a necessary part of software development, and even the most uncontrolled hacker does it.
–-Martin Fowler1
Object-oriented design is, in its simplest form, based on a seemingly elementary idea. Computing systems perform certain actions on certain objects; to obtain flexible and reusable systems, it is better to base the structure of software on the objects than on the actions.