Towards Product Lining Model-driven Development Code Generators

Alexander Roth, Bernhard Rumpe


A code generator systematically transforms compact models to detailed code. Today, code generation is regarded as an integral part of model-driven development (MDD). Despite its relevance, the development of code generators is an inherently complex task and common methodologies and architectures are lacking. Additionally, reuse and extension of existing code generators only exist on individual parts. A systematic development and reuse based on a code generator product line is still in its infancy. Thus, the aim of this paper is to identify the mechanism necessary for a code generator product line by (a) analyzing the common product line development approach and (b) mapping those to a code generator specific infrastructure. As a first step towards realizing a code generator product line infrastructure, we present a component-based implementation approach based on ideas of variability-aware module systems and point out further research challenges.


  1. Apel, S., Batory, D., Kästner, C., , and Saake., G. (2013). Feature-Oriented Software Product Lines: Concepts and Implementation. Springer-Verlag.
  2. Batory, D. and O'Malley, S. (1992). The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology, 1(4).
  3. Batory, D., Singhal, V., Thomas, J., Dasari, S., Geraci, B., and Sirkin, M. (1994). The GenVoca Model of Software-System Generators. IEEE Software, 11(5).
  4. Bosch, J. (2000). Design and Use of Software Architectures: Adopting and Evolving a Product-line Approach. ACM Press/Addison-Wesley Publishing Co.
  5. Brambilla, M., Cabot, J., and Wimmer, M. (2012). ModelDriven Software Engineering in Practice. Morgan & Claypool.
  6. Clements, P. and Northrop, L. (2012). Software Product Lines: Practices and Patterns. Addison-Wesley Longman Publishing Co., Inc.
  7. Czarnecki, K. and Eisenecker, U. W. (2000). Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley Publishing Co.
  8. Czarnecki, K., Eisenecker, U. W., Glü ck, R., Vandevoorde, D., and Veldhuizen, T. L. (2000). Generative Programming and Active Libraries. In Selected Papers from the International Seminar on Generic Programming. Springer-Verlag.
  9. Haber, A., Ringert, J. O., and Rumpe, B. (2012). MontiArc - Architectural Modeling of Interactive Distributed and Cyber-Physical Systems. Technical Report AIB2012-03, RWTH Aachen University.
  10. Harel, D. and Rumpe, B. (2004). Meaningful Modeling: What's the Semantics of ”Semantics”? Computer, 37(10).
  11. Jö rges, S. (2013). Construction and Evolution of Code Generators - A Model-Driven and Service-Oriented Approach, volume 7747 of Lecture Notes in Computer Science. Springer.
  12. Kang, K. C., Cohen, S. G., Hess, J. A., Novak, W. E., and Peterson, A. S. (1990). Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report.
  13. Kästner, C., Ostermann, K., and Erdweg, S. (2012). A variability-aware module system. In OOPSLA.
  14. Kulkarni, V. and Reddy, S. (2008). An Abstraction for Reusable MDD Components: Model-based Generation of Model-based Code Generators. In Proceedings of the 7th International Conference on Generative Programming and Component Engineering, GPCE 7808. ACM.
  15. Navarro Pérez, A. and Rumpe, B. (2013). Modeling Cloud Architectures as Interactive Systems. In Proceedings of the 2nd International Workshop on Model-Driven Engineering for High Performance and Cloud computing, volume 1118. CEUR Workshop Proceedings.
  16. Pohl, K., Bö ckle, G., and Linden, F. J. v. d. (2005). Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc.
  17. Rumpe, B. (2013). Towards Model and Language Composition. In Proceedings of the First Workshop on the Globalization of Domain Specific Languages, GlobalDSL 7813. ACM.
  18. Singhal, V. P. (1996). A Programming Language for Writing Domain-Specific Software System Generators. PhD thesis, Faculty of the Graduate School of the University of Texas at Austin.
  19. Smaragdakis, Y. and Batory, D. (2000). Application Generators. In in Software Engineering volume of the Encyclopedia of Electrical and Electronics Engineering. John Wiley and Sons.
  20. Spencer, H. and Collyer, G. (1992). #ifdef considered harmful, or portability experience with C News. In USENIX Summer Technical Conference.
  21. V ölter, M. and Groher, I. (2007a). Handling Variability in Model Transformations and Generators. In Proceedings of the 7th Workshop on Domain-Specific Modeling (DSM) at OOPSLA.
  22. Völter, M. and Groher, I. (2007b). Product Line Implementation Using Aspect-Oriented and Model-Driven Software Development. In Proceedings of the 11th International Software Product Line Conference, SPLC 7807. IEEE Computer Society.
  23. Zschaler, S. and Rashid, A. (2011). Towards Modular Code Generators Using Symmetric Language-aware Aspects. In Proceedings of the 1st International Workshop on Free Composition, FREECO 7811. ACM.

Paper Citation

in Harvard Style

Roth A. and Rumpe B. (2015). Towards Product Lining Model-driven Development Code Generators . In Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-083-3, pages 539-545. DOI: 10.5220/0005242605390545

in Bibtex Style

author={Alexander Roth and Bernhard Rumpe},
title={Towards Product Lining Model-driven Development Code Generators},
booktitle={Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},

in EndNote Style

JO - Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - Towards Product Lining Model-driven Development Code Generators
SN - 978-989-758-083-3
AU - Roth A.
AU - Rumpe B.
PY - 2015
SP - 539
EP - 545
DO - 10.5220/0005242605390545