SW Requirements Template
SW Requirements Template
SW Requirements Template
1/13
The Release plan specifies the releases The form of the specification may vary from
planned for the system, and other high- the most informal (index cards for user
level milestones if significant for the client. stories to post on a wall) to the formal
Whenever possible, it is a good strategy to (several documents with hundreds or
build and ship the system incrementally, thousands of pages).
according with client's priorities and
system's architecture. The release plan The Glossary - Data Dictionary section
can and must be changed, whenever client deals with informations and data. It may be
and developers need to change it. specified at different complexity levels,
depending on actual needs.
Every project, even the smallest and most
informal one, gets benefits from having a A Glossary is an often informal list of terms
vision and a release plan. and definitions. It defines a common
language, the minimal basis for mutual
Every project, but the most informal ones, understanding in a project.
needs some form of Software A Data Dictionary is a structured repository
requirements specification, in order to of data definitions, which specifies
document the shared understandings structures and relationships of data.
between client and developers. Depending
on needs and preferences, the software Who, when and how (to use the
requirements specification may be more or template)
less formal, and it may contain every detail
or just the most significant points of In the tradition of software development,
agreement. the role which has the responsibility to
document requirements is called “analyst”.
The most common elements that constitute In actual organizational contexts and
a software requirements specification are: situations, this role may be fulfilled by
1. A set of user stories, or use cases. people with different labels.
User stories are small chunks of
system functionality; use cases are The timing of the specification depends on
more complete operational the software development process used.
scenarios of system usage. User Old “waterfall” methods require the
stories are short, and may specification of all detailed requirements
correspond to a single atomic upfront, and a global client validation (client
functional requirement (see below) ; signature) before development begins.
use cases may be longer because
they describe end-to-end usage Iterative and agile methods suggest a just-
scenarios. in-time approach to requirements
2. A list of atomic requirements (“the management. Partial sets of requirements
System <_________>
Requirements
Version History
Version n. Date Author Changes
Index
Purpose and audience for this document..............................................................................6
Vision .....................................................................................................................................7
System background...........................................................................................................7
Business Context, Opportunities and Risks.................................................................7
Stakeholders Profiles and Needs.................................................................................7
Main Characteristics of the System...................................................................................7
Goals of the System.....................................................................................................7
System Context: relationships with users and external systems.................................7
Major Features.............................................................................................................8
Dependencies and Critical Success Factors................................................................8
Release Plan .........................................................................................................................9
Requirements Specification ................................................................................................10
Use Cases / User Stories................................................................................................10
Atomic Requirements......................................................................................................10
Functionality.....................................................................................................................11
Detailed Functional Requirement................................................................................11
Data and Accuracy Requirements...............................................................................11
Interoperability.............................................................................................................11
Responsibility..............................................................................................................11
Operativeness..................................................................................................................11
Availability....................................................................................................................11
Performance................................................................................................................11
Capacity.......................................................................................................................11
Scalability.....................................................................................................................11
Reliability.....................................................................................................................11
Installation....................................................................................................................11
Portability ....................................................................................................................11
Compliance......................................................................................................................11
Laws and Regulations.................................................................................................11
Purpose
State the purpose of this document (e.g. "Document the software requirements for Project
YYY"). When useful, describe briefly what's included in the document.
Audience
State the intended audience for this document (e.g. "This document is targeted to anyone
involved in the project, and in particular to the following roles...").
Vision
The Vision is a high level system specification. In its simplest form, it may be a two-pages
product data sheet. In its most complex form, it may be a 20 pages executive-level system
description.
It is the main communication medium about the work to be done. It contains no details.
System background
For complex systems there may be up to 3 different levels of context, specifying the
by Adriano Comai – www.analisi-disegno.com – Creative Commons Attribution-Non-commercial 3.0 Unported License
Requirements Document Pag. 8/13
If there are a lot of different user roles and external systems, simplify with abstractions.
The detailed requirements for the relationships of the system with the external world are
better expressed in the Requirements Specification than in the Vision.
The system context may be expressed in graphical form, with a UML (Unified Modeling
Language) diagram simple as the following one:
«e x t e sr ny sa t l e m »
A u t h e n t i c a t i o n
« s y s t e m »
E -C o m m e r c e
C u s t o m e r
«e x t e sr ny sa t l e m »
P a y m e n t
Major Features
List the major features of the product, that is the most relevant functions and
characteristics (operating environment, level of service, usability, security ecc.).
Release Plan
The release plan documents, at a high level, the release milestones shared between client
and developers. It specifies the progression of releases and their content. Whenever the
agreements between client and developers should change, the release plan must be
changed accordingly.
The intent of the release plan is to clarify our forecasts about the incremental delivery of
system functions, because in most projects not every requirement are satisfied at the
same time. The release plan is a road map, not a detailed work plan.
The level of detail of the release plan must be coherent with the vision and the
requirements specification. For example, if the Requirements specification is organized
around use cases, it is useful that the release plan references them.
Example
Feature or use case 1st release (date) 2nd release (date) 3rd release (date)
UC1 x (partial, only base *
scenario)
UC2 *
UC3 * (partial, without *
alternate scenarios 2
and 3)
UC4 x
UC5 * (partial) *
UC6 *
UC7 x
Requirements Specification
The requirements specification contains details. It has two main Parts: Use Cases AND
Atomic Requirements.
This section is organized around user functionalities. I suggest the use of an existing
template, such as the one provided by Alistair Cockburn -
http://alistair.cockburn.us/index.php/Basic_use_case_template, or a similar one.
Atomic Requirements
Functionality
Interoperability
Responsibility
Operativeness
Availability
Performance
Capacity
Scalability
Reliability
Installation
Portability
Compliance
Audit
Business Rules
Technologies
Usability
Physical Environment
Ease of Use
Personalization
Internationalization
Learning Time
Accessibility
Safety
Access Protection
Integrity
Privacy
Documentation
Maintenance
Support
Training
The Glossary - Data Dictionary section deals with informations and data. It may be
specified at different complexity levels, depending on actual needs.
A Glossary is an often informal list of terms and definitions. It defines a common language,
the minimal basis for mutual understanding in a project. It is highly recommended.
A Data Dictionary is a structured repository of data definitions, which specifies structures
and relationships of data.