Page 132 -
P. 132
Chapter 4 Further reading 115
KEY POINTS
Requirements for a software system set out what the system should do and define constraints
on its operation and implementation.
Functional requirements are statements of the services that the system must provide or are
descriptions of how some computations must be carried out.
Non-functional requirements often constrain the system being developed and the development
process being used. These might be product requirements, organizational requirements, or
external requirements. They often relate to the emergent properties of the system and therefore
apply to the system as a whole.
The software requirements document is an agreed statement of the system requirements. It
should be organized so that both system customers and software developers can use it.
The requirements engineering process includes a feasibility study, requirements elicitation and
analysis, requirements specification, requirements validation, and requirements management.
Requirements elicitation and analysis is an iterative process that can be represented as a spiral
of activities—requirements discovery, requirements classification and organization,
requirements negotiation, and requirements documentation.
Requirements validation is the process of checking the requirements for validity, consistency,
completeness, realism, and verifiability.
Business, organizational, and technical changes inevitably lead to changes to the requirements
for a software system. Requirements management is the process of managing and controlling
these changes.
FURTHER RE ADING
Software Requirements, 2nd edition. This book, designed for writers and users of requirements,
discusses good requirements engineering practice. (K. M. Weigers, 2003, Microsoft Press.)
‘Integrated requirements engineering: A tutorial’. This is a tutorial paper that I wrote in which I
discuss requirements engineering activities and how these can be adapted to fit with modern
software engineering practice. (I. Sommerville, IEEE Software, 22(1), Jan–Feb 2005.)
http://dx.doi.org/10.1109/MS.2005.13.
Mastering the Requirements Process, 2nd edition. A well-written, easy-to-read book that is based
on a particular method (VOLERE) but which also includes lots of good general advice about
requirements engineering. (S. Robertson and J. Robertson, 2006, Addison-Wesley.)
‘Research Directions in Requirements Engineering’. This is a good survey of requirements
engineering research that highlights future research challenges in the area to address issues such
as scale and agility. (B. H. C. Cheng and J. M. Atlee, Proc. Conf on Future of Software Engineering,
IEEE Computer Society, 2007.) http://dx.doi.org/10.1109/FOSE.2007.17.