Page 285 -
P. 285

256           PART THREE  CONVENTIONAL METHODS FOR SOFTWARE ENGINEERING


                       the role of requirements engineering is to establish the interfacing mechanisms that
                       will enable this to happen.
                          The element view for product engineering is the engineering discipline itself applied
                       to the allocated component. For software engineering, this means analysis and design
                       modeling activities (covered in detail in later chapters) and construction and integra-
                       tion activities that encompass code generation, testing, and support steps. The analy-
                       sis step models allocated requirements into representations of data, function, and
                       behavior. Design maps the analysis model into data, architectural, interface, and soft-
                       ware component-level designs.


                10.5   REQUIREMENTS ENGINEERING

                       The outcome of the system engineering process is the specification of a computer-
                       based system or product at the different levels described generically in Figure 10.1.
         “The hardest single  But the challenge facing system engineers (and software engineers) is profound: How
          part of building a  can we ensure that we have specified a system that properly meets the customer’s
          software system is
          deciding what to  needs and satisfies the customer’s expectations? There is no foolproof answer to this
          build. . . . No other  difficult question, but a solid requirements engineering process is the best solution
          part of the work so  we currently have.
          cripples the resulting  Requirements engineering provides the appropriate mechanism for understand-
          system if done  ing what the customer wants, analyzing need, assessing feasibility, negotiating a rea-
          wrong. No other part
          is more difficult to  sonable solution, specifying the solution unambiguously, validating the specification,
          rectify later.  and managing the requirements as they are transformed into an operational system
          Fred Brooks  [THA97]. The requirements engineering process can be described in five distinct steps
                       [SOM97]:

                         •  requirements elicitation
                         •  requirements analysis and negotiation
                         •  requirements specification
                         •  system modeling
                         •  requirements validation
                         •  requirements management
         WebRef
                       10.5.1 Requirements Elicitation
         A detailed report entitled
         “Issues in Requirements  It certainly seems simple enough—ask the customer, the users, and others what the
         Elicitation” can be
         downloaded from  objectives for the system or product are, what is to be accomplished, how the sys-
         www.sei.cmu.edu/  tem or product fits into the needs of the business, and finally, how the system or prod-
         publications/  uct is to be used on a day-to-day basis. But it isn’t simple—it’s very hard.
         documents/92.
         reports/         Christel and Kang [CRI92] identify a number of problems that help us understand
         92.tr.012.html  why requirements elicitation is difficult:
   280   281   282   283   284   285   286   287   288   289   290