Requirements engineering (RE)  refers to the process of formulating, documenting and maintaining software requirements  and to the subfield of Software Engineering concerned with this process.
The first use of the term 'requirements engineering' was probably in 1979 in a TRW technical report  but did not come into general use until the 1990s with the publication of an IEEE Computer Society tutorial  and the establishment of a conference series on requirements engineering.
In the waterfall model, requirements engineering is presented as the first phase of the development process. Later software development methods, including the Rational Unified Process, Extreme Programming and Scrum assume that requirements engineering continues through the lifetime of a system.
Requirements engineering activities
The activities involved in requirements engineering vary widely, depending on the type of system being developed and the specific practices of the organization(s) involved. These may include:
- Requirements inception or requirements elicitation -
- Requirements identification - identifying new requirements
- Requirements analysis and negotiation - checking requirements and resolving stakeholder conflicts
- Requirements specification (Software Requirements Specification) - documenting the requirements in a requirements document
- System modeling - deriving models of the system, often using a notation such as the Unified Modeling Language
- Requirements validation - checking that the documented requirements and models are consistent and meet stakeholder needs
- Requirements management - managing changes to the requirements as the system is developed and put into use
These are sometimes presented as chronological stages although, in practice, there is considerable interleaving of these activities.
Requirements engineering tools
||This article's use of external links may not follow Wikipedia's policies or guidelines. (December 2013)|
|Innoslate||http://www.innoslate.com/requirements||Cloud and on-site requirements solution with full lifecycle support (free version available)|
|Intland Software codeBeamer||http://www.intland.com/products/codebeamer/modules/||Agile Software Development - Enterprise Requirements Engineering + Management|
|IBM Rational DOORS||http://www-01.ibm.com/software/awdtools/doors/||ex. "Telelogic DOORS"; used for system engineering|
|IBM Rational DOORS Next Generation||http://www-03.ibm.com/software/products/en/ratidoorng||The followup to IBM Rational RRC.|
|IBM Rational RequisitePro||http://www-01.ibm.com/software/awdtools/reqpro/||Used for software engineering|
|IBM Rational Requirements Composer||http://www-01.ibm.com/software/awdtools/rrc/||The followup to IBM Rational RequisitePro|
|Kovair Requirements Management - ALM Studio||http://www.kovair.com/alm-studio/requirements-management/||Used for Requirements elicitation, analysis, specification and validation|
|Blueprint Requirements Definition & Management||http://www.blueprintsys.com/resources/product-brochures/||Blueprint Requirements|
|Visual Paradigm Requirements Capturing||http://www.visual-paradigm.com/product/vpuml/provides/reqmodeling.jsp||Visual Paradigm Requirements Capturing|
|HP Requirements Management||http://www8.hp.com/us/en/software-solutions/software.html?compURI=1172907||HP Requirements Management|
|PTC Integrity for Requirements Engineering||http://www.mks.com/solutions/discipline/rm/requirements-engineering||Formerly MKS Integrity for Requirements Management - optimized for system and software requirements|
|objectiF Requirements Modeller||http://www.microtool.de/requirements-modeller/en/index.asp|
|RQA Requirements Quality Analyzer for system engineering projects||http://www.reusecompany.com/requirements-quality-analyzer||The Requirements Quality Analyzer tool (RQA) allows you to define, measure, improve and manage the quality of the requirements specifications within the systems engineering process|
- Nuseibeh B. and Easterbrook, S. Requirements Engineering: A Roadmap, ICSE 2000 Future of Software Engineering , ACM Press.
- Kotonya G. and Sommerville, I. Requirements Engineering: Processes and Techniques. Chichester, UK: John Wiley & Sons
- Murali Chemuturi, Requirements Engineering and Management for Software Dvelopment Projects , Springer USA.
- Software Requirements Engineering Methodology (Development) Alford, M. W. and Lawson,J. T. TRW Defense and Space Systems Group. 1979.
- Thayer, R.H., and M. Dorfman (eds.), System and Software Requirements Engineering, IEEE Computer Society Press, Los Alamitos, CA, 1990.
- Royce, W.W. 'Managing the Development of Large Software Systems: Concepts and Techniques', IEEE Westcon, Los Angeles, CA> pp 1-9, 1970. Reprinted in ICSE '87, Proceedings of the 9th international conference on Software Engineering.
- Requirements bibliography Reviewed November 10th 2011
- Sommerville, I. Software Engineering, 7th ed. Harlow, UK: Addison Wesley, 2006.
- Ralph, Paul (2012). "The Illusion of Requirements in Software Development". Requirements Engineering.