Model-driven design of dependable software intensive embedded systems
Description of research:
In this project we plan to improve the ability to address dependability concerns of embedded systems by means of model integration. In a model-driven design process, integration of domain specific models is necessary to assure consistency throughout the whole system. The models we deal with are computational and functional models which can be simulated, verified and synthesized in a cost efficient manner. Using such models allows early inspection of a system, and prediction and evaluation of the design decisions to assess and fulfill dependability requirements.
For an embedded system, integration of the essential models is expected to be particularly hard: Due to the nature of embedded systems, involving domains, e.g. computational and functional domains, have conflicting, orthogonal assumptions and abstractions. It is not to be expected that there is a single unifying semantic formalism for all different models, either because it may not exist (as, by analogy, there is no unifying model for the two models of light, the wave model and the particle model), or because it is too complex. One alternative way of integration is co-simulation.
For a more detailed description, see below.
Advisor(s):
prof. dr. ir. Mehmet Akşit
prof. dr. Jaco van de Pol
dr. Angelika Mader
dr.ir. Jan Broenink
Duration: 2009-2013
Project: Model-driven design of dependable software intensive embedded systems
Funding institution: CTIT (Centre for Telematics and Information Technology)
Strategic Research Orientation: DSN - Dependable Systems and Networks
Links to relevant web pages:
· |
· |
· |
Pictures

Detailed description of research:
We are surrounded by various types of tiny computers called embedded systems. Number of chips used in embedded systems is a lot more than the number of chips employed in general purpose computers. Most of the time, we are not aware of the embedded systems surrounding us even though we are extensively using them. Yet, in the future, the number of embedded systems is expected to increase exponentially; this fact makes embedded systems design a prominent discipline.
Embedded systems can be defined as single purpose computer systems which are designed to perform a small set of tasks often with real-time constraints. They can be embedded in a larger system assisting or, for most of the time, controlling that system. The types of domains that embedded systems involve in are numerous and different domains of application are addressed by specialized disciplines. For an embedded system to work with the larger system and the environment in harmony, the design needs to involve the use of required disciplines. These disciplines involve control theory, software engineering, formal tools and the other disciplines to address the nature of the application domain e.g. chemical engineering, mechanical engineering etc.
Dependability of an embedded system is the ability to deliver the acceptable service at an expected frequency. There is a large variation concerning the domains that embedded systems are used in. Thus there is a wide spectrum where the degree of the dependability requirements of an embedded system can be located. It can be a very loose requirement of dependability that is only requesting best of service or it can be a mission critical requirement such that any failures may have catastrophic consequences. Meeting the specified dependability degree is only possible if we have the frameworks for measuring and enhancing dependability attributes.
In this project we plan to improve the ability to address dependability concerns during the development of embedded systems by focusing on the model integration issues. We favor a model-driven design process which proposes using models at every step of a development process. In model-driven design models of a system are constructed before the system is constructed. These models are then analyzed (with formal means), and used for synthesis of the real system, or the code. The models we deal with are computational and functional models which can be simulated, verified and synthesized in a cost efficient manner. Using such models allows early inspection of a system, and prediction and evaluation of the design decisions to assess and fulfill dependability requirements.
Due to complexity it is not feasible to construct a single model of a real system, but for different fragments of a system there will be different, domain specific models, where a fragment can be defined by either a physical fragment of the system or a behavioral aspect, such as continuous behavior or fault handling. While each model of a system fragment may be correct, it still might be the case that the system fragments derived from these models are not consistent. Again, it is desirable to detect inconsistencies on the model level (during design) instead of on the code level (during testing and realization). In order to inspect, simulate and verify the whole system or the desired portions of it, the models of the system should be integrated. Integration of models is therefore an issue that is crucial for the success of model-driven design.
For an embedded system, integration of the essential models is expected to be particularly hard: Due to the nature of embedded systems, involving domains, e.g. computational and functional domains, may have conflicting, orthogonal assumptions and abstractions. The initial research questions are: Which models need to be integrated? Under which conditions are the integration of models possible, and, if it is, how it can be done?
It is not to be expected that there is a single unifying semantic formalism for all different models, either because it may not exist (as, by analogy, there is no unifying model for the two models of light, the wave model and the particle model), or because it is too complex. One alternative way of integration is co-simulation. The research questions refine here to: For which model classes can a unifying semantic domain be defined, where techniques as model checking and model transformation can be applied for formal analysis? For which model classes is it necessary or preferable to integrate by other techniques? To what extent can these alternative integration techniques still be based on formal techniques, such as model checking? In which cases, is co-simulation the only possibility? And, how has the integration to be performed?