Goal: Analyze and implement system functionality defined by requirements set.
In this scenario a development team is given the task of developing an implementation for a set of requirements. The requirements are captured as a discrete set of textual documents, and line items. Each requirement represents one measurable aspect of the desired system.
Requirements are tagged by type (functional, performance, security, …) and possibly with other properties.
The implementation team is a group of specialists. A specialist may focus on the user experience, server side programming, web client programming, the overall architecture, etc. Each of these specialities may create and develop a set of intermediate design and specification resources like models or schema documents. Each resource has a set of semantics, language rules, and other constraints which govern their integrity.
Design and specification resources encapsulate decisions about how the runtime implementation should be constructed. These decisions are justified by one or more requirements. These resources are used in the construction phase either by reference on the part of the developer or through automation (generation of downstream artifacts).
The implementation team may reference externally developed standards and designs.
The team uses pre-defined assets, that can be used with or without modification.
The team may leverage known patterns (design, architecural, idioms, etc.)
Design and specification resources may be related to each other in various ways. For example a UML model may capture the design of a system component that implements a service specification. Another model may capture the logical structure of the data model of a XML schema. A implementation of a pattern may be present in a reusable asset. A design component may be referenced in a deployment topology.
The implementation team shares these designs and specifications with the rest of the team, and when appropriate with external stakeholders. These resources are used by the team to collaborate on decisions about the structure and behavior of the system under development. They can be used to mointor project health, and measure progress.
Design and specification resource may be used by automated tools to produce other intermediate resources, or runtime resources.