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

190   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


                      Derive the NFRs for the Software Platform
                      The  derivation  is  to  identify  and  conceptualize  the  NFRs  for  the
                      platform services based on the stakeholders’ inputs. For example, one
                      stakeholder’s  input  could  be,  “If  an  unauthorized  user  attempts
                      to access the X product, the platform should detect the attempt and cut
                      off the accessing PC from the network.” Another input might be,
                      “If  an  unauthorized  user  attempts  to  access  the  Y  product,  the
                      software should detect the attempt and raise an alarm.” The platform
                      requirement  could  be,  “The  software  shall  provide  a  service(s)  for
                      detecting the unauthorized access, and upon the detection, execute a
                      predefined handling action.” Our experience indicates that this activity
                      actually performs two tasks: one is to identify a required service (e.g., a
                      platform  security  service)  to  support  this  platform-level  security
                      requirement;  another  one  is  to  reconcile/combine  the  stakeholders’
                      inputs. Such activities have an impact on the software architecture and
                      services  the  software  platform  should  provide  (e.g.,  functional
                      requirements).

                      Check for Testability and Complete the Constraints
                      These two activities are highly related in developing software systems.
                      As  the  products  we  develop  often  support  a  variety  of  application
                      situations  (e.g.,  loading  conditions  and  deployment  configurations),
                      without sufficient description of those situations, the NFRs would not
                      be  testable.  The  testers  would  not  know  how  to  set  up  the  testing
                      environment to perform the NFR testing. The tester review of the NFRs
                      often provides many inputs for completing the NFR constraints.
                         Using structured templates is a way to ensure the constraints are
                      more complete. For example, we could enter certain attributes (e.g.,
                      loading conditions, deployment configurations, redundancy status)
                      for each requirement. Our experience, however, was that this is too
                      much work for defining the NFRs for all of the attribute combinations.
                      Stakeholders  would  not  likely  provide  all  the  inputs  for  all  of  the
                      combinations. This is because some of those combinations are rare in
                      the  intended  applications  (e.g.,  small  deployment  configurations
                      with redundancy). Thus, it was not necessary to provide NFRs for all
                      combinations.

                 6.5  Tips for RE for Platforms
                      The following tips may be useful when developing and analyzing
                      platform requirements.
                          •  Use  a  standard  set  of  quality  attribute  requirements  to
                             structure the first version of the NFR questionnaire.
                          •  Unify  the  terminology  used  by  different  stakeholders  for
                             defining platform requirements.
   219   220   221   222   223   224   225   226   227   228   229