Initiation: Started.
During this phase, approximately 80% of the
requirements are typically specified (e.g., all use cases and
significant quality requirements are specified, but only some
of the use case paths and specified and they may not contain
all required information). During this phase, the emphasis is
on the high risk and architecturally significant
requirements.
The requirements specification is the foundation on which
the architecture, design, and implementation are built. At
best, a poor requirements specification is a shaky foundation
on which to build an application. An incorrect requirements
specification is like a foundation built in the wrong place,
and we can all imagine how difficult and expensive it will be
to move a large shoddy structure that was built in the wrong
location. Thus, the requirements specification is one of the
most critical documents of an endeavor.
As described above, the contents of this document are
very complete and intended for use for large, complex,
business-critical or safety-critical applications.
Inappropriate contents (e.g., the quality requirement types
that do not apply) should be tailored out of the
specification and its associated conventions during the
process tailoring task.
Different parts of this document are due at different
times (i.e., by different milestones).
Some parts of this document should be mandatory and some
parts should be optional.
Not all requirements are contained in this document;
specifically, required APIs to external applications are
specified in the
external API specification.
Note that there is typically no need for a separate
“software requirements specification” or
“hardware requirements specification” on most
projects although such documents can be produced if
appropriate (e.g., for subcontractors).
Do not concentrate solely on the use cases of the
functional requirements. For example, many quality
requirements may have a larger impact on the architecture,
cost, and schedule than most functional requirements.
Note that the quality requirements are too critical to be
specified in a separate “Supplementary Requirements
Specification”.