Why and Where Do We Need Model Execution? (Keynote) Francis Bordeleau Ericsson Canada, Town of Mount Royal, Canada francis.bordeleau@ericsson.com Index Terms—MBE, model execution generators, and allocation strategies, instead of by directly modifying the design or implementation. I. E XTENDED A BSTRACT However, while the development of PIM can provide key Model execution is a technique used to validate/test/verify benefits in many different contexts, it also imposes important an application, or system, at the model level before an requirements/constraints on modeling tools and their users. implementation is developed. It has the potential to bring One of the main requirements is the need to provide/use major benefits in many different development contexts and an action language, instead of a programming language, to thus strongly contribute to the broader adoption of Model specify the behavior of the components. Many users consider Based Engineering (MBE). Key potential benefits include this a main obstacle, as it requires learning a new language reduced development time, cost, and risks, and improved and associated integrated development environment (IDE). overall system quality by enabling execution earlier and more Moreover, tooling for existing action languages do not provide often in the development process. However, not all models can the level of maturity and functionality that users are used be executed. Model execution requires the use of a modeling to with popular programming language IDEs, in particular language that is based on a precise execution semantics, regarding aspects like runtime monitoring and tracing & debug including behavior specification, and the existence of an capabilities. Also, while this type of MBE workflow has been execution platform to enable execution of models developed a core part of the MBE vision since its inception, very few using this language. modeling tools today provide an action language to support Model execution has proven to be very successful in model execution. There are several reasons for this, which many application domains (aerospace, automotive, industrial relate to both technical and business aspects, but these are automation) to simulate and validate functional behavior with beyond the scope of this presentation. tools like MathWorks Simulink. However, the goals and re- Another approach to support model execution consists in quirements for model execution are quite different depending integrating modeling techniques and programming languages on the modeling context. Here, we use software design and in a single development environment. In many development system engineering to illustrate some of the main differences contexts, the price to pay for the development of a PIM is between different modeling contexts. Similar analysis can perceived to be too expensive for the benefits it provides. also be done for other contexts like requirements modeling, For example, in cases where an application is developed information modeling, functional modeling, business process for a single programming language, and no business case modeling, network architecture modeling, and enterprise ar- exists for the development of the application using a different chitecture modeling. programming language, there is no clear benefit in investing In the context of software design, where modeling is used time and effort to develop a PIM. In such context, what to design and visualize applications/systems at an abstract users really need is a better integration between the modeling level (i.e. at a level of abstraction higher than programming techniques and programming language IDEs to improve the languages), model execution is viewed as a technique that inner design loop and allow for a faster and more agile can be used to execute models early in the development development process. process to validate/test/verify an application/system before a In the context of system engineering, where the end goal is detailed design is developed. This allows making abstraction not to generate code but rather to develop systems that result of the specifics of programming languages and deployment from the interaction of a set of heterogeneous components, platforms, and focus on the design of a platform independent which can each be implemented/realized using different types model (PIM) that can later be implemented using different of technology, not only software, it is quite different. In this programming languages and deployed on specific platforms case, modeling is used to design, communicate, and validate to satisfy the needs of different business cases. Model trans- the system to people of different background at different stages formation and code generation techniques can then be used of the development process, and model execution is used to transform the PIM into an implementation. The use of to validate/test/verify the system before it is implemented. such approach allows increasing portability and enables perfor- In order to be able to execute the model, the behavior of mance optimization by improving model transformations, code the different components needs to be specified. Since people 1 involved in system engineering are from different background, and typically not software engineers, it is much easier and natural to introduce a higher-level action language than a programming language, which is usually more complex to learn. So, in this context, the use of an action language doesn’t constitute a main issue. As illustrated by these two different contexts, software design and system engineering, the needs and requirements for model execution are quite different depending on the modeling context. The background and culture of the people involved in the modeling process, which significantly differs between different application domains, also have a strong influence on the type of tooling solution that needs to be developed. Therefore, in order to provide proper modeling tools to support model execution, it is essential to clearly understand the role model execution plays in the overall development process and the type of language and functionality that need to be provided. The goal of this keynote presentation is to provide an industrial perspective on model execution. We discuss different modeling contexts (information modeling, system modeling, network architecture modeling, and software design) and application domains (telecommunication, Software Defined Radios, cyber-physical systems), and discuss their needs (or not) and requirements regarding model execution. We also discuss what is needed, both from a technical and business perspective, to have first-class support for model execution in modeling tools. II. B IOGRAPHY Francis Bordeleau is Product Manager in the Software De- velopment group at Ericsson. His main areas of responsibil- ities include model-based en- gineering and modeling tools. In this role, he is responsible for defining product specifica- tions and roadmaps, developing business cases, managing budget, managing open source initiatives, and collaborating with other companies, researchers, and academia. Francis has over 20 years of experience in MBE and software engineering; researching, working, consulting, and collaborating with numerous companies worldwide. Prior to joining Ericsson in May 2013, Francis was the Founder and CEO of Zeligsoft, a provider of domain specific Model Based Engineering (MBE) tooling solutions for distributed real-time embedded systems. He was also Director of Tooling Business for PrismTech. Prior to found Zeligsoft, he was an Assistant Professor at the School of Computer Science at Carleton University. Francis holds a B.Sc. in Mathematics from the University of Montreal, a Bachelor of Computer Science from the University of Quebec (UQO), and a Master in Computer Science and Ph.D. in Electrical Engineering from Carleton University. 2