Analysis is a user domain activity, based on requirements described in use cases.
The analysis step is critical to the development of a software system because it identifies the cumulative demand on objects and facilitates reuse of objects and responsibilities at the domain level. We base decisions about the level and scope of analysis on the shared model, a mental model in the mind of the various users of the system. The shared model corresponds to users understanding of what the software system must do. The objects and collaborations of the analysis object model are discovered using CRC cards and transcribed using UML sequence diagrams. This tutorial focuses on the role of analysis in object-oriented software engineering.