Skip to main content

2015 | OriginalPaper | Buchkapitel

Integration of Handwritten and Generated Object-Oriented Code

verfasst von : 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

Erschienen in: Model-Driven Engineering and Software Development

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literatur
1.
Zurück zum Zitat 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) 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)
2.
Zurück zum Zitat Kleppe, A.G., Warmer, J., Bast, W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing Co., Inc., Boston (2003) Kleppe, A.G., Warmer, J., Bast, W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
3.
Zurück zum Zitat 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) 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)
4.
Zurück zum Zitat Rumpe, B.: Modellierung mit UML, 2nd edn. Springer, Heidelberg (2011)CrossRef Rumpe, B.: Modellierung mit UML, 2nd edn. Springer, Heidelberg (2011)CrossRef
5.
Zurück zum Zitat Rumpe, B.: Agile Modellierung mit UML: Codegenerierung, Testfälle, Refactoring. Springer, Heidelberg (2012)CrossRef Rumpe, B.: Agile Modellierung mit UML: Codegenerierung, Testfälle, Refactoring. Springer, Heidelberg (2012)CrossRef
6.
Zurück zum Zitat 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) 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)
7.
Zurück zum Zitat Schindler, M.: Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML/P. Ph.D. thesis, RWTH Aachen University (2012) Schindler, M.: Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML/P. Ph.D. thesis, RWTH Aachen University (2012)
8.
Zurück zum Zitat 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) 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)
9.
Zurück zum Zitat 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) 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)
10.
Zurück zum Zitat 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) 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)
11.
Zurück zum Zitat 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) 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)
12.
Zurück zum Zitat 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) 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)
13.
Zurück zum Zitat Stahl, T., Völter, M.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, UK (2006)MATH Stahl, T., Völter, M.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, UK (2006)MATH
14.
Zurück zum Zitat 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) 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)
15.
Zurück zum Zitat Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRef Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRef
16.
Zurück zum Zitat Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Boston (1995)MATH Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Boston (1995)MATH
17.
Zurück zum Zitat Eliens, A.: Principles of Object-Oriented Software Development. Addison-Wesley Longman Publishing Co., Inc., Boston (1994)MATH Eliens, A.: Principles of Object-Oriented Software Development. Addison-Wesley Longman Publishing Co., Inc., Boston (1994)MATH
18.
Zurück zum Zitat Vlissides, J.: Pattern Hatching: Design Patterns Applied. Addison-Wesley, UK (1998) Vlissides, J.: Pattern Hatching: Design Patterns Applied. Addison-Wesley, UK (1998)
19.
Zurück zum Zitat Fowler, M.: Domain Specific Languages. Addison-Wesley, Boston (2010) Fowler, M.: Domain Specific Languages. Addison-Wesley, Boston (2010)
20.
Zurück zum Zitat 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) 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)
21.
Zurück zum Zitat 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) CrossRef 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) CrossRef
22.
Zurück zum Zitat 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) 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)
23.
Zurück zum Zitat 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)CrossRef 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)CrossRef
26.
Zurück zum Zitat 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) CrossRef 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) CrossRef
28.
Zurück zum Zitat 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) CrossRef 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) CrossRef
29.
Zurück zum Zitat Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2008) Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2008)
30.
Zurück zum Zitat Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Addison-Wesley, Boston (2009) Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Addison-Wesley, Boston (2009)
31.
Zurück zum Zitat Petrasch, R., Meimberg, O.: Model-Driven Architecture: Eine praxisorientierte Einführung in die MDA. Dpunkt Verlag, Heidelberg (2006)MATH Petrasch, R., Meimberg, O.: Model-Driven Architecture: Eine praxisorientierte Einführung in die MDA. Dpunkt Verlag, Heidelberg (2006)MATH
34.
Zurück zum Zitat 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) CrossRef 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) CrossRef
35.
Zurück zum Zitat 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) 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)
36.
Zurück zum Zitat Kang, K.C., Sugumaran, V., Park, S.: Applied Software Product Line Engineering. Auerbach Publications, Boston (2009) CrossRef Kang, K.C., Sugumaran, V., Park, S.: Applied Software Product Line Engineering. Auerbach Publications, Boston (2009) CrossRef
37.
Zurück zum Zitat Dollard, K.: Code Generation in Microsoft .NET. Apress, Berkley (2004)CrossRef Dollard, K.: Code Generation in Microsoft .NET. Apress, Berkley (2004)CrossRef
38.
Zurück zum Zitat Greenfield, J., Short, K., Cook, S., Kent, S.: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, New York (2004) Greenfield, J., Short, K., Cook, S., Kent, S.: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, New York (2004)
39.
Zurück zum Zitat 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) 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)
40.
Zurück zum Zitat Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, New York (2008) CrossRef Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, New York (2008) CrossRef
41.
Zurück zum Zitat Frankel, D.S.: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley, New York (2003) Frankel, D.S.: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley, New York (2003)
43.
Zurück zum Zitat 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) 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)
44.
Zurück zum Zitat 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) CrossRef 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) CrossRef
Metadaten
Titel
Integration of Handwritten and Generated Object-Oriented Code
verfasst von
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
Copyright-Jahr
2015
DOI
https://doi.org/10.1007/978-3-319-27869-8_7