Page 287 -
P. 287

258           PART THREE  CONVENTIONAL METHODS FOR SOFTWARE ENGINEERING


                         •  A list of customers, users, and other stakeholders who participated in the
                            requirements elicitation activity.

                         •  A description of the system’s technical environment.
                         •  A list of requirements (preferably organized by function) and the domain
                            constraints that apply to each.
                         •  A set of usage scenarios that provide insight into the use of the system or
                            product under different operating conditions.
                         •  Any prototypes developed to better define requirements.

                       Each of these work products is reviewed by all people who have participated in the
                       requirements elicitation.


                       10.5.2 Requirements Analysis and Negotiation
                       Once requirements have been gathered, the work products noted earlier form the
                       basis for requirements analysis. Analysis categorizes requirements and organizes them
                       into related subsets; explores each requirement in relationship to others; examines
                       requirements for consistency, omissions, and ambiguity; and ranks requirements
                       based on the needs of customers/users.
         ?  What          As the requirements analysis activity commences, the following questions are
            questions
         must be asked  asked and answered:
         and answered    •  Is each requirement consistent with the overall objective for the
         during             system/product?
         requirements
         analysis?       •  Have all requirements been specified at the proper level of abstraction? That
                            is, do some requirements provide a level of technical detail that is inappropri-
                            ate at this stage?
                         •  Is the requirement really necessary or does it represent an add-on feature
                            that may not be essential to the objective of the system?
                         •  Is each requirement bounded and unambiguous?
                         •  Does each requirement have attribution? That is, is a source (generally, a
                            specific individual) noted for each requirement?
                         •  Do any requirements conflict with other requirements?
                         •  Is each requirement achievable in the technical environment that will house
                            the system or product?
          Requirements Analysis
                         •  Is each requirement testable, once implemented?
                          It isn’t unusual for customers and users to ask for more than can be achieved,
                       given limited business resources. It also is relatively common for different customers
                       or users to propose conflicting requirements, arguing that their version is “essential
                       for our special needs.”
   282   283   284   285   286   287   288   289   290   291   292