Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Proceedings of the 25th International Conference on Software Engineering
Effective Software Maintenance
Effective Software Maintenance
Industrial experience with building a web portal product line using a lightweight, reactive approach
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
A Case Study Implementing Features Using AspectJ
SPLC '07 Proceedings of the 11th International Software Product Line Conference
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
A Synchronizing Technique for Syntactic Model-Code Round-Trip Engineering
ECBS '08 Proceedings of the 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems
Model Synchronisation: Definitions for Round-Trip Engineering
ICMT '08 Proceedings of the 1st international conference on Theory and Practice of Model Transformations
Hi-index | 0.01 |
Developers tend to use models and generators during initial development, but often abandon them later in software evolution and reuse. One reason for that is that code generated from models (e.g., UML) is often manually modified, and changes cannot be easily propagated back to models. Once models become out of sync with code, any future re-generation of code overrides manual modifications. We propose a flexible generator solution that alleviates the above problem. The idea is to let developers weave arbitrary manual modifications into the generation process, rather than modify already generated code. A flexible generator stores specifications of manual modifications in executable form, so that weaving can be automatically re-done any time code is regenerated from modified models. In that way, models and manual modification can evolve independently but in sync with each other, and the generated code never gets directly changed. As a proof of concept, we have already built a flexible generator prototype by a merger of conventional generation system and variability technique to handle manual modifications. We believe a flexible generator approach alleviates an important problem that hinders wide spread adoption of MDD in software practice.