A Comparison of Mechanisms for Integrating Handwritten and Generated Code for Object-Oriented Programming Languages

Timo Greifenberg, Katrin Hölldobler, Carsten Kolassa, Markus Look, Pedram Mir Seyed Nazari, Klaus Müller, Antonio Navarro Perez, Dimitri Plotnikov, Dirk Reiss, Alexander Roth, Bernhard Rumpe, Martin Schindler, Andreas Wortmann

2015

Abstract

Code generation from models is a core activity in model-driven development (MDD). For complex systems it is usually impossible to generate the entire software system from models alone. Thus, MDD requires mechanisms for integrating generated and handwritten code. Applying such mechanisms without considering their effects can cause issues in projects with many model and code artifacts, where a sound integration for generated and handwritten code is necessary. We provide an overview of mechanisms for integrating generated and handwritten code for object-oriented languages. In addition to that, we define and apply criteria to compare these mechanisms. The results are intended to help MDD tool developers in choosing an appropriate integration mechanism.

References

  1. Acceleo website (2014). http://www.eclipse.org/acceleo/. Last visited on 22/09/2014.
  2. Brückmann, T. and Gruhn, V. (2010). An Architectural Blueprint for Model Driven Development and Maintenance of Business Logic for Information Systems. In Proceedings of the 4th European conference on Software architecture, ECSA 7810, pages 53-69. SpringerVerlag.
  3. Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., and Grose, T. J. (2008). Eclipse Modeling Framework. Addison-Wesley, 2nd edition.
  4. Dollard, K. (2004). Code Generation in Microsoft .NET. Apress.
  5. Eliens, A. (1994). Principles of Object-Oriented Software Development. Addison-Wesley Longman Publishing Co., Inc.
  6. Fowler, M. (2010). Domain Specific Languages. AddisonWesley.
  7. France, R. and Rumpe, B. (2007). Model-Driven Development of Complex Software: A Research Roadmap. In Future of Software Engineering, ICSE 7807, pages 37-54. IEEE Computer Society.
  8. Frankel, D. S. (2003). Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley.
  9. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional.
  10. Greenfield, J., Short, K., Cook, S., and Kent, S. (2004). Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley.
  11. Groher, I. and Voelter, M. (2009). Aspect-Oriented ModelDriven Software Product Line Engineering. In Transactions on Aspect-Oriented Software Development VI, pages 111-152. Springer-Verlag.
  12. Gronback, R. C. (2009). Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. AddisonWesley.
  13. Grönniger, H., Hartmann, J., Krahn, H., Kriebel, S., Rothhardt, L., and Rumpe, B. (2008). Modelling Automotive Function Nets with Views for Features, Variants, and Modes. In Proceedings of Embedded Real Time Software and Systems, ERTS 7808.
  14. Grönniger, H., Krahn, H., Rumpe, B., Schindler, M., and Völkel, S. (2008). MontiCore: a Framework for the Development of Textual Domain Specific Languages. In 30th International Conference on Software Engineering, ICSE 7808, pages 925-926. ACM.
  15. JET website (2014). http://www.eclipse.org/modeling/m2t/ ?project=jet#jet. Last visited on 22/09/2014.
  16. Kang, K. C., Sugumaran, V., and Park, S. (2009). Applied Software Product Line Engineering. Auerbach Publications.
  17. Kellens, A., Mens, K., Brichau, J., and Gybels, K. (2006). Managing the Evolution of Aspect-oriented Software with Model-Based Pointcuts. In Proceedings of the 20th European Conference on Object-Oriented Programming, ECOOP 7806, pages 501-525. SpringerVerlag.
  18. Kelly, S. and Tolvanen, J.-P. (2008). Domain-Specific Modeling: Enabling Full Code Generation. Wiley.
  19. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., and Irwin, J. (1997). Aspect-Oriented Programming. In European Conference on Object-Oriented Programming, ECOOP 7897, pages 220-242. Springer Verlag.
  20. Kleppe, A. G., Warmer, J., and Bast, W. (2003). MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing Co., Inc.
  21. Krahn, H., Rumpe, B., and Völkel, S. (2010). MontiCore: a Framework for Compositional Development of Domain Specific Languages. International Journal on Software Tools for Technology Transfer, pages 353- 372.
  22. Kurpick, T., Pinkernell, C., Look, M., and Rumpe, B. (2012). Modeling Cyber-Physical Systems: ModelDriven Specification of Energy Efficient Buildings. In Proceedings of the Modelling of the Physical World Workshop, MOTPW 7812, pages 2:1-2:6. ACM.
  23. LLBLGen Pro website (2014). http://www.llblgen.com/. Last visited on 22/09/2014.
  24. Navarro Pérez, A. and Rumpe, B. (2013). Modeling Cloud Architectures as Interactive Systems. In 2nd International Workshop on Model-Driven Engineering for High Performance and CLoud computing, MDHPCL 7813, pages 15-24, Miami, Florida. CEUR Workshop Proceedings.
  25. Oldevik, J., Neple, T., Grønmo, R., Aagedal, J., and Berre, A.-J. (2005). Toward Standardised Model to Text Transformations. In Proceedings of the First European conference on Model Driven Architecture: foundations and Applications, ECMDA-FA 7805, pages 239-253. Springer-Verlag.
  26. Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053-1058.
  27. Petrasch, R. and Meimberg, O. (2006). Model-Driven Architecture: Eine praxisorientierte Einführung in die MDA. Dpunkt Verlag.
  28. Pietrek, G., Trompeter, J., Niehues, B., Kamann, T., Holzer, B., Kloss, M., Thoms, K., Beltran, J. C. F., and Mork, S. (2007). Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis. Entwickler.Press.
  29. Ringert, J. O., Rumpe, B., and Wortmann, A. (2013). From Software Architecture Structure and Behavior Modeling to Implementations of Cyber-Physical Systems. In Software Engineering 2013 Workshopband, pages 155-170. GI, Köllen Druck+Verlag GmbH, Bonn.
  30. Rose, L. M., Paige, R. F., Kolovos, D. S., and Polack, F. A. (2008). The Epsilon Generation Language. In Proceedings of the 4th European conference on Model Driven Architecture: Foundations and Applications, ECMDA-FA 7808, pages 1-16. Springer-Verlag.
  31. Rumpe, B. (2011). Modellierung mit UML, volume 2nd Edition. Springer.
  32. Rumpe, B. (2012). Agile Modellierung mit UML : Codegenerierung, Testfälle, Refactoring. Springer.
  33. Rumpe, B., Schindler, M., Völkel, S., and Weisemöller, I. (2010). Generative Software Development. In Proceedings of the 32nd International Conference on Software Engineering, ICSE 7810, pages 473-474. ACM.
  34. Schindler, M. (2012). Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML/P. PhD thesis, RWTH Aachen University.
  35. Stahl, T. and Völter, M. (2006). Model-Driven Software Development: Technology, Engineering, Management. Wiley.
  36. Tolvanen, J.-P. and Kelly, S. (2009). 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 7809, pages 819-820. ACM.
  37. Vlissides, J. (1998). Pattern Hatching: Design Patterns Applied. Addison-Wesley.
  38. Völter, M. (2003). A Catalog of Patterns for Program Generation, Version 1.6. http://www.voelter.de/data/pub/ ProgramGeneration.pdf. Last visited on 22/09/2014.
  39. Völter, M. and Bettin, J. (2004). Patterns for ModelDriven Software-Development, Version 1.4. http:// www.voelter.de/data/pub/MDDPatterns.pdf. Last visited on 22/09/2014.
  40. Völter, M. and Groher, I. (2007). Handling Variability in Model Transformations and Generators. In Proceedings of the 7th OOPSLA Workshop on DomainSpecific Modeling, DSM 7807. ACM.
  41. Warmer, J. and Kleppe, A. (2006). Building a Flexible Software Factory Using Partial Domain Specific Models. In Proceedings of the 6th OOPSLA Workshop on Domain-Specific Modeling, DSM 7806, pages 15-22. ACM.
  42. Wile, D. S. (2003). Lessons Learned from Real DSL Experiments. In Proceedings of the 36th Annual Hawaii International Conference on System Sciences, HICSS 7803, pages 265-290. IEEE Computer Society.
  43. XPand website (2014). http://www.eclipse.org/modeling/ m2t/?project=xpand#xpand Last visited on 22/09/2014.
