Software requirements specification

A software requirements specification (SRS) is a description of a software system to be developed. It lays out functional and non-functional requirements, and may include a set of use cases that describe user interactions that the software must provide.

Software requirements specification establishes the basis for an agreement between customers and contractors or suppliers (in market-driven projects, these roles may be played by the marketing and development divisions) on what the software product is to do as well as what it is not expected to do. Software requirements specification permits a rigorous assessment of requirements before design can begin and reduces later redesign. It should also provide a realistic basis for estimating product costs, risks, and schedules.[1] Used appropriately, software requirements specifications can help prevent software project failure.[2]

The software requirements specification document enlists enough and necessary requirements that are required for the project development.[3] To derive the requirements, the developer needs to have clear and thorough understanding of the products to be developed or being developed. This is achieved and refined with detailed and continuous communications with the project team and customer till the completion of the software.

The SRS may be one of a contract deliverable Data Item Descriptions[4] or have other forms of organizationally-mandated content.

Structure

An example organization of an SRS is as follows:[5]

Goals

The Software Requirements Specification (SRS) is a communication tool between stakeholders and software designers. The specific goals of the SRS are:

Reliability Availability Security Maintainability Portability.

Requirements Smells

Following the idea of Code smells, the notion of requirements smells has been proposed to describe issues in requirements specification where the requirement is not necessarily wrong but could be problematic. In particular, the requirements smell :[6]

Examples of requirements smells are Subjective Language, Ambiguous Adverbs and Adjectives, Superlatives and Negative Statements.[6] Several of these smells can also be automatically detected with tools like Requirements Scout.

See also

References

  1. Bourque, P.; Fairley, R.E. (2014). "Guide to the Software Engineering Body of Knowledge (SWEBOK)". IEEE Computer Society. Retrieved 17 July 2014.
  2. "Software requirements specification helps to protect IT projects from failure". Retrieved 19 December 2016.
  3. Pressman, Roger (2010). Software Engineering: A Practitioner's Approach. Boston: McGraw Hill. p. 123. ISBN 9780073375977.
  4. "DI-IPSC-81433A, DATA ITEM DESCRIPTION SOFTWARE REQUIREMENTS SPECIFICATION (SRS)". everyspec.com. 1999-12-15. Retrieved 2013-04-04.
  5. Stellman, Andrew & Greene, Jennifer (2005). Applied software project management. O'Reilly Media, Inc. p. 308. ISBN 0596009488.
  6. 1 2 Femmer, Henning; Méndez Fernández, Daniel; Wagner, Stefan; Eder, Sebastian (2017). "Rapid quality assurance with Requirements Smells". Journal of Systems and Software. 123: 190–213. doi:10.1016/j.jss.2016.02.047.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.