Issue No. 01 - January/February (2005 vol. 22)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2005.13
Ian Sommerville , Lancaster University
Before developing any system, you have to understand what the system is supposed to do and how it its use can support the goals of the business or individuals that will pay for that system. This involves understanding the application domain (telecommunications, railways, retail banking, games, etc.), the system's operational constraints, the specific functionality required by stakeholders and essential system characteristics such as performance, security and dependability. Requirements engineering is the name given to a structured set of activities that help develop this understanding and that document the system specification for system stakeholders and engineers involved in the system development.<p>This article is a short tutorial that introduces the fundamental activities of requirements engineering and discusses how it has evolved as part of the software engineering process. However, rather than focus on established RE techniques, I discuss how the changing nature of software engineering has led to new challenges for requirements engineering. I then introduce a number of new techniques that help meet these challenges by integrating requirements engineering more closely with other systems implementation activities.</p>
I. Sommerville, "Integrated Requirements Engineering: A Tutorial," in IEEE Software, vol. 22, no. , pp. 16-23, 2005.