Modern model-based development approach for embedded systems Practical Experience Sergey Vinogradov Artem Ozhigin Corporate Technology, Research and Technology Center Siemens Russian Federation {Sergey.Vinogradov; Artem.Ozhigin}@siemens.com Daniel Ratiu Corporate Technology, Research and Technology Center Siemens Germany Daniel.Ratiu@siemens.com Abstract— Control functionality of modern rail vehicles is getting more and more complex. It contains several modules such as the traction control unit or the central control unit, as well as input and output stations, such as driver’s cab terminals and process I/Os. A plethora of devices are connected to the vehicle and train bus and are able to communicate. The functions of the vehicle control and traction systems are configured by using function blocks from which loadable programs are generated. The languages used to program the control units are well established in the field. However, one-size-fits-all approach cannot adequately address the increased complexity of the software in modern trains. In this paper we describe our preliminary experience with using the multi-paradigm modeling tool “mbeddr” in the railway domain. The following aspects have been in focus during the work: a) matching the application requirements and domain specific language used for implementation; b) integration of model-based approach into traditional product lifecycle; c) reengineering existing functionality using modeling and code generation capabilities of mbeddr. The system example we chose was the application logic of automated train driving system implemented in development environment of Siemens process automation framework. Keywords—model based development; language engineering I. INTRODUCTION Historically, many legacy train control systems had been developed using engineering frameworks which are dedicated for usage in electrical engineering domain. The logic is implemented by specifying and linking physical signals as they are present on circuit boards: input circuit blocks, routing of signals into parallel/subsequent “OR” and “AND” blocks to define the signals logic, combining common functional blocks into functional packages, etc. These functional packages are used then to generate loadable programs and execute them on target hardware units. Such an approach works well for signal processing logic where functions executions are not repeated often and need to guarantee certain time bounds. Moreover, the resultant “pictures of code” are comprehensible for electrical engineers. However, the increase in complexity of the control systems in trains puts certain challenges on such engineering environments; especially a part of software development requires serious adaptation. The functionality to be implemented in modern trains does not belong only to the traditional controls domain and has for example also data- processing intensive components. On the one side, innovation cycle for train control networks and corresponding software in industry takes usually from 8 to 10 years. It affects the migration plans of industrial companies regarding bringing new engineering methods and technologies into practice. In these cases, systems engineers have to carefully think about providing the projects with well defined approach to specification, implementation and validation of new system functions as well as integration of the new functionality into the legacy system. On the other side, models are not new in software development anymore. Over the past few decades, the software industry has seen numerous analysis and design methods, each with its own modeling approaches and notations. Better integration of such models and code should significantly increase the opportunity to perform changes via models, rather than simply modifying the code directly [1]. Furthermore, using appropriate modeling abstractions is an enabler for higher reuse and more manageable complexity. The use of adequate modeling approaches prevent common errors and ensure a high quality. Our work is part of the continuous efforts of the Corporate Technology division of Siemens to evaluate modern engineering approaches which are able to cope with increasing complexity of our products and to allow their development in an efficient manner. In this paper we report on our experience with using mbeddr (www.mbeddr.com) open-source model- based development workbench for the railway domain applications. We focused on the following practical goals: effective capturing and modeling of domain-specific requirements, introducing state-of-the-art software engineering practices to cope with the complexity and using advanced quality assurance to ensure the integrity of software-relevant functions. In Section II we present a brief overview of the mbeddr modeling stack. In Section III we illustrate the key practical experience on using mbeddr to program train control units and on integration of the new tooling with the existing engineering framework. Section IV provides the major lessons learned and Section V the conclusions.