Skip to main content

Integration of Handwritten and Generated Object-Oriented Code

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 580))

Abstract

In many development projects models are core artifacts used to generate concrete implementations from them. However, for many systems it is impossible or not useful to generate the complete software system from models alone. Hence, developers need mechanisms for integrating generated and handwritten code. Applying such mechanisms without considering their effects can cause issues in projects, where model and code artifacts are essential. Thus, a sound approach for the integration of both forms of code is needed.

In this paper, we provide an overview of mechanisms for integrating handwritten and generated object-oriented code. To compare these mechanisms, we define and apply a set of criteria. The results are intended to help model-driven development (MDD) tool developers in choosing an appropriate integration mechanism. In this extended version, we additionally discuss essential integration aspects including the protection of generated code and elaborate on how to use action languages to extend generated code.

K. Hölldobler is supported by the DFG GK/1298 AlgoSyn.

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

Buying options

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

Learn about institutional subscriptions

References

  1. France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: Future of Software Engineering, ICSE 2007, pp. 37–54. IEEE Computer Society (2007)

    Google Scholar 

  2. Kleppe, A.G., Warmer, J., Bast, W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)

    Google Scholar 

  3. Wile, D.S.: Lessons learned from real DSL experiments. In: Proceedings of the 36th Annual Hawaii International Conference on System Sciences, HICSS 2003, pp. 265–290. IEEE Computer Society (2003)

    Google Scholar 

  4. Rumpe, B.: Modellierung mit UML, 2nd edn. Springer, Heidelberg (2011)

    Book  Google Scholar 

  5. Rumpe, B.: Agile Modellierung mit UML: Codegenerierung, Testfälle, Refactoring. Springer, Heidelberg (2012)

    Book  Google Scholar 

  6. Rumpe, B., Schindler, M., Völkel, S., Weisemöller, I.: Generative software development. In: Proceedings of the 32nd International Conference on Software Engineering, ICSE 2010, pp. 473–474. ACM (2010)

    Google Scholar 

  7. Schindler, M.: Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML/P. Ph.D. thesis, RWTH Aachen University (2012)

    Google Scholar 

  8. Grönniger, H., Hartmann, J., Krahn, H., Kriebel, S., Rothhardt, L., Rumpe, B.: Modelling automotive function nets with views for features, variants, and modes. In: Proceedings of Embedded Real Time Software and Systems, ERTS 2008 (2008)

    Google Scholar 

  9. Navarro Pérez, A., Rumpe, B.: Modeling cloud architectures as interactive systems. In: 2nd International Workshop on Model-Driven Engineering for High Performance and CLoud computing, MDHPCL 2013, Miami, Florida, CEUR Workshop Proceedings, pp. 15–24 (2013)

    Google Scholar 

  10. Ringert, J.O., Rumpe, B., Wortmann, A.: From software architecture structure and behavior modeling to implementations of cyber-physical systems. In: Software Engineering 2013 Workshopband, GI, pp. 155–170. Köllen Druck+Verlag GmbH, Bonn (2013)

    Google Scholar 

  11. Kurpick, T., Pinkernell, C., Look, M., Rumpe, B.: Modeling cyber-physical systems: model-driven specification of energy efficient buildings. In: Proceedings of the Modelling of the Physical World Workshop, MOTPW 2012, pp. 2:1–2:6. ACM (2012)

    Google Scholar 

  12. Greifenberg, T., Hölldobler, K., Kolassa, C., Look, M., Mir Seyed Nazari, P., Müller, K., Navarro Perez, A., Plotnikov, D., Reiss, D., Roth, A., Rumpe, B., Schindler, M., Wortmann, A.: A comparison of mechanisms for integrating handwritten and generated code for object-oriented programming languages. In: Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, Angers, France, pp. 74–85. Scitepress (2015)

    Google Scholar 

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

    MATH  Google Scholar 

  14. Pietrek, G., Trompeter, J., Niehues, B., Kamann, T., Holzer, B., Kloss, M., Thoms, K., Beltran, J.C.F., Mork, S.: Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis. Entwickler.Press (2007)

    Google Scholar 

  15. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  16. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Boston (1995)

    MATH  Google Scholar 

  17. Eliens, A.: Principles of Object-Oriented Software Development. Addison-Wesley Longman Publishing Co., Inc., Boston (1994)

    MATH  Google Scholar 

  18. Vlissides, J.: Pattern Hatching: Design Patterns Applied. Addison-Wesley, UK (1998)

    Google Scholar 

  19. Fowler, M.: Domain Specific Languages. Addison-Wesley, Boston (2010)

    Google Scholar 

  20. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Google Scholar 

  21. Kellens, A., Mens, K., Brichau, J., Gybels, K.: Managing the evolution of aspect-oriented software with model-based pointcuts. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 501–525. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  22. Grönniger, H., Krahn, H., Rumpe, B., Schindler, M., Völkel, S.: MontiCore: a framework for the development of textual domain specific languages. In: 30th International Conference on Software Engineering, ICSE 2008, pp. 925–926. ACM (2008)

    Google Scholar 

  23. Krahn, H., Rumpe, B., Völkel, S.: MontiCore: a framework for compositional development of domain specific languages. Int. J. Softw. Tools Technol. Transf. 12, 353–372 (2010)

    Article  Google Scholar 

  24. XPand website, May 2014. http://www.eclipse.org/modeling/m2t/?project=xpand#xpand. Accessed on 13 May 2015

  25. Acceleo website, May 2014. http://www.eclipse.org/acceleo/. Accessed on 13 May 2015

  26. Rose, L.M., Paige, R.F., Kolovos, D.S., Polack, F.A.C.: The epsilon generation language. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 1–16. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  27. JET website, May 2014. http://www.eclipse.org/modeling/m2t/?project=jet#jet. Accessed on 13 May 2015

  28. Oldevik, J., Neple, T., Grønmo, R., Aagedal, J.Ø., Berre, A.-J.: Toward standardised model to text transformations. In: Hartman, A., Kreische, D. (eds.) ECMDA-FA 2005. LNCS, vol. 3748, pp. 239–253. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  29. Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2008)

    Google Scholar 

  30. Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Addison-Wesley, Boston (2009)

    Google Scholar 

  31. Petrasch, R., Meimberg, O.: Model-Driven Architecture: Eine praxisorientierte Einführung in die MDA. Dpunkt Verlag, Heidelberg (2006)

    MATH  Google Scholar 

  32. Völter, M.: A Catalog of Patterns for Program Generation, Version 1.6, April 2003. http://www.voelter.de/data/pub/ProgramGeneration.pdf. Accessed on 13 May 2015

  33. Völter, M., Bettin, J.: Patterns for Model-Driven Software-Development, Version 1.4, May 2004. http://www.voelter.de/data/pub/MDDPatterns.pdf. Accessed on 13 May 2015

  34. Groher, I., Voelter, M.: Aspect-oriented model-driven software product line engineering. In: Katz, S., Ossher, H., France, R., Jézéquel, J.-M. (eds.) Transactions on Aspect-Oriented Software Development VI. LNCS, vol. 5560, pp. 111–152. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  35. Völter, M., Groher, I.: Handling variability in model transformations and generators. In: Proceedings of the 7th OOPSLA Workshop on Domain-Specific Modeling, DSM 2007. ACM (2007)

    Google Scholar 

  36. Kang, K.C., Sugumaran, V., Park, S.: Applied Software Product Line Engineering. Auerbach Publications, Boston (2009)

    Book  Google Scholar 

  37. Dollard, K.: Code Generation in Microsoft .NET. Apress, Berkley (2004)

    Book  Google Scholar 

  38. Greenfield, J., Short, K., Cook, S., Kent, S.: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, New York (2004)

    Google Scholar 

  39. Tolvanen, J.P., Kelly, S.: MetaEdit+: defining and using integrated domain-specific modeling languages. In: Proceeding of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications, OOPSLA 2009, pp. 819–820. ACM (2009)

    Google Scholar 

  40. Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, New York (2008)

    Book  Google Scholar 

  41. Frankel, D.S.: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley, New York (2003)

    Google Scholar 

  42. LLBLGen Pro website, May 2014. http://www.llblgen.com/. Accessed on 13 May 2015

  43. Warmer, J., Kleppe, A.: Building a flexible software factory using partial domain specific models. In: Proceedings of the 6th OOPSLA Workshop on Domain-Specific Modeling, DSM 2006, pp. 15–22. ACM (2006)

    Google Scholar 

  44. Brückmann, T., Gruhn, V.: An architectural blueprint for model driven development and maintenance of business logic for information systems. In: Babar, M.A., Gorton, I. (eds.) ECSA 2010. LNCS, vol. 6285, pp. 53–69. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  45. Object Management Group website: Concrete Syntax for a UML Action Language: Action Language for Foundational UML (ALF) Version 1.0.1 (2013–09-01), May 2014. http://www.omg.org/spec/ALF/1.0.1/PDF/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Klaus Müller .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Greifenberg, T. et al. (2015). Integration of Handwritten and Generated Object-Oriented Code. In: Desfray, P., Filipe, J., Hammoudi, S., Pires, L. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2015. Communications in Computer and Information Science, vol 580. Springer, Cham. https://doi.org/10.1007/978-3-319-27869-8_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-27869-8_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-27868-1

  • Online ISBN: 978-3-319-27869-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics