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