Cyber-physical systems (CPS) are self-regulating complex and heterogeneous systems comprised of interconnected virtual and physical systems. In the near future, such systems will become more and more pervasive. That is, large amounts of interconnected distributed systems are spread over the world with growing density and coverage. This new type of complex system poses the need for novel engineering techniques for the virtual and the physical parts.
Nowadays software engineering techniques allow the development of virtual systems, i.e. software running on different kinds of computers. Besides approaches for the typical desktop computers, approaches for all granularities, spanning from supercomputers to small embedded devices, exist. A key characteristic of small devices is that they have many peripheral devices. This is reflected by the term embedded device, which denotes that the device is embedded into another complex system—the physical world. Embedded devices use sensors to consume data from their surrounding environment and actors to stimulate it. These basic elements lead to the construct of a control loop. The embedded device measures the controlled system and acts upon it, if it deviates from the desired behavior. Usually, the embedded system is the controller and the physical world contains the controlled system. For example, a radiator which shall provide a stable temperature in a room as depicted in Figure 1. The room is the controlled system, temperatures bellow or above the user’s setting are the disturbance values. The controller is software, which uses valve timing of the radiator as actuators to influence the room temperature. Additionally, temperature sensors need to be placed in the room, so the controller is able to measure the current temperature.
To develop and maintain this kind of systems, novel software engineering techniques have to be developed. On the one hand, the physical part needs to be developed (i.e. development and placement of sensors, actuators). This is the research topic of our partner group: ZESSY-TIS. On the other hand, the software needs to be developed, which is our part of the project.
Essential for the development of CPS is the treatment of nonfunctional properties (qualities). This is, because of their physical part. Imagine a car guidance system for the Arc de Triomphe. Cars entering the gyratory system are steered to the desired exit by a CPS. If a real-time constraint of a brake is missed, a pile-up of cars will result. This, in turn, leads to the violation of (health) safety constraints.
The main goal of our project is a new software engineering technique, suitable for development and maintenance of software for CPS. Our results include the QBench – A software development workbench for CPS, based on a multi-qualityoptimizing, role-based composition system, including sophisticated mechanisms for test and verification. In the following our main contributions are outlined. Figure 2 depicts how the approaches relate to each other.
M-QuAT: Multi-Quality Auto Tuning. Our technique shall not just be able to treat multiple qualities, but also to optimize the utility in terms of efficiency. That is, the software constantly adapts itself at runtime to offer highest possible utility for the lowest possible cost. For that reason we will first develop a language to specify qualities. These quality specifications will be used in contracts between software and physical components to express the different cost/utility variants of the overall system. We will investigate different techniques for the assessment of these contracts, like integer linear programming and constraint solver systems. Furthermore, we will develop mechanisms to adapt systems at runtime from one variant to another. Our work is highly related to the research projects CoolSoftware (http://www.cool-software.org/) and HEAC (http://tu-dresden.de/forschung/forschungskompetenz/sonderforschungsbereiche/sfb912) which focus on energy auto tuning .
SMAGs: SMart Application Grids. We will investigate modeldriven, component-based development of CPS software. The Cool Component Model (CCM) , which is able to describe software as well as hardware components, will be used as a starting point. To separately describe functional features and qualities of the CPS’ software, role models shall be examined. They potentially allow to decompose CPS software into small non-/functional parts, which are composed at runtime to constitute the overall system. This allows for fine-grained runtime manipulation of an application’s architecture and thus dynamic adaptation of the CPS software, which is required by the physical part of the CPS.
JouleUnit: CPS Energy Testing. (details) Since testing is one of the most important tasks to be considered in every software development process, we will investigate the application of model-based testing (MBT) methods to the domain of CPS. First, we will focus on energy testing of CPS applications. We have started the implementation of an energy testing framework for Java applications . In ongoing work we are investigating methodologies that allow predicting and comparing the energy consumption of CPS applications, e.g., for mobile devices such as smart phones and tablets as well as NAO robots.
Refactory: Co-Evolution in CPS. (details) We will investigate the sustainability of CPS and focus on longliving systems. In this sense, a CPS must be able to react on evolution steps of participated models and initiate co-evolution of dependent models. For this reason we examine how to cope with the heterogeneity of models in CPSs and to derive dependent co-evolution steps automatically. Refactoring is one kind of evolution and is defined as behaviour preserving. Our tool Refactory3 supports generic specification of refactorings which enables us to convey the approach to co-evolution.
In the future, vast amounts of pervasive cyber-physical systems will exist. Current software systems are developed independently of the physical world, which is impossible for CPS. This poses the need for novel software development techniques taking the dynamic, non-functional characteristics of the physical world into account. We will develop a CPS software development workbench, based on a multi-quality-optimizing, smart application grids, including sophisticated mechanisms for test, verification and evolution of the CPS software under development. Ongoing work related to the QualiTune project can be found at http://www.qualitune.org/.
- S. Götz, C. Wilke, S. Cech, and U. Aßmann. Sustainable Green Computing: Practices, Methodologies and Technologies, chapter Architecture and Mechanisms for Energy Auto Tuning. IGI Global, 2012.
- C. Wilke, S. Götz, J. Reimann, and U. Aßmann. Vision Paper: Towards Model-Based Energy Testing. In J. Whittle, T. Clark, and T. Kühne, editors, Model Driven Engineering Languages and Systems (MODELS 2011), volume 6981 of LNCS, pages 480–489, Berlin / Heidelberg, 2011. Springer.