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

i
                                             r
                                           u
                                        e
                                         q
                                             e
                                                  t
                                                   s
                                                 n
                                               m
                                                e
                             p
                              t
                                                                             m
                                                                            r
                                                                               s
                               e
                                    :
                                       R
                                  6
                                 r

                                                                   o
                                                                    r
                                                                  f
                                                                g


                                                                         t
                                                                          f
                                                                        a
                                                                      P
                                                                       l
                                                        g
                                                         i
                                                       n

                                                     E
                                                          n
                                                              i
                                                               n
                                                             r
                                                           e
                                                            e
                                                                           o
                            a
                           h
                          C
                          C h a p t e r   6 :      R e q u i r e m e n t s   E n g i n e e r i n g   f o r   P l a t f o r m s      177 177
                 6.2  Challenges
                      Requirements  engineers  working  on  platform  projects  accept
                      stakeholder  requests  where  the  stakeholders  are  from  different
                      organizations interested in developing products in different application
                      domains. In such a platform project, it is very likely that stakeholder
                      requests will be quite different and sometimes conflict with each other.
                      As each business unit is eager to get their new products quickly to
                      market,  setting  priorities  for  the  platform  features  will  be  difficult.
                      Furthermore,  there  will  likely  be  many  feature  requests  as  the
                      stakeholders  from  different  business  units  are  motivated  to  put  as
                      much functionality as possible (from their view) into the platform.
                         Although  the  platform  developers  will  likely  push  back  on
                      functional  requirements  coming  from  the  stakeholders,  they  will
                      need to have confidence that the intended platform will be able to
                      support a wide variety of applications. As future applications will
                      likely be vaguely defined, the services that the platform will provide
                      will also be vague. Functional requirements will drive the definition
                      of the components that make up the software system architecture.
                      Nonfunctional  requirements  drive  the  quality  definition  of  the
                      platform upon which the components will execute. Thus, requirements
                      engineers  will  need  to  address  both  functional  and  nonfunctional
                      requirements, and the requirements analysis feeds directly into the
                      software system architecture design.
                         Requirements  engineers  and  software  architects  working  on
                      platform  projects  will  necessarily  focus  on  the  nonfunctional
                      requirements that the platform will be designed to meet. As you have
                      seen  in  Chapter  5,  developing  and  implementing  nonfunctional
                      requirements (NFRs) is probably one of the most challenging tasks in
                      developing large software systems. The nonfunctional behaviors of
                      software systems are difficult to elicit, describe, and quantify. Many
                      research  and  industrial  standardization  efforts  have  been  made  to
                      enable the NFR development to become more systematic and unify
                      NFR specifications [ISO 2001, ISO 2007]. However, due to the high
                      complexity  and  large  scale  of  industrial  software  development,
                      software  practitioners  are  still  having  difficulty  in  developing  and
                      implementing NFRs. Some example challenges follow:
                          •  The  NFRs  (quality  attribute  requirements)  defined  in  the
                             standards  may  be  incomplete,  since  each  software  product
                             has  its  own  unique  needs.  Thus,  software  engineers  must
                             customize  the  standard  NFR  definitions  to  their  needs  and
                             make them more effective to categorize their specific NFRs.
                             For example, the hostability quality attribute may be simple
                             when the software is operated at only one central location, but
                             it may grow complex when the software is operated across
   206   207   208   209   210   211   212   213   214   215   216