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

Academic Foreword






                            equirements  engineering  has  proven  to  be  one  of  the  most
                            difficult and critical activities for the successful development
                      Rof software and software-intensive systems. The reasons for
                      that  are  obvious.  If  requirements  are  invalid,  then  even  the  most
                      careful implementation of a system will not result in a product that is
                      useful. Moreover, if requirements are included in the requirements
                      specifications that are not actually valid, then the product or system
                      becomes  unnecessarily  expensive.  This  shows  that  requirements
                      engineering is important.
                         In fact, requirements engineering is also difficult. There are many
                      reasons  for  this.  One  is  that  often  software-intensive  systems  are
                      innovative  in  providing  new  functionality.  Then,  learning  curves
                      have to be considered. It is often impossible to understand, in advance,
                      what the requirements actually are. The people involved have quite
                      different  perspectives  on  their  valid  requirements.  Therefore,  it  is
                      difficult  to  arrive  at  an  agreement.  At  the  same  time,  important
                      requirements might be overlooked and only discovered when gaining
                      first  experiences  with  the  produced  systems.  Moreover,  for  large,
                      long-term projects requirements may change due to changes in the
                      environment, the market, or user needs.
                         Finally, requirements engineering is often underestimated or even
                      neglected  by  project  management.  The  core  of  requirements
                      engineering  is  devoted  to  understand  and  work  on  the  problem
                      statement and not so much the solution. However, management may
                      think  that  only  when  a  team  of  developers  starts  to  work  on  the
                      solution will the project begin to show real progress. Therefore, both
                      for management and even for experienced developers, there is always
                      a tendency to rush too early into the solution domain. As a result,
                      solutions are produced that miss requirements or do not explore the
                      full range of possible solutions.
                         However, even having accepted that requirements engineering is
                      difficult, error-prone, costly, but nevertheless important, a lot more
                      has  to  be  understood  to  be  able  to  do  professional  requirements
                      engineering. For most projects, the overall development process can
                      be  easily  standardized  after  the  requirements  have  been  captured.
                                                                             xix
   15   16   17   18   19   20   21   22   23   24   25