Design of Embedded Controllers for Safety Critical Systems

Project IST-2001-38314


Project | Participants | Innovation | Work Plan  | Related Links | News

Control Algorithms

Embedded Software





Embedded Software

Home Innovation Embedded Software


ESW today is written using low level programming languages such as C or even Assembler to cope with the tight constraints on performance and cost typical of most embedded systems. The tools available for creating and debugging software are no different than the ones used for standard software: compilers, assemblers, debuggers and cross compilers. If any difference can be found, it is in their quality: most tools for ESW are rather primitive when compared to equivalent tools for richer platforms. On the other hand, ESW needs hardware support for debugging and performance evaluation that in general is not a big issue for traditional software. In most embedded software, operating systems were application dependent and developed in house. Once more performance and memory requirements forced this approach.

When embedded software was simple, there was hardly any need for a more sophisticated approach. However, with the increased complexity of ES applications, this rather primitive approach has become the bottleneck and most system companies have decided to enhance their software design methodology to increase productivity and product quality. However, we do not believe that the real reasons for such a sorry state are well understood. We have seen a flurry of activities towards the adoption of object-oriented approaches and other syntactically driven methods that have certainly value in cleaning the structure and the documentation of embedded software but have barely scratched the surface in terms of quality assurance and time-to-market. Along this line, we also saw a growing interest towards standardization of Real-Time Operating Systems (RTOS) either de facto or through standard bodies such as the OSEK committee established by the German automotive industry. RTOS and traditional Integrated Development Environments (IDEs) dominate the ESW market.  ESW design automation is still a small segment, even though this is the place for productivity gains.

In some applications, the need to capture specifications at high levels of abstraction have led to use of modeling tools, such as the Mathworks Matlab and Simulink tools. These tools allow designers to quickly assemble algorithms and simulate behavior. However, the mathematical models supported by such tools do not cover the full spectrum of embedded system design. The lack of formal data flow support is critical. The lack of integration between the FSM capture tool (State Flow) and Simulink is also a problem.

This is a key area in our vision, as at this level we will have the best results in terms of functional correctness and error free refinement to implementation. The understanding of the mathematical properties of the embedded sys-tem functionality is a major emphasis of COLUMBUS.

We believe that mathematical models (models that are not just formal, but also manipulatable) offer the vehicle for integrating in a systematic and coherent fashion a variety of diverse efforts in system specification, design, synthesis (code generation), analysis (validation), execution (run-time support), and maintenance (design evolution).  Mathematical models offer a precise common language that permits multiple approaches with complementary strengths to be directed towards a single design.

1. Rapid composition of domain-specific modeling languages. Model-based design of complex embedded systems necessitates the use of domain-specific notations and novel modeling paradigms. Based on years of research at UCB and VU, we will examine how to support the rapid composition of domain-specific modeling languages dedicated to embedded system development. Specifically, following our previous research on meta-modeling and meta-languages, we will investigate (a) how to compose and validate complex meta-models, and (b) how to extend meta-modeling constructs to very large, dynamic, networked embedded systems. Formalization of meta-model reuse, composition of complex languages from pre-fabricated and generic meta-model components will be addressed.

2.  Modeling on different levels of abstractions with automatic transformations. Development of complex embedded applications involves a number of modeling and synthesis activities. While the representation and refinement of designs is a well-addressed area in general software engineering, very little is known about how these techniques can be carried over to the field of embedded systems. Embedded system design is complicated by the fact that changes on the implementation level have profound impact on the overall system performance (with respect to requirements), and it is very hard to maintain this dependency. In coordination with the meta-modeling research area, we will investigate how to represent and store complex requirement, design, and implementation models in modeling environments, where the model elements are actively linked together, and changes can be propagated across the different levels via appropriate transformations.

3. Interfaces theories for component-based design. We develop rich interface specification languages for components. While a traditional interface specifies only static information such as the types of input and output parameters, a rich interface may specify dynamic properties such as a specific call order of the methods offered by a component, or a specific timing requirement on method calls. If formal, such interfaces can be checked automatically for compatibility. While lightweight (it requires only interface specifications, not behavioral specifications), this technique can uncover many concurrency and timing flaws at design time, much the way traditional type systems detect many software errors.