Domain models are the most important asset in widely accepted software development approaches, like Domain-Driven Design (DDD), yet those models are still implicitly represented in programs. MDE regards those models as representable entities that are amenable to automated analysis and processing, facilitating quality assurance while increasing productivity in software development processes. Although this connection is not new, very few approaches facilitate adoption of MDE tooling without compromising existing value, their data. Moreover, switching to MDE tooling usually involves re-engineering core parts of an application, hindering backward compatibility and, thereby, continuous integration, while requiring an up-front investment in training in specialized modeling frameworks.
The EMF-Syncer supports a method for reifying domain models that are implicit in JVM programs as first-order entities that can be managed and analysed with MDE technology. This allows agile practitioners to boost JVM programs with modelling practices, helping in the documentation of design decisions and in their refinement. Moreover, MDE technology can augment JVM programs with model analysis, transformation and code generation services. Application of MDE technology via the EMF-Syncer is done in a non-intrusive, backward compatible way, enabling the exploration of MDE technology, without strong design commitments nor technical debt.
The synchronization mechanism at the core of the EMF-Syncer allows pulling Java objects on demand, syncing only those excerpts of the JVM program snapshot that are used in the MDE task. Backward synchronization is done incrementally so that only those excerpts of the EMF model instance that are modified are synced back. This makes the EMF-Syncer a very suitable candidate for applying MDE technology at run time. The EMF-Syncer enables an iterative, flexible application of MDE tooling to software applications, where metamodels and models do not exist explicitly.
The complete list of publications involving the EMF-Syncer is as follows:
@inproceedings{BoronatASE19, author = {Boronat, Artur}, title = {Code-First Model-Driven Engineering: On the Agile Adoption of MDE Tooling}, booktitle = {Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019), San Diego, CA, November 11-15}, year = {2019}, publisher = {{ACM}}, webdownload = {2019-boronat-ase.pdf}, slideshare = {https://www.slideshare.net/aboronat/codefirst-modeldriven-engineeringon-the-agile-adoption-of-mde} }
@article{Boronat-2020-ttc20, author = {Boronat, Artur}, title = {EMF-Syncer solution to {TTC} 2020 round-trip migration case}, publisher = {CEUR Workshop Proceedings}, journal = {Joint Proceedings of the 13th and 14th Tool Transformation Contests}, year = {2020}, issn = {1613-0073}, volume = {3089}, webdownload = {2020-boronat-ttc.pdf}, url = {http://ceur-ws.org/Vol-3089/ttc20_paper2_Boronat.pdf} }