||It has been suggested that Software_requirements_specification be merged into this article. (Discuss) Proposed since March 2013.|
Software Requirements is a field within Software Engineering that deals with establishing the needs of stakeholders that are to be solved by software. The IEEE Standard Glossary of Software Engineering Technology defines a software requirement as:
- A condition or capability needed by a user to solve a problem or achieve an objective.
- A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.
- A documented representation of a condition or capability as in 1 or 2.
Software Requirements can broadly be broken up into Elicitation, Analysis, Specification, and Management.
Elicitation is the gathering of requirements from stakeholders. A variety of techniques can be used such as Joint Application Design (JAD) sessions, interviews, etc. Elicitation is the first step of the requirements collection.
Analysis is the logical breakdown that proceeds from elicitation.
Specification is the way requirements should be communicated and archived. Use Cases, user stories, and UML models are popular choices for this.
Requirements change during projects and there are often many of them. Management of this change becomes paramount to insuring that the correct software is built for the stakeholders.
Tool support for requirements engineering 
Specialized commercial tools for requirements engineering are DOORS, Rational RequisitePro, Gatherspace, CaliberRM or QFDCapture, but also free tools like FreeMind can be used. Issue trackers implementing the Volere requirements template have been used successfully in distributed environments.
See also 
- IEEE Computer Society (1990). "IEEE Standard Glossary of Software Engineering Terminology". IEEE Standard.
- "Software Engineering Book of Knowledge". IEEE Computer Society. Retrieved 11 January 2013.
- Laplante, Phillip A. (2009). "Requirements Engineering for Software and Systems". CRC Press.
- Prause, Christian; et al. (2008). "Managing the Iterative Requirements Process in a Multi-National Project using an Issue Tracker". IEEE Computer Society. Retrieved February 5, 2013.
Further reading 
|This section is empty. You can help by adding to it. (March 2013)|