Software Requirements Specification
We
refer to a specification process in various parts of our web site. This page describes
the documentation that results from this process and how it is typically laid out.
This approach is suited to fixed price jobs of up to around 3 to 4 years of effort.
It has evolved over time as a result of our experience in carrying out software
projects. It forms a framework from which we derive the components required in each
particular project.
Introduction to the Software Requirements Specification
Document Conventions
Describes any standards or typographical conventions that are to be followed when
writing the Software Requirements Specification
Intended Audience and Reading Suggestions
List of different readers to whom the Software Requirements Specification is directed.
Suggests a sequence for reading the document that is most appropriate for each type
of reader.
Product Scope
Provides a short description of the software being specified and its purpose, including
benefits and goals. Relates the software to corporate goals or business strategies.
References
Lists all documents or other resources to which the Software Requirements Specification
refers.
Overall Description
Product Perspective
Describes the context and origin of the product being specified in the Software
Requirements Specification.
Product Functions
Details major functions the product must perform. This is done at a relatively high
level, as details will be provided in the System Features section following.
User Classes and Characteristics
Identifies the various user classes that will be using the product and describes
their pertinent characteristics.
Operating Environment
Describes the environment in which the software will operate, including the hardware
platform, operating system, etc.
Design and Implementation Constraints
Details any issues that will restrict the options available to the developers and
describes why they are constraints. Examples are corporate policies, specific technologies,
tools, languages, etc.
Assumptions and Dependencies
Lists any assumptions used in compiling the Software Requirements Specification.
Also details any external dependencies, for example completion of work being carried
out by other contractors.
External Interface Requirements
User Interfaces
Describes the general conventions to be followed in the development of the user
interface. Examples of this are
-
Screen layout or resolution constraints
-
Standard buttons, etc that will appear on each screen
-
Error message display standards
Hardware Interfaces
Supported device types, the nature of the data and control interactions between
the software and hardware, communication protocols to be used.
Software Interfaces
Details the connections between the product and other external software components,
including databases, libraries, tools, etc.
Communications Interfaces
Details the requirements associated with any communication functions used, including
EDI, e-mail, web-browsers, etc
System Features
System Feature X
Details the name only of feature X (eg. Customer Downtime Record Entry)
Description and Priority
Describes the feature and indicates whether it is high, medium or low priority.
Stimulus/Response Sequences
Details the sequence of input stimuli (user actions, external signals, etc.) and
the system response.
Functional Requirements
Itemises the detailed functional requirements associated with the feature. These
are software capabilities that must be present for the user to carry out the service
provided by the feature or to perform the task specified by a use case.
Functional Test Cases
Lists all possible uses of the feature and the correct system responses.
Other Non-functional Requirements
Performance Requirements
Specifies the number of concurrent users or operations to be supported, response
times, and timing relationships for real-time systems. Can also include capacity
requirements.
Safety Requirements
Details those requirements that are concerned with possible damage, or harm that
could result from use of the product, and their mitigation.
Security Requirements
Details any requirements regarding security, integrity, or privacy issues that affect
the use of the product and protection of the data used or created by the product.
Software Quality Attributes
Specifies any additional product quality characteristics that will be important
to either customers or developers.
Business Rules
Lists any operating principles about the product, such as which individuals or roles
can perform which functions and when.
User Documentation
Lists the user documentation components along with the software.
Appendix
Typically comprises the following sections:
- Glossary
- Analysis models
- Data dictionary
- To be determined list
|