Cyber-physical systems (CPSs) allow computer systems to monitor and control the physical world in a new way that could revolutionize many areas of science and engineering. However, they are often too complex for non-specialists to use. The aim of this work is to develop new technology to manage this complexity, enabling scientists and engineers to use CPSs just like other tools and instruments. This research takes a comprehensive approach to macroprogramming -- the task of programming an entire network of devices as a single, programmable substrate. This research exploits global, network-wide information about a CPS provided by a macroprogram to improve traditional software engineering techniques such as testing, debugging, analysis, and optimization. New techniques are being developed that use global information to optimize system performance, automatically generate test cases, and reduce the state space for analysis. This work is developing new programming abstractions that allow the separation of the application logic from quality-of-service requirements and hardware requirements, improving code portability and reuse. This research will produce a comprehensive development environment for CPSs called MacroLab. The new tools developed will greatly simplify the process of their programming and make them more accessible to non-experts. By taking a holistic view of the network and its software, MacroLab will manage a range of complex, interacting issues that would be extremely difficult to manage by hand. MacroLab will be tested pilot studies, including environmental monitoring. A graduate CPS course will be developed. MacroLab will be used for course experiments and in senior capstone projects.
Off
University of Virginia
-
National Science Foundation