From toasters to cell phones and from cars to airplanes, embedded software implements and controls interactions of devices with their environment, and our society is increasingly relying on such devices. Despite the proliferation of embedded devices in almost every engineered product, development of embedded software remains a low level, time consuming and error prone process. This is due to the fact that modern programming languages abstract away from time and platform constraints, while correctness of embedded software relies crucially on hard deadlines.
This NSF-funded research aims at developing novel model-based design and implementation methodology for synthesizing reliable embedded software. Hybrid systems models, which allow mixing state-machine based discrete control with differential equation based continuous dynamics, are used for design and analysis. The research explores ways of mapping such models to code guided by correctness, modularity and portability issues. Technical challenges include bridging the gap between the platform-independent and timed semantics of the hybrid models and the executable software generated from it. This includes integrating generation of control tasks with scheduling to ensure optimal performance. The component technologies in the project are being implemented and integrated within a toolkit for experimentation. A computer-aided infusion pump control system, and an unmanned aerial vehicle using Piccolo avionics board, are chosen as target platforms for demonstration of the feasibility and benefits of the approach.