Skip to main content

GECO: A Generator Composition Approach for Aspect-Oriented DSLs

  • Conference paper
  • First Online:
Theory and Practice of Model Transformations (ICMT 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9765))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Allen, E.B.: Measuring graph abstractions of software: an information-theory approach. In: Symposium on Software Metrics, pp. 182–193. IEEE (2002)

    Google Scholar 

  2. 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)

    Article  Google Scholar 

  3. 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)

    Chapter  Google Scholar 

  4. Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)

    Book  MATH  Google Scholar 

  5. Becker, S., Koziolek, H., Reussner, R.: The Palladio component model for model-driven performance prediction. J. Syst. Softw. 82(1), 3–22 (2009)

    Article  Google Scholar 

  6. 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)

    Article  MATH  Google Scholar 

  7. Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing Limited, Birmingham (2013)

    Google Scholar 

  8. 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)

    Article  Google Scholar 

  9. Fabro, M.D.D., Bézivin, J., Valduriez, P.: Weaving models with the Eclipse AMW plugin. In: Eclipse Modeling Symposium, Eclipse Summit Europe (2006)

    Google Scholar 

  10. 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)

    Article  Google Scholar 

  11. 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)

    Google Scholar 

  12. Giacinto, D., Lehrig, S.: Towards integrating Java EE into ProtoCom. In: KPDAYS, pp. 69–78 (2013)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. International Electrotechnical Commission: IEC EN 61131–3, 2.0 Edn. (2003)

    Google Scholar 

  16. ISO: International Standard ISO/IEC 9126. Information technology: software product evaluation: quality characteristics and guidelines for their use (1991)

    Google Scholar 

  17. Jouault, F.: Loosely coupled traceability for ATL. In: Proceedings of the European Conference on MDA: Workshop on Traceability, pp. 29–37 (2005)

    Google Scholar 

  18. Jung, R.: GECO: generator composition for aspect-oriented generators. In: Doctoral Symposium - MODELS 2014 (2014)

    Google Scholar 

  19. Jung, R.: Replication package for GECO: a generator composition approach for aspect-oriented DSLS (2016). doi:10.5281/zenodo.46552

  20. Jung, R.: Software package for the GECO replication package (2016). doi:10.5281/zenodo.47129

  21. Jung, R., Heinrich, R., Schmieders, E.: Model-driven instrumentation with Kieker and Palladio to forecast dynamic applications. In: KPDAYS, pp. 99–108 (2013)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. Klein, J., Kienzle, J.: Reusable aspect models. In: 11th Workshop on Aspect-Oriented Modeling, MODELS 2007 (2007)

    Google Scholar 

  25. 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)

    Chapter  Google Scholar 

  26. McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. SE 2(4), 308–320 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  27. Mehmood, A., Jawawi, D.N.: Aspect-oriented model-driven code generation: a systematic mapping study. Inf. Softw. Technol. 55, 395–411 (2013)

    Article  Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Google Scholar 

  30. OMG: Meta Object Facility (MOF) Core Specification (2006)

    Google Scholar 

  31. Rausch, A., Reussner, R., Mirandola, R., Plasil, F. (eds.): The Common Component Modeling Example. LNCS, vol. 5153. Springer, Heidelberg (2008)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. 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)

    Google Scholar 

  34. Shepperd, M.: A critique of cyclomatic complexity as a software metric. Softw. Eng. J. 3(2), 30–36 (1988)

    Article  Google Scholar 

  35. Stahl, T., Völter, M.: Model-Driven Software Development - Technology, Engineering Management. Wiley, Hoboken (2006)

    MATH  Google Scholar 

  36. 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)

    Chapter  Google Scholar 

  37. 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)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Reiner Jung .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics