Code-First Model-Driven Engineering: On the Agile Adoption of MDE Tooling
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. Model-Driven Engineering (MDE) regards those models as first-order citizens 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. In those approaches that overcome the previous problem, there is no clear indication - from a quantitative point of view - of the extent to which adopting state-of-the-art MDE practices and tooling is feasible or advantageous.
In this work, we advocate a code-first approach to modeling through an approach for applying MDE techniques and tools to existing object-oriented software applications that fully preserves the semantics of the original application, which need not be modified. Our approach consists both of a semi-automated method for specifying explicit view models out of existing object-oriented applications and of a conservative extension mechanism that enables the use of such view models at run time, where view model queries are resolved on demand and view model updates are propagated incrementally to the original application. This mechanism enables an iterative, flexible application of MDE tooling to software applications, where metamodels and models do not exist explicitly. An evaluation of this extension mechanism, implemented for Java applications and for view models atop the Eclipse Modeling Framework (EMF), has been conducted with an industry benchmark for decision support systems, analyzing performance and scalability of the synchronization mechanism. Backward propagation of large updates over very large views is instant.
Thu 14 Nov
13:40 - 15:20: Papers - Models and Logs at Hillcrest Chair(s): Timo KehrerHumboldt-Universtität zu Berlin | ||||||||||||||||||||||||||||||||||||||||||
13:40 - 14:00 Talk | Statistical Log Differencing Lingfeng BaoInstitute of Information Engineering, Chinese Academy of Sciences, Nimrod BusanyTel Aviv University, David LoSingapore Management University, Shahar MaozTel Aviv University Pre-print | |||||||||||||||||||||||||||||||||||||||||
14:00 - 14:20 Talk | Logzip: Extracting Hidden Structures via Iterative Clustering for Log Compression Jinyang LiuSun Yat-Sen University, Jieming ZhuHuawei Noah's Ark Lab, Shilin HeChinese University of Hong Kong, Pinjia HeETH Zurich, Zibin ZhengSun Yat-Sen University, Michael LyuThe Chinese University of Hong Kong | |||||||||||||||||||||||||||||||||||||||||
14:20 - 14:40 Talk | Code-First Model-Driven Engineering: On the Agile Adoption of MDE Tooling Artur BoronatUniversity of Leicester | |||||||||||||||||||||||||||||||||||||||||
14:40 - 15:00 Talk | Size and Accuracy in Model Inference Nimrod BusanyTel Aviv University, Shahar MaozTel Aviv University, Yehonatan YulazariTel Aviv University Pre-print | |||||||||||||||||||||||||||||||||||||||||
15:00 - 15:10 Demonstration | PMExec: An Execution Engine of Partial UML-RT Models Mojtaba BagherzadehQueen's University, Karim JahedQueen's University, Nafiseh KahaniQueen's University, Juergen DingelQueen's University, Kingston, Ontario Pre-print | |||||||||||||||||||||||||||||||||||||||||
15:10 - 15:20 Demonstration | mCUTE: A Model-level Concolic Unit Testing Engine for UML State Machines Reza AhmadiQueen's University, Karim JahedQueen's University, Juergen DingelQueen's University, Kingston, Ontario |