Managing Variability Using Heterogeneous Feature Variation Patterns

  • Imed Hammouda
  • Juha Hautamäki
  • Mika Pussinen
  • Kai Koskimies
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3442)


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.


Feature Model Software Product Line Role Type Java Implementation Artifact Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Elrad, T., Filman, R.E., Bader, A. (eds.): Communications of the ACM, vol. 44(10) (2001); Special issue on Aspect-Oriented ProgrammingGoogle Scholar
  2. 2.
    Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.M.: N degrees of separation: Multi-dimensional separation of concerns. In: Proc. ICSE 1999, Los Angeles, CA, USA, pp. 107–119. ACM Press, New York (1999)Google Scholar
  3. 3.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15, 1053–1058 (1972)CrossRefGoogle Scholar
  4. 4.
    Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-line Approach. Addison-Wesley, Reading (2000)Google Scholar
  5. 5.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)Google Scholar
  6. 6.
    Van Gurp, J., Bosch, J., Svahnberg, M.: On the notion of variability in software product lines. In: Proc. WICSA 2001, Amsterdam, The Netherlands, pp. 45–55 (2001)Google Scholar
  7. 7.
    Czarnecki, K., Eisenecker, U.: Generative Programming, Methods, Tools and Applications. Addison Wesley, Reading (2000)Google Scholar
  8. 8.
    OMG: UML WWW site (2005), at
  9. 9.
    Hakala, M., Hautamäki, J., Koskimies, K., Paakki, J., Viljamaa, A., Viljamaa, J.: Generating application development environments for java frameworks. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 163–176. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  10. 10.
    Hammouda, I., Harsu, M.: Documenting maintenance tasks using maintenance patterns. In: Proc. CSMR 2004, pp. 37–47 (2004)Google Scholar
  11. 11.
    Hammouda, I., Guldogan, O., Koskimies, K., Systä, T.: Tool-supported customization of uml class diagrams for learning complex system models. In: Proc. IWPC 2004, Bari, Italy, pp. 24–33 (2004)Google Scholar
  12. 12.
    Hammouda, I., Koskinen, J., Pussinen, M., Katara, M., Mikkonen, T.: Adaptable concern-based framework specialization in UML. In: Proc. ASE 2004, Linz, Austria, pp. 78–87 (2004)Google Scholar
  13. 13.
    Eclipse: AspectJ WWW site (2005), at
  14. 14.
    Eclipse: Eclipse WWW site (2005), at
  15. 15.
    IBM Rational: Rational software (2005), At
  16. 16.
    Jacobson, I., Griss, M., Jonsson, P.: Software Reuse - Architecture, Process and Organization for Business Success. Addison-Wesley, Reading (1997)Google Scholar
  17. 17.
    Van der Hoek, A.: Capturing product line architectures. In: Proc. ISAW-4, Limerick, Ireland, pp. 95–99 (2000)Google Scholar
  18. 18.
    Cleaveland, J.: Program Generators with XML and Java. Prentice-Hall, Englewood Cliffs (2001)Google Scholar
  19. 19.
    Loughran, N., Rashid, A., Zhang, W., Jarzabek, S.: Supporting product line evolution with framed aspects. In: ACP4IS Workshop AOSD 2004 (2004)Google Scholar
  20. 20.
    Mellor, S., Clark, A., Futagami, T.: Model-driven development. IEEE Software 20, 14–18 (2003)CrossRefGoogle Scholar
  21. 21.
    OMG: MDA guide version 1.0.1. (2003), at
  22. 22.
    Siikarla, M., Koskimies, K., Systä, T.: Open MDA using transformational patterns. In: Proc. MDAFA 2004, Linköping, Sweden, pp. 92–106 (2004)Google Scholar
  23. 23.
    Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling stepwise refinement. In: Proc. ICSE 2003, Portland, USA, pp. 187–197 (2003)Google Scholar
  24. 24.
    Clarke, S., Harrison, W., Ossher, H., Tarr, P.: Subject-oriented design: towards improved alignment of requirements, design, and code. ACM SIGPLAN Notices 34, 325–339 (1999)CrossRefGoogle Scholar
  25. 25.
    Nuseibeh, B., Kramer, J., Finkelstein, A.: A framework for expressing the relationships between multiple views in requirements specifications. Transactions on Software Engineering 20, 760–773 (1994)CrossRefGoogle Scholar
  26. 26.
    Leffingwell, D., Widrig, D.: Managing Software Requirements. Addison-Wesley, Reading (2000)Google Scholar
  27. 27.
  28. 28.
    Lago, P., Niemelä, E., Van Vliet, H.: Tool support for traceable product evolution. In: Proc. CSMR 2004, Tampere, Finland, pp. 261–269 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Imed Hammouda
    • 1
  • Juha Hautamäki
    • 1
  • Mika Pussinen
    • 1
  • Kai Koskimies
    • 1
  1. 1.Institute of Software SystemsTampere University of TechnologyTampereFinland

Personalised recommendations