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$GWVYKRPLXXT[[[GWVYKRPbFSWGL 2 Software Engineering Research Centre, Utrecht, The Netherlands JPSVMNR$WIVGRPLXXT[[[WIVGRP 3 IBM Global Services, Computerweg 8, Amersfoort, The Netherlands KVIIJLSVWX$RPMFQGSQLXXT[[[MFQGSQWIVZMGIWRP 4 Nokia Research Center, Helsinki, Finland NYLEOYYWIPE$RSOMEGSQLXXT[[[RSOMEGSQ 5 Philips Research ,IRO3FFMRO$TLMPMTWGSQ 6 University of Essen, Software Systems Engineering, Essen, Germany TSLP$MRJSVQEXMOYRMIWWIRHILXXT[[[WWIYRMIWWIRHI 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