search menu icon-carat-right cmu-wordmark

Engineering High-Assurance Software for Distributed Adaptive Real-Time Systems

This presentation describes an evidence-based approach for producing high-assurance DART software involving multiple layers of the CPS stack.

Software Engineering Institute


Distributed Adaptive Real-Time (DART) systems are cyber-physical systems (CPS) with physically separated nodes that communicate and coordinate to achieve their goals and that self-adapt to their environment to improve likelihood of success. DART systems promise to revolutionize several areas of civilian and Department of Defense interest, such as robotics, transportation, energy, and health care. However, to fully realize this potential, the software controlling DART systems must be engineered to have high-assurance and certified to operate safely and effectively.

Achieving this goal is challenging—and infeasible with current testing-based approaches—due to complexity resulting from concurrency and coordination, environment uncertainty, and unpredictable system evolution caused by (self-)adaptation. In this talk, we present a sound engineering approach based on judicious use of domain-specific languages with precise semantics, rigorous analysis, and design constraints that leads to assured behavior of DART systems. Our approach uses a synergistic combination of analyses from different scientific domains. It is designed to assure, in a scalable manner, critical timing and functional and probabilistic requirements for systems with uncertain environments and coordination. We have implemented our approach in a workbench, and evaluated it on a model problem. As part of this research, we have combined architecture-based analysis with state-of-the-art verification algorithms for real-time schedulability of mixed-criticality systems, software model checking, and statistical model checking, along with proactive self-adaptation and middleware technology. The result is an evidence-based approach for producing high-assurance DART software involving multiple layers of the CPS stack. We conclude with open problems and directions for future work.

This content was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.