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

176   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


                           teve was assigned as a requirements engineer on a project that
                           was developing a new platform for real-time control systems.
                      SAlthough he had worked on platform projects before, he had not
                      worked with so many different stakeholders. The stakeholders came
                      from the different business divisions who were planning to develop
                      their future applications on the platform. In some cases these divisions
                      were former companies that were acquired by his company, and they
                      had previously competed with each other. Steve began to sense that
                      the  stakeholders  were  competing  to  promote  their  features  to  be
                      developed earliest in the platform project, and they were attempting
                      to influence the platform development schedule. He realized that this
                      project would not necessarily be technically challenging, but it would
                      be very difficult to manage the requirements coming from so many
                      competing stakeholders.
                         This chapter deals with how to carry out requirements engineering
                      when  developing  software  platforms.  It  describes  some  of  the
                      challenges  that  arise  when  developing  the  platforms.  In  order  to
                      address  these  issues,  a  practical  approach  is  presented  for  how  to
                      unify, normalize, and reconcile the nonfunctional requirements in the
                      platform development.


                 6.1  Background
                      Software  product  lines  have  been  an  active  area  of  software  systems
                      engineering for the past few years [Clements et al. 2002]. Building a
                      product  line  on  top  of  a  common  platform  with  shared  services  is
                      commonly  practiced  in  many  industries.  For  example,  the  use  of
                      platforms has been widely practiced in the automobile industry, where
                      a  standard  drive  train  and  body  are  used  for  multiple  models  and
                      variations of automobiles. One may read automobile model reviews
                      with statements like, “a new ES 350 will grace the Lexus lineup for the
                      2007 model year, sharing its platform with the Toyota Camry.” “Of
                      course, Lexus doesn’t want you to think of the ES 350 as an upscale
                      Camry, but as a full-scale luxury car.”
                         Siemens  has  initiated  a  number  of  development  projects  using
                      software  product  line  concepts  that  are  referred  to  as  “platform
                      initiatives.” In this case, a platform refers to a common set of lower-level
                      software  services  such  as  operating  system  and  middleware.
                      Applications are written on top of the platform to create products within
                      one or more product lines for potentially differing business units. For
                      example, the Building Automation System (BAS) project described in
                      [Sangwan et al. 2007] required that multiple application disciplines be
                      integrated to run on a single workstation platform. The applications
                      were  developed  by  different  business  organizations,  at  different
                      development sites, with different skills, and for different domains.
   205   206   207   208   209   210   211   212   213   214   215