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

178   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


                             a number of service locations in order to provide fast services
                             to many widely distributed customers. This is specific to the
                             nature (e.g., for an ASP [application service provider]) of the
                             software being delivered. For example, scalability is the ability
                             for a system to size its capacity either up or down to fit a variety
                             of computing devices. However, some software applications
                             may operate on only one or two types of computing devices.
                             Selecting  and  customizing  NFRs  often  needs  to  be  done
                             iteratively during the NFR development process, based upon
                             continuous inputs from the stakeholders.
                          •  Software  platforms  coming  from  a  large  software  system
                             company tend to support a large variety of customers with
                             different  application  situations.  The  customer  situations
                             are  different  financially  and  operationally.  The  customer
                             businesses  are  likely  based  upon  different  hardware
                             infrastructures  and  service  support  models.  To  reduce
                             development  and  maintenance  costs,  however,  it  is  most
                             desirable  for  the  software  system  company  to  have  some
                             software platforms to support all of those application situations
                             and maintenance needs. How to reconcile and organize NFRs
                             for the platforms that support such a wide variety of application
                             situations and maintenance needs is often very challenging.


                 6.3  Practices
                      Based upon our experience in developing NFRs for large software
                      systems,  we  have  developed  a  software  process  that  helps  us  to
                      more  systematically  develop  NFRs  for  platforms.  This  process  is
                      called the Platform NFR Development (PND) process. It complements
                      existing  NFR  development  methods  by  emphasizing  iterative
                      development,  interacting  with  other  development  activities  (e.g.,
                      prototyping, testing, and release management), and reconciling the
                      stakeholders’ inputs. It provides detailed descriptions for how the
                      stakeholders’ NFR inputs can be collected, and how such inputs can
                      be organized to facilitate the reconciliation activity as necessary for
                      platform  projects.  The  process  targets  the  NFR  development  of
                      software systems that are to be installed on a distributed computing
                      environment that uses a variety of computing devices for different
                      purposes  (e.g.,  database,  user  interface,  data  collection).  Simple
                      systems, such as single-user desktop software, are not the target of
                      this NFR development process. The PND process has been used for
                      defining hundreds of NFRs for a large software system; thus, the
                      techniques  described  here  are  capable  of  managing  NFRs  for
                      medium- to large-sized industrial software systems.
                         Figure 6.1 illustrates the PND process, and each activity of this
                      process is described in the sections that follow.
   207   208   209   210   211   212   213   214   215   216   217