Scalability of Variability Management: An Example of Industrial Practice and Some Improvements

Having set up reusable core assets for a Software Product Line (SPL), it is a common practice to apply Variation Techniques (VTs) to manage variant features. As each VT can handle only certain types of variability, multiple VTs are often employed, such as conditional compilation, configuration parameters or build tools. Our earlier study of an SPL at Fudan Wingsoft Ltd revealed potential scalability problems of multiple VTs. As a remedy to the above problems, in the follow-up study we replaced multiple VTs originally used in the Fudan Wingsoft product line, with a single, uniform VT of XML-based Variant Configuration Language (XVCL). This paper provides a proofof-concept that commonly used variation techniques can indeed be superseded by a subset of XVCL, in a simple and natural way. We describe the essence of the XVCL solution, and evaluate the benefits and trade-offs involved in multiple VTs solution and single VT XVCL solution. KeywordsGenerative technique; Software Product Line; Variability management

[1]  Stan Jarzabek,et al.  Effective Software Maintenance and Evolution - A Reuse-Based Approach , 2007 .

[2]  Marco Sinnema,et al.  Experiences in Software Product Families: Problems and Issues During Product Derivation , 2004, SPLC.

[3]  Stan Jarzabek,et al.  Increasing usability of preprocessing for feature management in product lines with queries , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[4]  Sven Apel,et al.  A Case Study Implementing Features Using AspectJ , 2007, 11th International Software Product Line Conference (SPLC 2007).

[5]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[6]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[8]  P. Bassctt Framing software reuse - lessons from real world , 1997 .

[9]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[10]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[11]  Stan Jarzabek,et al.  A Case Study of Variation Mechanism in an Industrial Product Line , 2009, ICSR.

[12]  Sven Apel,et al.  FEATUREHOUSE: Language-independent, automated software composition , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[13]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[14]  Weishan Zhang,et al.  XVCL: XML-based variant configuration language , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..