Abstract
Code and model generators that are employed in model-driven engineering usually face challenges caused by complexity and tight coupling of generator implementations, particularly when multiple metamodels are involved. As a consequence maintenance, evolution and reuse of generators is expensive and error-prone.
We address these challenges with a two fold approach for generator composition, called GECO, which subdivides generators in fragments and modules. (1) fragments are combined utilizing megamodel patterns. These patterns are based on the relationship between base and aspect metamodel, and define that each fragment relates only to one source and target metamodel. (2) fragments are modularized along transformation aspects, such as model navigation, and metamodel semantics.
We evaluate our approach with two case studies from different domains. The obtained generators are assessed with modularity and complexity metrics, covering architecture and method level. Our results show that the generator modularity is preserved during evolution utilizing GECO.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Allen, E.B.: Measuring graph abstractions of software: an information-theory approach. In: Symposium on Software Metrics, pp. 182–193. IEEE (2002)
Allen, E.B., Gottipati, S., Govindarajan, R.: Measuring size, complexity, and coupling of hypergraph abstractions of software: an information-theory approach. Softw. Qual. J. 15(2), 179–212 (2007)
Atkinson, C., Stoll, D., Bostan, P.: Orthographic software modeling: a practical approach to view-based development. In: Maciaszek, L.A., González-Pérez, C., Jablonski, S. (eds.) ENASE 2008/2009. CCIS, vol. 69, pp. 206–219. Springer, Heidelberg (2010)
Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)
Becker, S., Koziolek, H., Reussner, R.: The Palladio component model for model-driven performance prediction. J. Syst. Softw. 82(1), 3–22 (2009)
Bennett, J., Cooper, K., Dai, L.: Aspect-oriented model-driven skeleton code generation: a graph-based transformation approach. Sci. Comput. Program. 75(8), 689–725 (2010)
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing Limited, Birmingham (2013)
Etien, A., Muller, A., Legrand, T., Paige, R.: Localized model transformations for building large-scale transformations. J. Softw. Syst. Model. 14(3), 1189–1213 (2015)
Fabro, M.D.D., Bézivin, J., Valduriez, P.: Weaving models with the Eclipse AMW plugin. In: Eclipse Modeling Symposium, Eclipse Summit Europe (2006)
Fabry, J., Dinkelaker, T., Noyé, J., Tanter, E.: A taxonomy of domain-specific aspect languages. ACM Comput. Surv. 47(3), 40:1–40:44 (2015)
Favre, J.M.: Foundations of model (driven) (reverse) engineering - episode I: story of the fidus papyrus and the solarus. In: Post-Proceedings of Dagstuhl Seminar on Model Driven Reverse Engineering (2004)
Giacinto, D., Lehrig, S.: Towards integrating Java EE into ProtoCom. In: KPDAYS, pp. 69–78 (2013)
Goerigk, W., et al.: Entwurf einer domänenspezifischen Sprache für elektronische Stellwerke (in German). In: SE 2012, LNI, vol. 198, pp. 119–130. GI (2012)
Heinrich, R., Gärtner, S., Hesse, T.M., Ruhroth, T., Reussner, R., Schneider, K., Paech, B., Jürjens, J.: A platform for empirical research on information system evolution. In: International Conference SEKE (2015)
International Electrotechnical Commission: IEC EN 61131–3, 2.0 Edn. (2003)
ISO: International Standard ISO/IEC 9126. Information technology: software product evaluation: quality characteristics and guidelines for their use (1991)
Jouault, F.: Loosely coupled traceability for ATL. In: Proceedings of the European Conference on MDA: Workshop on Traceability, pp. 29–37 (2005)
Jung, R.: GECO: generator composition for aspect-oriented generators. In: Doctoral Symposium - MODELS 2014 (2014)
Jung, R.: Replication package for GECO: a generator composition approach for aspect-oriented DSLS (2016). doi:10.5281/zenodo.46552
Jung, R.: Software package for the GECO replication package (2016). doi:10.5281/zenodo.47129
Jung, R., Heinrich, R., Schmieders, E.: Model-driven instrumentation with Kieker and Palladio to forecast dynamic applications. In: KPDAYS, pp. 99–108 (2013)
Jung, R., Heinrich, R., Schmieders, E., Strittmatter, M., Hasselbring, W.: A method for aspect-oriented meta-model evolution. In: 2. VAO Workshop, pp. 19:19–19:22. ACM (2014)
Kienzle, J., Abed, W.A., Klein, J.: Aspect-oriented multi-view modeling. In: Proceedings of the 8th ACM International Conference on Aspect-oriented Software Development, pp. 87–98. ACM (2009)
Klein, J., Kienzle, J.: Reusable aspect models. In: 11th Workshop on Aspect-Oriented Modeling, MODELS 2007 (2007)
Kramer, M.E., Kienzle, J.: Mapping aspect-oriented models to aspect-oriented code. In: Dingel, J., Solberg, A. (eds.) MODELS 2010. LNCS, vol. 6627, pp. 125–139. Springer, Heidelberg (2011)
McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. SE 2(4), 308–320 (1976)
Mehmood, A., Jawawi, D.N.: Aspect-oriented model-driven code generation: a systematic mapping study. Inf. Softw. Technol. 55, 395–411 (2013)
Mens, T., Gorp, P.V.: A taxonomy of model transformation. In: Proceedings of the International Workshop on Graph and Model Transformation, vol. 152, pp. 125–142. Elsevier (2006)
Morin, B., Klein, J., Barais, O., Jézéquel, J.M.: A generic weaver for supporting product lines. In: Proceedings of the 13th International Workshop on Early Aspects, EA 2008, pp. 11–18. ACM (2008)
OMG: Meta Object Facility (MOF) Core Specification (2006)
Rausch, A., Reussner, R., Mirandola, R., Plasil, F. (eds.): The Common Component Modeling Example. LNCS, vol. 5153. Springer, Heidelberg (2008)
Rentschler, A., Werle, D., Noorshams, Q., Happe, L., Reussner, R.: Designing information hiding modularity for model transformation languages. In: 13th International Conference on Modularity, pp. 217–228. ACM (2014)
Saada, H., Huchard, M., Nebut, C., Sahraoui, H.: Recovering model transformation traces using multi-objective optimization. In: Automated Software Engineering, pp. 688–693. IEEE (2013)
Shepperd, M.: A critique of cyclomatic complexity as a software metric. Softw. Eng. J. 3(2), 30–36 (1988)
Stahl, T., Völter, M.: Model-Driven Software Development - Technology, Engineering Management. Wiley, Hoboken (2006)
Vanhooff, B., Van Baelen, S., Hovsepyan, A., Joosen, W., Berbers, Y.: Towards a transformation chain modeling language. In: Vassiliadis, S., Wong, S., Hämäläinen, T.D. (eds.) SAMOS 2006. LNCS, vol. 4017, pp. 39–48. Springer, Heidelberg (2006)
Vanhooff, B., Baelen, S.V., Joosen, W., Berbers, E.: Traceability as input for model transformations. In: 3rd ECMDA Traceability Workshop, pp. 37–46. SINTEF (2007)
Acknowledgement
This work was supported by the DFG (German Research Foundation) under the priority program SPP 1593: Design For Future – Managed Software Evolution (grants HA 2038/4-1, RE 1674/7-1) and the Helmholtz Association of German Research Centers.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Jung, R., Heinrich, R., Hasselbring, W. (2016). GECO: A Generator Composition Approach for Aspect-Oriented DSLs. In: Van Gorp, P., Engels, G. (eds) Theory and Practice of Model Transformations. ICMT 2016. Lecture Notes in Computer Science(), vol 9765. Springer, Cham. https://doi.org/10.1007/978-3-319-42064-6_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-42064-6_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-42063-9
Online ISBN: 978-3-319-42064-6
eBook Packages: Computer ScienceComputer Science (R0)