Empowering development teams to deliver more complex functionality in a more effective and platform independent way.
Needed knowledge
Basic knowledge about programming and object models.
What attendees will learn:
How to use MCore open source tooling to start using ECore and OCL to empower developers without previous knowledge about Eclipse and Java.
Abstract
In 2001 me and a group of friends where surprised by the internet startup meltdown. Our own university spin-off in the area of Domain Specific Languages (DSLs) was all of the sudden without funding and clients. We reacted as follows:
1- all our tooling was changed to simply use Eclipse Modeling Frameworks (EMF), rather than inventing own stuff
(This tooling is now licensed as EPL 2.0 at www.montages.com/mcore.html and hosted on GitLab at https://gitlab.com/m-core/mcore)
2- we fully concentrated on domain modeling for business, based on tabular and diagrammatic descriptions.
Both DSLs and supporting developers where out of scope for two decades. The EMF based tooling to model and prototype for business was developed and used in the background, while I and my friends served in the financial industry as business analysts, business architect, and finally product owners in agile based setups.
The agile focus on code delivery forced me to apply the tooling to empower development teams independent of location, and thanks to EMF, the connect with developers was recreated in no time. Now my main focus is on empowering developers.
I show on a number of examples how I am defining model based change requests (CRs) for a team of 9 .net/C#, Angular, Android and iOS developers using EMF tooling. The CI/CD for all platform leverages GitLab AutoDevOps, and we use object models as a lingua franca to define data models, application models, APIs, JSON messages, and whatever comes around in an environment of constantly changing requirements.
The developers feel relieved from too fine granular requirements on a class and feature level, enjoying coarse-grained model based change request (CRs). We have only scratched the possibilities to leverage in the CRs the use of the generated ECore + OCL based models of structures, static and dynamic semantics, as well as example and test data, as well as tabular visualizing GUIs. Just screenshots of the object models and prototype GUIs with Data, before and after the CR are enlightening for the developers. The fact that EMF allows to both interpret the models, or generate applications from them is key in this fast changing environment.
Our 20 years fine tuning MCore features for the automation of setup, maintenance, and integration of models, business rules, example and test data/objects, as well as tabular GUIs and diagrams showing both classes and objects together - every single feature we once developed to be used in business analysis for financial industry seems to be key while working with the developers. Everything since 2001 is based on EMF, and the tool is fully bootstrapped to provide a max of stability and a minimum of maintenance efforts.
Credits.
This work was possible due to a long term collaboration with ex-Borland/together architects including Michael Golubev, the team lead of the GMF tooling project. Recently Alexey Shatilov took over from Guillaume Hillairet as lead developer in our open source project. The innovations presented in this talk have not been published previously, and are combining the work of my teachers Niklaus Wirth (leveraging his bootstrapping work) and Yuri Gurevich (leveraging his Abstract State Machines work for dynamic semantics of models). Further many of the ideas come from an intense collaboration with Michael Guttman, David Zenie, and David Frankel, who designed a number of OMG and ISO standards that can now be used and further developed in our tooling. Our leveraging of EMF would not have been possible without the close collaboration with Eike Stepper and Ed Merks. Last but not least, my thanks goes to long term contributors Mario Bender and Marc Moser, who invented and created large parts of the functionality.