Page 31 - Software and Systems Requirements Engineering in Practice
P. 31

4   S o f t w a r e   &   S y s t e m s   R e q u i r e m e n t s   E n g i n e e r i n g :   I n   P r a c t i c e


                      Misconception 1: Any Subject Matter Expert Can Become
                      a Requirements Engineer after a Week or Two of Training
                      Requirements engineers need strong communication and knowledge
                      of engineering skills, the ability to organize and manage a data set of
                      requirements,  high-quality  written  and  visual  presentation  skills,
                      and the ability to extract and model business processes using both
                      text  and  graphical  (e.g.,  Integration  DEFinition  [IDEF],  Unified
                      Modeling Language [UML]) techniques. First and foremost, to elicit
                      requirements from stakeholders requires the ability to interact with
                      a variety of roles and skill levels, from subject matter experts (detailed
                      product requirements) to corporate officers (elicitation of business
                      goals).
                         Moreover, people have to be trained to write good specifications.
                      High school and university training tends to teach a style of writing
                      that is antithetical to the techniques needed to create unambiguous
                      and  complete  documents.  Requirements  analysts  typically  need
                      significant training, both classroom and on the job, before they can
                      create high-quality specifications.
                      Misconception 2: Nonfunctional and Functional Requirements
                      Can Be Elicited Using Separate Teams and Processes
                      The subject domains for nonfunctional and functional requirements
                      are related, may impact each other, and may result in iterative changes
                      as  work  progresses  (see  Chapter  5).  Team  isolation  may  do  more
                      harm than good.

                      Misconception 3: Processes That Work for a Small Number
                      of Requirements Will Scale
                      Requirements engineering processes do not scale well unless crafted
                      carefully. For example, a trace matrix is an N × N matrix, where N is
                      the number of requirements of interest. In each cell, a mark or arrow
                      indicates that there is a trace from requirement R (row i) to requirement
                                                             i
                      R (column  j).  It  is  relatively easy  to  inspect,  say,  a 50-requirement
                       j
                      matrix, but what happens when five to ten thousand requirements
                      are needed to define a product? Filtering and prioritization become
                      important in order to retrieve results that can be better understood,
                      but the requirement annotations necessary to provide such filtering
                      are often neglected up front because the database is initially small.

                 1.3  Industrial Challenges in Requirements Engineering
                      Over  the  last  few  years,  the  requirements  engineering  R&D  focus
                      program at Siemens Corporate Research has been involved with a
                      substantial number of requirements engineering (RE) projects with
                      Siemens development organizations. Many RE challenges have been
                      identified  as  potentially  impacting  project  performance.  We  have
   26   27   28   29   30   31   32   33   34   35   36