Abstract
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.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Elrad, T., Filman, R.E., Bader, A. (eds.): Communications of the ACM, vol. 44(10) (2001); Special issue on Aspect-Oriented Programming
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)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15, 1053–1058 (1972)
Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-line Approach. Addison-Wesley, Reading (2000)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)
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)
Czarnecki, K., Eisenecker, U.: Generative Programming, Methods, Tools and Applications. Addison Wesley, Reading (2000)
OMG: UML WWW site (2005), at http://www.uml.org/
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)
Hammouda, I., Harsu, M.: Documenting maintenance tasks using maintenance patterns. In: Proc. CSMR 2004, pp. 37–47 (2004)
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)
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)
Eclipse: AspectJ WWW site (2005), at http://eclipse.org/aspectj/
Eclipse: Eclipse WWW site (2005), at http://www.eclipse.org
IBM Rational: Rational software (2005), At http://www-306.ibm.com/software/rational/
Jacobson, I., Griss, M., Jonsson, P.: Software Reuse - Architecture, Process and Organization for Business Success. Addison-Wesley, Reading (1997)
Van der Hoek, A.: Capturing product line architectures. In: Proc. ISAW-4, Limerick, Ireland, pp. 95–99 (2000)
Cleaveland, J.: Program Generators with XML and Java. Prentice-Hall, Englewood Cliffs (2001)
Loughran, N., Rashid, A., Zhang, W., Jarzabek, S.: Supporting product line evolution with framed aspects. In: ACP4IS Workshop AOSD 2004 (2004)
Mellor, S., Clark, A., Futagami, T.: Model-driven development. IEEE Software 20, 14–18 (2003)
OMG: MDA guide version 1.0.1. (2003), at http://www.omg.org/docs/omg/03-06-01.pdf
Siikarla, M., Koskimies, K., Systä, T.: Open MDA using transformational patterns. In: Proc. MDAFA 2004, Linköping, Sweden, pp. 92–106 (2004)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling stepwise refinement. In: Proc. ICSE 2003, Portland, USA, pp. 187–197 (2003)
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)
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)
Leffingwell, D., Widrig, D.: Managing Software Requirements. Addison-Wesley, Reading (2000)
IBM Rational: Rational RequisitePro. (2005), at http://www3.software.ibm.com/ibmdl/pub/software/rational/web/datasheets/version6/reqpro.pdf
Lago, P., Niemelä, E., Van Vliet, H.: Tool support for traceable product evolution. In: Proc. CSMR 2004, Tampere, Finland, pp. 261–269 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hammouda, I., Hautamäki, J., Pussinen, M., Koskimies, K. (2005). Managing Variability Using Heterogeneous Feature Variation Patterns. In: Cerioli, M. (eds) Fundamental Approaches to Software Engineering. FASE 2005. Lecture Notes in Computer Science, vol 3442. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31984-9_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-31984-9_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25420-1
Online ISBN: 978-3-540-31984-9
eBook Packages: Computer ScienceComputer Science (R0)