Adaptive software systems represent a promising approach to developing future vehicle software. Through their dynamic architectures, these systems can react to changing situations at any time. The software components adapt autonomously when the driving situation changes, such as transiting from highway to city traffic. Adaptive embedded systems also enable the dynamic integration of external services. Since software components can be executed on different platforms at runtime, the functions on a defective platform can be assumed by other platforms. This increases the fault tolerance of the software system and thus the entire vehicle.
Self-Describing Software Components
Adaptive embedded systems work under the assumption that software components are dynamically used across distributed systems. To do this, certain information about the components is required at runtime, such as their executability on various platforms or their real-time capability. This information is maintained separately in a modular fashion for each component, which enables decentralized organization. Each component thus describes itself. Apart from the examples already mentioned, information regarding other existing parameters is required at runtime. One element of the self-description consists of so-called nonfunctional requirements. They describe how the functional behavior is achieved. Apart from the static, nonfunctional requirements, the self-description also contains information about dynamic runtime characteristics. Among others this includes the resources currently being used by a software component or the current capacity of a platform.
In order to iteratively specify such adaptive embedded software systems with selfdescribing software components, the Fraunhofer Institute for Cognitive Systems IKS (former Fraunhofer ESK) worked together with the Carnot Institut CEA LIST in France to examine a new development method and tool chain in the project RT-DESCRIBE (Iterative Design Process for Self-Describing Real-Time Embedded Software Components). The software system is initially described in one of the specific prevailing UML models within the respective domain, such as the EAST-ADL architecture description language for automotive systems. This model is enhanced with information for the adaptivity by means of the so-called self-X extension that was developed as part of the project. The domain-independent extension is based on the standardized MARTE UML profile for describing embedded systems. Using the Qompass tool developed by CEA LIST, the designed system model is then enriched with containers encapsulating selfdescription, thus providing a subset of the model information at runtime. With the ERNEST tool developed by researchers at Fraunhofer IKS, the enhanced runtime model can be simulated and analyzed during development, which enables multistage, early validation of the software to be developed. This allows the detection and rectification of errors and flaws in an early stage of development. The results from the simulation environment flow back into the development model so that it can be iteratively optimized. This process reduces the development time and thus the development costs as well. The ERNEST framework developed by Fraunhofer IKS can be downloaded from the Fraunhofer IKS website at no charge.
The development method and tool chain created within the RT-DESCRIBE project enable the efficient development of adaptive embedded systems. Through the iterative simulation process, the parameters are continuously optimized and the system stability and adherence to real-time requirements are verified. At the end of the development process, executable and self-adapting software is generated that is enhanced by self-description.