MoDEVVa'16 Keynote

Title: Dynamic Validation & Verification in Language-Oriented Modeling

by Benoit Combemale

Abstract:

Software engineering faces new challenges with the advent of modern software-intensive systems such as complex critical embedded systems, cyber-physical systems and Internet of things. Software is more and more pervasive, integrated into large and distributed systems, and dynamically adaptable in response to a complex and open environment. As a major consequence, the engineering of such systems involves multiple stakeholders, each with some form of domain-specific knowledge, and with an increasingly use of software as an integration layer.

Hence more and more organizations are adopting Domain Specific (Modeling) Languages (DSLs) to allow domain experts to express solutions directly in terms of relevant domain concepts. While Model-Driven Engineering (MDE) encompasses the identification of added-value domain knowledge, Software Language Engineering (SLE) covers the technical activities to develop DSLs. However, the interplay between both is still challenging. In particular, in this talk I review a decade of research work in the fields of MDE and SLE, with the particular focus on enabling early validation & verification (V&V) of software-intensive systems. This results in a disciplined approach for language-oriented modeling, supporting generic and generative approaches to automate the development of V&V tools.

I first present foundational concepts and engineering facilities which help to capture the core domain knowledge into the various heterogeneous concerns of DSLs (aka. metamodeling in the small), with a particular focus on executable DSMLs to automate the development of dynamic V&V tools (simulation, animation, omniscient debugging, trace analysis and exploration, etc.). Then, I propose structural and behavioral DSL interfaces, and associated composition operators to safely reuse and integrate multiple DSLs (aka. metamodeling in the large).

I introduce different breakthroughs in terms of modularity and reusability of DSLs, as well as an original approach which bridges the gap between the concurrency theory and the algorithm theory, to integrate a formal concurrency model into the execution semantics of DSLs. All the contributions are made implemented in software platforms — the language workbench Melange and the GEMOC studio –, and illustrated through real-world case studies. Finally, I also introduce the GEMOC initiative, an international effort to develop techniques, frameworks, and environments to facilitate the creation, integration, and automated processing of heterogeneous modeling languages.