Abstract
Software product line engineering aims to reduce development time, effort, cost, and complexity by taking advantage of the commonality within a portfolio of similar products. The effectiveness of a software product line approach directly depends on how well feature variability within the portfolio is implemented and managed throughout the development lifecycle, from early analysis through maintenance and evolution. This article presents an approach that facilitates variability implementation, management, and tracing by integrating model-driven and aspect-oriented software development. Features are separated in models and composed of aspect-oriented composition techniques on model level. Model transformations support the transition from problem to solution space models. Aspect-oriented techniques enable the explicit expression and modularization of variability on model, template, and code level. The presented concepts are illustrated with a case study of a home automation system.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Anastasopoulos, M., Muthig, D.: An evaluation of aspect-oriented programming as a product line implementation technology. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 141–156. Springer, Heidelberg (2004)
AOSD Community Wiki. Glossary (2007), http://www.aosd.net/wiki/
Apel, S., Leich, T., Saake, G.: Aspectual mixin layers: aspects and features in concert. In: ICSE, pp. 122–131 (2006)
Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: An overview of CaesarJ. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)
Baniassad, E.L.A., Clarke, S.: Theme: An approach for aspect-oriented analysis and design. In: ICSE, pp. 158–167 (2004)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. In: ICSE 2003: Proceedings of the 25th International Conference on Software Engineering, Washington, DC, USA, pp. 187–197. IEEE Computer Society, Los Alamitos (2003)
Beuche, D., Spinczyk, O.: Variant management for embedded software product lines with pure: : consul and aspectc++. In: OOPSLA Companion, pp. 108–109 (2003)
BigLever. Gears (2007), http://www.biglever.com/
Chitchyan, R., Rashid, A., Sawyer, P., Garcia, A., Alarcon, M.P., Bakker, J., Tekinerdogan, B., Clarke, S., Jackson, A.: Report synthesizing state-of-the-art in aspect-oriented requirements engineering, architectures and design. Tech. Rep. AOSD-Europe Deliverable D11, AOSD-Europe-ULANC-9, Lancaster University (May 18, 2005)
Clements, P.C., Northrop, L.M.: Software Product Lines: Practices and Patterns. Addison Wesley, Reading (2001)
Coplien, J.O.: Multiparadigm Design for C++. Addison Wesley, Reading (1998)
Cottenier, T., van den Berg, A., Elrad, T.: Joinpoint inference from behavioral specification to implementation. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 476–500. Springer, Heidelberg (2007)
Czarnecki, K., Antkiewicz, M.: Mapping features to models: A template approach based on superimposed variants. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 422–437. Springer, Heidelberg (2005)
Eclipse. Eclipse modeling framework (EMF) (2007), http://www.eclipse.org/emf
Eclipse. Graphical Modeling Framework (GMF) (2007), http://www.eclipse.org/gmf/
eCos. Operating system (2007), http://ecos.sourceware.org/
Fabro, M.D.D., Valduriez, P.: Semi-automatic model integration using matching transformations and weaving models. In: SAC, pp. 963–970 (2007)
Filman, R.E., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. Addison-Wesley Longman, Amsterdam (2004)
Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. Tech. rep. (2000)
Gray, J., Lin, Y., Zhang, J.: Automating change evolution in model-driven engineering. IEEE Computer 39(2), 51–58 (2006)
Greenfield, J., Short, K., Cook, S., Kent, S.: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, Chichester (2004)
Groher, I., Voelter, M.: Expressing feature-based variability in structural models. In: Workshop on Managing Variability for Software Product Lines (2007)
Groher, I., Voelter, M.: XWeave: Models and Aspects in Concert. In: AOM 2007: Proceedings of the 10th international workshop on Aspect-oriented modeling, pp. 35–40. ACM Press, New York (2007)
Heidenreich, F., Wende, C.: Bridging the gap between features and models. In: Second Workshop on Aspect-Oriented Product Line Engineering (2007)
IBM. Rational Rose (2007), http://www-128.ibm.com/developerworks/rational/
Interactive Objects. Arcstyler (2007), http://www.interactive-objects.com/
Kannan, M., Ramesh, B.: Managing variability with traceability in product and service families. In: HICSS, p. 76 (2002)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kruchten, P.: The 4+1 view model of architecture. IEEE Software 12(6), 42–50 (1995)
Lohmann, D., Scheler, F., Tartler, R., Spinczyk, O., Schröder-Preikschat, W.: A quantitative analysis of aspects in the ecos kernel. In: EuroSys 2006: Proceedings of the ACM SIGOPS/EuroSys European Conference on Computer Systems 2006, pp. 191–204. ACM, New York (2006)
Loughran, N., Rashid, A.: Framed aspects: Supporting variability and configurability for AOP. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 127–140. Springer, Heidelberg (2004)
Maeder, P., Riebisch, M., Philippow, I.: Traceability for managing evolutionary change. In: SEDE, pp. 1–8 (2006)
Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: SIGSOFT FSE, pp. 127–136 (2004)
No Magic. Magicdraw (2007), http://www.magicdraw.com/
Object Management Group. XML Metadata Interchange (XMI) specification (2007), http://www.omg.org/mof/
Oldevik, J., Haugen, O.: Higher-order transformations for product lines. In: SPLC, pp. 243–254 (2007)
OpenArchitectureWare (2007), http://www.openarchitectureware.org
OpenArchitectureWare. User guide version 4.2 (2007), http://www.eclipse.org/gmt/oaw/doc/4.2/openArchitectureWare-42-reference.pdf
OSGi Alliance. Osgi framework (2007), http://osgi.org/
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)
Pure systems. pure::variants (2007), http://www.pure-systems.com/
Spring Framework (2007), http://www.springframework.org/
Stahl, T., Völter, M.: Model-Driven Software Development: Technology, Engineering, Management. Wiley & Sons, Chichester (2006)
Sun Microsystems. Java Enterprise Edition (2007), http://java.sun.com/javaee/
Telelogic. DOORS (2007), http://www.telelogic.com/products/doors
Voelter, M., Groher, I.: Handling variability in model transformations and generators. In: 7th OOPSLA Workshop on Domain-Specific Modeling (2007)
Voelter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Groher, I., Voelter, M. (2009). Aspect-Oriented Model-Driven Software Product Line Engineering. In: Katz, S., Ossher, H., France, R., Jézéquel, JM. (eds) Transactions on Aspect-Oriented Software Development VI. Lecture Notes in Computer Science, vol 5560. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03764-1_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-03764-1_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03763-4
Online ISBN: 978-3-642-03764-1
eBook Packages: Computer ScienceComputer Science (R0)