Page 210 - Software and Systems Requirements Engineering in Practice
P. 210
176 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
teve was assigned as a requirements engineer on a project that
was developing a new platform for real-time control systems.
SAlthough he had worked on platform projects before, he had not
worked with so many different stakeholders. The stakeholders came
from the different business divisions who were planning to develop
their future applications on the platform. In some cases these divisions
were former companies that were acquired by his company, and they
had previously competed with each other. Steve began to sense that
the stakeholders were competing to promote their features to be
developed earliest in the platform project, and they were attempting
to influence the platform development schedule. He realized that this
project would not necessarily be technically challenging, but it would
be very difficult to manage the requirements coming from so many
competing stakeholders.
This chapter deals with how to carry out requirements engineering
when developing software platforms. It describes some of the
challenges that arise when developing the platforms. In order to
address these issues, a practical approach is presented for how to
unify, normalize, and reconcile the nonfunctional requirements in the
platform development.
6.1 Background
Software product lines have been an active area of software systems
engineering for the past few years [Clements et al. 2002]. Building a
product line on top of a common platform with shared services is
commonly practiced in many industries. For example, the use of
platforms has been widely practiced in the automobile industry, where
a standard drive train and body are used for multiple models and
variations of automobiles. One may read automobile model reviews
with statements like, “a new ES 350 will grace the Lexus lineup for the
2007 model year, sharing its platform with the Toyota Camry.” “Of
course, Lexus doesn’t want you to think of the ES 350 as an upscale
Camry, but as a full-scale luxury car.”
Siemens has initiated a number of development projects using
software product line concepts that are referred to as “platform
initiatives.” In this case, a platform refers to a common set of lower-level
software services such as operating system and middleware.
Applications are written on top of the platform to create products within
one or more product lines for potentially differing business units. For
example, the Building Automation System (BAS) project described in
[Sangwan et al. 2007] required that multiple application disciplines be
integrated to run on a single workstation platform. The applications
were developed by different business organizations, at different
development sites, with different skills, and for different domains.