What is SRS (Software Requirements Specification)

From Requirements Management School

Software Requirements Specification (SRS) is a type of requirements document. The document is also referred to as the functional specification, product spec, specs, program specification, system specification or even just "requirements document".

Creation of the SRS is an iterative process. Through negotiation it forms the baseline agreement between all the stakeholders. A baseline agreement for each phase of development must be in place and agreed upon prior to implementation of that phase.

The SRS needs to be kept up to date and correct throughout the lifecycle of the project. So it is important to have version control in place - this ensures that everyone is working from the same version.

The SRS must be written with all stakeholders and user classes in mind. This means that it needs to be written in language that is easily understood by the entire audience. The SRS must be comprehensive, unambiguous and consistent. Although the SRS does not contain any design content; construction content; testing content; or project management content it is the basis on which all of these are based.

What SRS Contains

Best practice suggests that the following key information should be contained in the document:

Introduction – this should include the product overview; purpose; project scope; references; definitions and abbreviations.

Overall Description – this should contain product perspective; product functions; operating environment; user classes and characteristics; design and implementation constraints; user documentation; assumptions; dependencies.

Specific Requirements – this section is usually broken down further into subcategories:

  • External Interface Requirements – user interfaces; hardware interfaces; software interfaces; communications interfaces. This is where the use cases go.
  • Software Features (Functional Requirements)
  • Non-Functional Requirements – reliability; availability; security; maintainability; portability; performance; safety.
  • Other Requirements

Formatting Tips

When formatting the document it is really important to keep your audience in mind and make sure that they are able to fully interact with the document:

  • Plenty of space should be left between blocks of text and in the margins so that the readers can make notes as they read the document.
  • Use tables and diagrams to break up text. When using tables and diagrams make sure that they are labeled and numbered so that they can be referenced in the text.
  • Highlight key information in a consistent manner by using bold, italics and underline.
  • Make sure that you include a table of contents with page numbers. If the document is particularly long you may want to consider an index in addition to this.