Artifact: Software Requirements Specification
This artifact captures the software requirements for the complete system, or a portion of that system.
Domains: Requirements
Work Product Kinds: Specification
Purpose

The Software Requirements Specification (SRS) focuses on the collection and organization of all requirements surrounding your project. It is useful for collecting your project software requirements in a formal, IEEE830-style document.

Since you might find yourself with several different tools for collecting these requirements, it is important to realize that the collection of requirements may be found in several different artifacts and tools. For this reason, we will collect the requirements for our SRS in a package which may be a single document or a collection of various artifacts that describe the requirements.
(See the More Information section for additional guidelines).

The SRS package controls the evolution of the system throughout the development phase of the project, as new features are added or modified to the Vision document, they are elaborated within the SRS Package.

The following people use the Software Requirements Specification:

  • Designers use the SRS Package as a reference when defining responsibilities, operations, and attributes on classes, and when adjusting classes to the implementation environment.
  • Implementers refer to the SRS Package for input when implementing classes.
  • The Project Manager refers to the SRS Package for input when planning iterations.
  • Testers use the SRS Package as an input to considering what tests will be required.
Relationships
Description
Brief Outline

The Software Requirements Specification (SRS) captures the complete software requirements for the system, or a portion of the system.

Many different arrangements of an SRS are possible. Review the tailoring section for additional guidance.

Key Considerations
Refer to the Requirements Management Plan to determine the correct location and organization of the requirements. For example, it may be desired to have a separate SRS to describe the complete software requirements for each feature in a particular release of the product.
Tailoring
Representation Options

Many different arrangements of an SRS are possible. Review the templates and examples section in the header table of this page for arrangements relevant in your project context. Refer to [IE830] for further elaboration of this artifact, including other options for SRS organization.

The Software Requirements Specification should provide a complete definition of the software requirements, both functional and non-functional. However, use-case specific requirements, both functional and non-functional, should be documented in  the Use Cases, and system-wide requirements, both functional and non-functional, should be documented in the Supplementary Specifications. These separate work products may be packaged together to define the Software Requirements Specification (SRS).

More Information