AAES
Oct. 01, 2008 to July 31, 2009
Background
The past few years have seen exponential growth in the number of software-controlled systems in the automobile with the amount of automotive software doubling every two to three years. No less than 90% of future innovations in vehicles will be generated by software in embedded systems. One of the main features of such onboard embedded systems is their ever increasing complexity yet the software development process still lacks the tools (development environments for embedded code) to address such high complexity in an adequate manner. One of the critical weak spots is the lack of consistency in the tool chains now deployed which can assure neither tool-independent software development nor consistency in the artifacts they generate. This means that in practice development is frequently beset by incompatibility in interfaces or faulty/non-transparent implementation of requirements. Increasingly complex systems thus call for the use of new development methods and tools which enable such complexity to be successfully mastered.
Today’s model driven development comprises of two approaches which differ radically in terms of their concepts yet which both offer a solid base for the development of embedded systems. On the one hand there is block-diagram-supported function development which gives excellent representation of control functions and control loops. Tools which subscribe to this approach include ASCET and Matlab/Simulink. On the other, object-oriented approaches for requirements analyses and design are increasingly becoming the standard – including the standard for embedded systems development. In the main such approaches take UML or SysML as the uniform modeling language. The challenge here is connect up these two model domains with the tools on both the technical and semantic levels so that the resultant synergies can be used to achieve optimal model driven development for embedded systems.
Objectives and Results
We are taking our present developments (a door demonstrator developed in the EASP project) as the basis on which to build a demonstration environment for our partner that will show “tomorrow’s embedded software development”.
This demonstration model will consist of a consistent software tool chain covering development from model design to microcontroller programming together with a real-life automobile component (a car door). With this particular combination the system will serve to deliver proof of the various options available for acceleration of development cycles in the automobile industry as well as to show their practical feasibility in real-life situations involving control of onboard electronics.
The following three aspects will be given special consideration:
- Application of model based development to the embedded-automotive domain
- Optimized development methodology for embedded software using standard tools of the automobile industry
- Dynamic, UML-based microcontroller programming
To furnish proof-of-concept and to demonstrate the functionality of the tool chain to be assembled we will use the car door of a BMW E90 sedan which comes with the means for controlling window openers, the central locking system and the angles of side mirrors.
The approach we are adopting enables us to reference existing software artifacts (such as libraries and legacy codes) and other models (such as Matlab/Simulink) and integrate them in an UML model of the control device software. This produces an optimized development process, given consistency through automation and including automatic code generation, compilation and flashing of the generated software onto the embedded control device.
This optimized approach is based on concepts of Model-Driven Architecture (MDA) in general and on the targeted development methodologies in particular. To develop a new automotive function to be realized in software, the systems developer can specify its functionality in a UML model, Matlab/Simulink models or C-Code. The initiated code generation then will enable an automatic process which realizes the specification in embedded code and implements it on the real control device. The generated code is flashed over HIS-compliant drivers onto the microcontroller.
In this way systems developers have the immediate possibility of visualizing their draft design in a real-life environment or on an actuator connected up to the control device.