Today at Embedded Systems Week, I attended the special session on mixed-criticality systems. This is a relatively new formulation of real-time systems in which tasks are grouped into levels of criticality. Tasks in the higher levels of criticality are given priority over lower-criticality tasks when resource constraints arise. As we put more and more functions into systems, we need to understand how to manage criticality. Imagine, for instance, the electronic systems in your car. The engine controller and radio both run on the same computing platform, but we want to be sure that the engine controller is viewed by the system as more critical than the radio. The panelists did a good job of explaining the importance of the problem, what progress we have made on mixed-criticality in a few short years, and what we still need to do.
I also attended the special session on model-based design. The panel considered efforts to take the next-step from models as documents and tools to models as the only artifacts used for complex system design. The panelists walked us through an example model-based design, including verifying a simple specification. They also talked about the complexities of using models for real-world system. Given the huge number of different modeling languages in use, each with its own advantages, it is unlikely that we will ever have a single, unified modeling language for all systems. The panelists instead advocated using a collection of application-specific languages tied together with tools that cross-check properties of the individual models.