4.1 Identify Core Issues of Variability
Management
In this section, we present the core issues (including
sub issues) of variability management which are
• Variability identification
• Variability Representation
• Variability Realization
• Product Instantiation
• Dependency Management
4.1.1 Variability Identification
Variability identification is the first step in
variability management which includes
identification of variation points between products
(de Oliveira et al, 2005),(Mohan and Ramesh,
2002).Early variability identification in the life cycle
leads to better customization and improves company
economy by increasing products variety effectively
(Theil and Heindel, 2002).
Identification of variability includes
identification of all causes of variability. Frequently
reported causes of variations are
1. Change in market strategy, business needs or
advances in technology (Ajila et al, 2004),
(Faheem and Luis, 2007).
2. Stakeholders of the product line often have
conflicting requirements which is a main
source of variations, (Bayer. and Widden,
2001), (Ajila etal, 2004), thus these sources
along with their requirements should also be
identified.
3. Step wise extension of new requirements
may introduce new variants (Riebisch and
Plilippow, 2001).These variants should be
identified as early as possible to avoid the
architectural degeneration of product lines.
4. Evolution aspects within a product because it
helps to decide about timely incorporation of
a new member into product line
(Jirapanthong and Zisman, 2005).
4.1.2 Variability Representation
The explicit representation of variability is proven to
be essential in managing product line variability
(Sinnema etal, 2004), (Jaring and Bosch, 2002).
There are many ways to represent variability such as
feature models, meta models, ontology of variability
and UML notations. (Vangurp etal, 2000), (Metzger
and Pohl, 2006), (Theil and Heindel, 2002),( Mohan
and Ramesh ,2003).
Literature survey reveals that different modeling
approaches have been proposed by authors to
represent variability in different phases. E.g. feature
modeling approaches are used to represent
variability in problem space (Becker, 2003) whereas
variability representation in design and architectural
level is discussed by (Theil and Heindel, 2002),
(Bachmann and Bass, 2001).
Jaring and Bosch (2002) indicate that although,
variability representation is central to variability
management, no standard notation is available and
there is a lack of common frame of reference for
variability representation.
4.1.3 Variability Realization
Variability realization is done at the implementation
level. During variability realization, impact of
variations on different software assets are
understood and such variations are supported
through appropriate implementation mechanisms
(Becker, 2003).Variability realization includes
variation points, their associated variants, effects of
variants on variation points and tasks attached to an
individual variant point (Kim et al, 2005).In other
words, variability realization involves details of
variability so that complex dependencies between
different variations are comprehensible(Mohan and
Ramesh,2003).
Literature suggests various implementation
mechanisms to realize variability (Bachman and
Bass, 2001).Becker (2003) emphasizes that
variability realization is an important factor of
variability management as it ensures variability
implementation into product lines. Bosch et al,
(2004) illustrates the importance of variability
realization and concludes that without variability
realization it is difficult to see the impacts of
changes – which is essential for efficient and
effective change management.
4.1.4 Product Instantiation
Products instantiation is a way to promote product
variety for which reusability is known as a viable
approach. However, sometimes products
instantiation is not fully supported by reuse of core
assets due to application specific variability.(Bayer,
and Widden, 2001),(Kim, et al. 2005) which is
important to manage in order to deliver products that
are truly representative of customers’ requirements
but for product instantiation, reusability approach
has two pitfalls which are” Identification of reusable
components” and “selection of appropriate
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
240