EMF-Syncer: from Java snapshots to EMF data views and back-again

02 May 2022 - Artur Boronat -

The EMF-Syncer facilitates the adoption of Model-Driven Engineering (MDE) techniques, implemented atop the Eclipse Modeling Framework (EMF), in JVM programs following an agile software development approach. Given a JVM program implementing some domain model, the EMF-Syncer automatically extracts in-memory snapshots of the system as EMF model instances enabling the application of EMF-based MDE tools and techniques.

EMF-Syncer supports the notion of view models, where a (view) model is constructed from the program and is populated from program snapshots directly, without having to rely on a pre-process stage of obtaining models, before creating views.

Any modification to the model instance can be synced back automatically to the Java program.

emf-syncer logo

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.

Why to use EMF-Syncer?

Publications

The complete list of publications involving the EMF-Syncer is as follows: