Abstract

Model-driven development (MDD) tools based on the Eclipse Modeling Framework (EMF) typically store all elements in a model in a single file which arguably is one of the main reasons why these tools do not scale well and cannot take advantage of existing code versioning systems and other related facilities such as Git and Make. In this work, we describe an approach for storing models in multiple files. We argue that EMF-based MDD tools can benefit significantly from this file-level modularity not only by improving the performance and scalability of basic model operations, but also by simplifying many model management activities through the use of existing code versioning systems and build automation tools. We introduce a domain-specific language that allows defining, at the metamodel level: (1) the mapping between models’ elements and the file structure for model storage and (2) the dependencies between model elements that affect the code generation and compilation (if the integration with code-based tools is required). Our suite then generates an API and scripts to provide support for file-level modularity and facilitate using code-based versioning and build tools. We have used our DSL in the context of Papyrus-RT, an MDD tool for real-time and embedded software, and show how file-level modularity can (1) substantially improve performance and scalability of load and save operations, (2) enable collaborative model development, and (3) facilitate MDD-specific activities such as model comparison and incremental code generation. Our implementation and the models used for evaluation are publicly available.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call