Model-driven engineering delivers the productivity gains, increased quality levels, platform independence and improved understanding demanded to develop large and complex software systems. Modeling languages, modeling environments and transformations will gradually be introduced in software engineering process to shift from a document-centric to a model-centric development approach. This requires the process itself to be properly designed. Read on to learn about the latest advances in the field of model-driven engineering that addresses this problem; language architecture!
Starting in the early years of this century, Altran has step-by-step been developing its model-driven engineering competence. Initially by introduction of a model-based development approach on UML, where models only fulfil a supporting role in the engineering process, that was gradually shifted towards a model-driven engineering approach. Models no longer are only supporting the engineering process, instead they became the primary artefacts within the engineering process.
In recent years, more than a handful of model driven engineering facilities have been developed for Altran clients. These facilities in general offer a modeling environment in which the client’s engineers can express models of the (software) systems under development in a Domain Specific Language. These languages are so specific to a limited and focused domain that their expressivity allows for generation of executable software realizations from these models. In some cases, it even allows the validation and verification of the system early in the engineering process.
These facilities and domain specific languages are integrated in the clients engineering process. Currently, these facilities have been used by more than 100+ engineers, millions lines of code have been generated from domain specific models to complex industrial equipment and productivity gains of factor 5 have been measured. Engineering processes are gradually transitioning from document-centric to model-centric.
Adopting and transitioning towards a model-centric engineering process calls for a structured design of that process itself. The standard V-model often being used no longer suffices as it’s too generic and coarse grained. The use of domain specific languages implies a different process for each domain. Specifications and designs are described in different languages. As a consequence, the automated construction of software by code generation will be different for each domain. The languages used to describe relevant artefacts in the engineering process must therefore be made explicit and prominently visible. Where models drive the engineering of software, modeling languages drive the design of the engineering process. It is for that reason that Altran invested in a formalism to describe the engineering process where languages fulfil a primary role, to allow architects to carefully design the engineering process and position languages and tools operating on the models. This is what we call Language Architecture.
The need for something like a language architecture was identified first by our colleague Marc Hamilton. This idea has in the past year been further refined and described in a scientific paper by undersigned and accepted as a full-paper to the Modelsward 2017 conference. Additionally, a graphical modeling tool to easily capture and formalize language architectures in processable models has been developed along with refinement of the idea. This opens up opportunities to implement quality metrics, validations and the deriving of other artefacts in the future. Finally, plans are being made to organize trainings in language architecture to train architects in optimizing engineering processes by applying model-driven engineering techniques.
The concept of language architecture and the corresponding tools to efficiently capture a language architecture in a model are import assets within Altran’s model-driven engineering solution. It allows us to concisely describe (software) engineering processes, identify bottlenecks in these processes and design languages and tools to tackle the identified bottlenecks. We consider this a big step in the transition from document-centric to model-centric engineering processes and our proud for our contribution to the field of software engineering.
Marc Hamilton, Ivan Kurtev, Yaping Luo and Niels Brouwers.