Download


Paper Citation


in Harvard Style

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. and Wortmann A. (2015). 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 - Volume 1: MODELSWARD, ISBN 978-989-758-083-3, pages 74-85. DOI: 10.5220/0005239700740085


in Bibtex Style

@conference{modelsward15,
author={Timo Greifenberg and Katrin Hölldobler and Carsten Kolassa and Markus Look and Pedram Mir Seyed Nazari and Klaus Müller and Antonio Navarro Perez and Dimitri Plotnikov and Dirk Reiss and Alexander Roth and Bernhard Rumpe and Martin Schindler and Andreas Wortmann},
title={A Comparison of Mechanisms for Integrating Handwritten and Generated Code for Object-Oriented Programming Languages},
booktitle={Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2015},
pages={74-85},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005239700740085},
isbn={978-989-758-083-3},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - A Comparison of Mechanisms for Integrating Handwritten and Generated Code for Object-Oriented Programming Languages
SN - 978-989-758-083-3
AU - Greifenberg T.
AU - Hölldobler K.
AU - Kolassa C.
AU - Look M.
AU - Mir Seyed Nazari P.
AU - Müller K.
AU - Navarro Perez A.
AU - Plotnikov D.
AU - Reiss D.
AU - Roth A.
AU - Rumpe B.
AU - Schindler M.
AU - Wortmann A.
PY - 2015
SP - 74
EP - 85
DO - 10.5220/0005239700740085