developer at anytime.
Finally, a hybrid approach that uses composition
at generation- and run-time may provide a sufficient
solution to handle composition. However, it is cur-
rently not common in practice.
6 CONCLUSION
Despite the relevance of MDD code generators, there
are no common development methodologies and ap-
proaches for developing code generators product
lines. We have analyzed the common processes of
product line engineering to identify research chal-
lenges for code generator product lines. It shows that
research is needed in analyzing, designing architec-
tures, and implementing code generator product lines.
As a primary step towards an infrastructure for
code generator product lines, we have applied ideas of
variability-aware module systems to identify research
challenges. Crucial to a code generator product line
are interfaces, which contain variability, generation
information, extensions to the generated artifacts, and
different behavior of the code generator components.
This is unique to code generator product lines com-
pared to general software product lines.
We have pointed out the different forms of code
generator composition to derive requirements for a
code generator product line infrastructure. The main
requirements for a code generator product line infras-
tructure are support for incremental code generation,
specification of code generator component interfaces,
support for validation of generated code, and support
for individual semantics of a composition operator.
REFERENCES
Apel, S., Batory, D., K
¨
astner, C., , and Saake., G. (2013).
Feature-Oriented Software Product Lines: Concepts
and Implementation. Springer-Verlag.
Batory, D. and O’Malley, S. (1992). The Design and Im-
plementation of Hierarchical Software Systems with
Reusable Components. ACM Transactions on Soft-
ware Engineering and Methodology, 1(4).
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).
Bosch, J. (2000). Design and Use of Software Archi-
tectures: Adopting and Evolving a Product-line Ap-
proach. ACM Press/Addison-Wesley Publishing Co.
Brambilla, M., Cabot, J., and Wimmer, M. (2012). Model-
Driven Software Engineering in Practice. Morgan &
Claypool.
Clements, P. and Northrop, L. (2012). Software Product
Lines: Practices and Patterns. Addison-Wesley Long-
man Publishing Co., Inc.
Czarnecki, K. and Eisenecker, U. W. (2000). Genera-
tive programming: methods, tools, and applications.
ACM Press/Addison-Wesley Publishing Co.
Czarnecki, K., Eisenecker, U. W., Gl
¨
uck, R., Vandevoorde,
D., and Veldhuizen, T. L. (2000). Generative Pro-
gramming and Active Libraries. In Selected Papers
from the International Seminar on Generic Program-
ming. Springer-Verlag.
Haber, A., Ringert, J. O., and Rumpe, B. (2012). MontiArc
- Architectural Modeling of Interactive Distributed
and Cyber-Physical Systems. Technical Report AIB-
2012-03, RWTH Aachen University.
Harel, D. and Rumpe, B. (2004). Meaningful Modeling:
What’s the Semantics of ”Semantics”? Computer,
37(10).
J
¨
orges, S. (2013). Construction and Evolution of Code Gen-
erators - A Model-Driven and Service-Oriented Ap-
proach, volume 7747 of Lecture Notes in Computer
Science. Springer.
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.
K
¨
astner, C., Ostermann, K., and Erdweg, S. (2012). A
variability-aware module system. In OOPSLA.
Kulkarni, V. and Reddy, S. (2008). An Abstraction for
Reusable MDD Components: Model-based Genera-
tion of Model-based Code Generators. In Proceedings
of the 7th International Conference on Generative
Programming and Component Engineering, GPCE
’08. ACM.
Navarro P
´
erez, 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 com-
puting, volume 1118. CEUR Workshop Proceedings.
Pohl, K., B
¨
ockle, G., and Linden, F. J. v. d. (2005). Soft-
ware Product Line Engineering: Foundations, Princi-
ples and Techniques. Springer-Verlag New York, Inc.
Rumpe, B. (2013). Towards Model and Language Compo-
sition. In Proceedings of the First Workshop on the
Globalization of Domain Specific Languages, Glob-
alDSL ’13. ACM.
Singhal, V. P. (1996). A Programming Language for Writing
Domain-Specific Software System Generators. PhD
thesis, Faculty of the Graduate School of the Univer-
sity of Texas at Austin.
Smaragdakis, Y. and Batory, D. (2000). Application Gen-
erators. In in Software Engineering volume of the En-
cyclopedia of Electrical and Electronics Engineering.
John Wiley and Sons.
Spencer, H. and Collyer, G. (1992). #ifdef considered harm-
ful, or portability experience with C News. In USENIX
Summer Technical Conference.
V
¨
olter, M. and Groher, I. (2007a). Handling Variability in
Model Transformations and Generators. In Proceed-
ings of the 7th Workshop on Domain-Specific Model-
ing (DSM) at OOPSLA.
MODELSWARD2015-3rdInternationalConferenceonModel-DrivenEngineeringandSoftwareDevelopment
544