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.
   127   128   129   130   131   132   133   134   135   136   137