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.