Artifact: Software Requirement
| The specification for a condition or capability to which a system must conform. | |
| Other Relationships: | Extended By: - Actor - Use Case |
| Role: | Requirements Specifier |
| Optionality/Occurrence: | Multiple occurrences, usually enclosed within a container artifact. Should be used whenever the system must conform to a capability or condition. |
| Templates and Reports: | |
| Examples: | |
| UML Representation: | Various stereotypes can be used, such as <<use case>> and <<business rule>>. |
| More Information: | - Concept: Requirements - Concept: Types of Requirements |
| Input to Activities: - Design the User Interface - Identify Test Motivators - Prioritize Use Cases - Review Requirements | Output from Activities: - Detail the Software Requirements - Prioritize Use Cases |
Purpose
Software requirements are documented in an attempt to specify:
- A software capability needed by the user to solve a problem [in order to] to achieve an objective
- A software capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documentation [THA97]
This is an essential artifact in software development, although in many contexts it is typical for some subset of the requirements to remain incompletely documented. RUP addresses this concern by managing the software development in multiple iterations, allowing the important requirements to be uncovered over time.
Brief Outline
In creating the Software Requirement artifact, you should consider various aspects of the artifact including the following:
- the different interest groups or stakeholders who may have requirements to contribute
- the different requirement types (categories, dimensions) that need to be considered
Properties
| Property Name | Brief Description |
|---|---|
| Identifier | An unique name used to identify this Software Requirement. |
| Short Description | A short description of the requirement, as short and succinct as possible. |
| Rationale | An explanation of why this requirement is needed, and what benefit or value it represents. |
| UML Representation | Various stereotypes, e.g.<<use case>>, <<business rule>> |
| Detailed Description | A detailed explanation of the requirement. |
| Restoration and Recovery Procedures | The procedures required to achieve restoration or recovery of the Test Environment Configuration. |
Timing
Software Requirements are identified (with some subset of them briefly outlined) early in the Inception phase, as the team begins defining the scope of the system in response to the stakeholder requests and system Vision. Most requirements go on to be described in detail during the Elaboration and Construction phase, with a limited subset defined and dealt with in Transition.
Responsibility
The Requirements Specifier role is primarily responsible for this artifact.
Tailoring
This artifact is generally enclosed within the Software Requirements Specification, Use Case or other requirements specification artifacts.