All stakeholders participate in the analysis phase, while the other phases belong mostly to the developer.
The output of the analysis phase is CIM, the computation-independent or conceptual model of the system. Minimally, this model has two parts: the requirements model and the domain model. The requirements model describes what functions the system performs. More specifically, it describes typical "conversations" the system has through its interfaces with typical users, servers, and devices in its operating environment.
The domain model describes the important concepts, relationships, entities, and processes in the system's business environment.
Note: The conceptual model is often part of the system specification document.
UML (The Unified Modeling Language) is a standard set of 11 types of diagrams for describing the CIM and PIM. For example, the requirements model is summarized by a UML use-case diagram. The typical conversations can be described using UML sequence diagrams or UML state-chart diagrams. Domain concepts, relationships, and entities are described using UML class diagrams. Domain processes are described using UML activity diagrams.
Developers use CASE (Computer Aided Software Engineering) tools to build models in the analysis and design phases of software development. The following use-case diagram shows some of the typical use-cases (i.e., functions) performed by a CASE tool:
In the software engineering domain important concepts include models, systems, and stakeholders. Important entities include the CIM, PIM, PSM, and system releases. Important relationships include:
User U uses system S
Customer C commissions system S
Developer D builds system S
Developer D builds model M
Model M describes system S
We capture the domain concepts and relationships in the following UML class diagram:
The waterfall model is an example of an important process in the software development domain. The picture of the waterfall model given earlier is actually a UML activity diagram.
An alternative representation to the CIM might be an "analysis" diagram. This is a class diagram in which all classes have one of three stereotypes: Entity (from the domain model), control (use case) and boundary (actor).