F. van der Linden (Ed.): PFE-4 2001, LNCS 2290, pp. 13–21, 2002.
© Springer-Verlag Berlin Heidelberg 2002
Variability Issues in Software Product Lines
Jan Bosch
1
, Gert Florijn
2
, Danny Greefhorst
3
,
Juha Kuusela
4
, J. Henk Obbink
5
, and Klaus Pohl
6
1
University of Groningen, Dept. of Computing Science, Groningen, The Netherlands.
FER&SWGL$GWVYKRPLXXT[[[GWVYKRPbFSWGL
2
Software Engineering Research Centre, Utrecht, The Netherlands
JPSVMNR$WIVGRPLXXT[[[WIVGRP
3
IBM Global Services, Computerweg 8, Amersfoort, The Netherlands
KVIIJLSVWX$RPMFQGSQLXXT[[[MFQGSQWIVZMGIWRP
4
Nokia Research Center, Helsinki, Finland
NYLEOYYWIPE$RSOMEGSQLXXT[[[RSOMEGSQ
5
Philips Research
,IRO3FFMRO$TLMPMTWGSQ
6
University of Essen, Software Systems Engineering, Essen, Germany
TSLP$MRJSVQEXMOYRMIWWIRHILXXT[[[WWIYRMIWWIRHI
Abstract. Software product lines (or system families) have achieved consider-
able adoption by the software industry. A software product line captures the
commonalities between a set of products while providing for the differences.
Differences are managed by delaying design decisions, thereby introducing
variation points. The whole of variation points is typically referred to as the
variability of the software product line. Variability management is, however, not
a trivial activity and several issues exist, both in general as well as specific to
individual phases in the lifecycle. This paper identifies and describes several
variability issues based on practical experiences and theoretical understanding
of the problem domain.
1 Introduction
Software product lines (or system families) provide a highly successful approach to
strategic reuse of assets within an organization. A standard software product line con-
sists of a product line architecture, a set of software components and a set of products.
A product consists of a product architecture, derived from the product line architec-
ture, a set of selected and configured product line components and product specific
code.
Software product lines come in many different forms. In some cases, the architec-
ture of the product line is used by all products without being adapted, whereas in other
cases the product architectures may deviate substantially. Similarly, in certain cases,
there is exactly one, configurable, component implementation associated with each