Managing Variability Using Heterogeneous Feature Variation Patterns

Feature-driven variability is viewed as an instance of multi-dimensional separation of concerns. We argue that feature variation concerns can be presented as pattern-like entities – called feature variation patterns – cross-cutting heterogeneous artifacts. We show that a feature variation pattern, covering a wide range of artifact types from a feature model to implementation, can be used to manage feature-driven variability in a software development process. A prototype tool environment has been developed to demonstrate the idea, supporting the specification and use of heterogeneous feature variation patterns. We illustrate the idea with a small example taken from J2EE, and further study the practical applicability of the approach in an industrial product-line.

[1]  Kai Koskimies,et al.  Generating Application Development Environments for Java Frameworks , 2001, GCSE.

[2]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[3]  Imed Hammouda,et al.  Tool-supported customization of UML class diagrams for learning complex system models , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[4]  Mika Siikarla,et al.  Open MDA Using Transformational Patterns , 2004, MDAFA.

[5]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[6]  Jan Bosch Generative and Component-Based Software Engineering , 2001, Lecture Notes in Computer Science.

[7]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[8]  Tony Clark,et al.  Model-driven development - Guest editor's introduction , 2003 .

[9]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

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

[11]  Tommi Mikkonen,et al.  Adaptable concern-based framework specialization in UML , 2004 .

[12]  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).

[13]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[14]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Imed Hammouda,et al.  Documenting maintenance tasks using maintenance patterns , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[16]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[17]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

[18]  Dean Leffingwell,et al.  Managing software requirements: a unified approach , 1999 .

[19]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[20]  J. Craig Cleaveland Program Generators with XML and Java , 2001 .

[21]  Eila Niemelä,et al.  Tool support for traceable product evolution , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[22]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[23]  Weishan Zhang,et al.  Supporting Product Line Evolution with Framed Aspects , 2004 .

[24]  Siobhán Clarke,et al.  Subject-oriented design: towards improved alignment of requirements, design, and code , 1999, OOPSLA '99.