by Tomáš Bureš, Ilias Gerostathopoulos and Rima Al Ali
The functionality of smart complex networked Cyber-Physical Systems (CPS) is increasingly reliant on software. Software dominates to such an extent that smart CPS can be classified as software-intensive systems  – systems in which software is by far the most intricate and extensive constituent. The complexity of the software is underpinned by the fact that smart CPS are inherently distributed and need to combine collaborative behaviour with autonomicity, self-awareness and self-adaptation. The DEECo framework addresses the holistic development of such systems.
The complexity of software in smart Cyber-Physical Systems (CPS) means that software cannot be developed by ad-hoc means; instead, there is a need for systematic software engineering methods to reduce the development complexity and increase reliability and robustness by using appropriate software models and abstractions. A distinct challenge of smart CPS is that their software architecture undergoes continuous modifications: Components appear and disappear as CPS devices enter/exit the system, components form and dissolve cooperation groups as they start/finish a particular joint activity, and communication links are established/released depending on the actual availability of network connectivity. This is illustrated by the firefighter scenario (taken from one of our case studies), where firefighters (captured as CPS components) coordinate within and across mission sites and take advantage of stationary and mobile nodes (also captured as CPS components) existing in their vicinity to communicate with and sense their environment (see Figure 1).
Figure 1: Use of components to model a smart CPS consisting of firefighters and other mobile and stationary nodes in the vicinity.
To fulfill the requirements of smart CPS, researchers at Charles University in Prague, have developed the DEECo framework  for building smart CPS. This framework consists of a component model, a high-level design method, analyses, and a runtime framework – all tailored to the needs and specifics of smart CPS. It offers a synergy between component-based systems, ensemble-based systems, agent systems and control systems.
Component model - A component in DEECo  is the basic software unit of development and deployment. It constitutes state (referred to as knowledge) and behaviour, materialized into processes. Each process executes cyclically similarly to a real-time task. To achieve component interaction, components are dynamically assembled into collaboration groups called ensembles (e.g. a firefighter and all temperature sensors on the same floor, all firefighters active at a mission site). Within an ensemble, the components interact in terms of implicit knowledge exchange, which is handled by the execution environment.
High-level design - Invariant Refinement Method (IRM)  is a design method for DEECo-based systems. It captures high-level goals and requirements in terms of invariants, which describe the desired state of the system-to-be at every time instant (thus strengthening component autonomy and reliability). Invariants are maintained by component coordination. As a design activity, top-level invariants are iteratively decomposed into more fine-grained sub-invariants, essentially yielding a detailed contractual design of system implementation – either in terms of local component behaviour, corresponding to a component process, or in terms of component interaction, corresponding to an ensemble.
Analysis - Thanks to its well-defined semantics, DEECo allows timing properties to be quantified via static analysis and simulations. These include end-to-end response time and estimating level of inaccuracy of perceived knowledge depending on the communication latency and physical model of sensed values (given as differential equations).
Runtime Environment - The framework is backed by jDEECo, an implementation of DEECo in Java. This runtime environment includes scheduling of component processes, dynamic grouping of components into ensembles, and distributed knowledge exchange. Technically, jDEECo employs gossip-style network communication to uniformly address IP-based, as well as peer-to-peer broadcast-style WPAN networks.
Case Studies and Evaluation
To date, DEECo has been a successful part of the EU FP7 IP project ASCENS and employed in a number of case studies, including intelligent vehicle navigation, emergency coordination, and ad-hoc cloud deployment. Case studies have confirmed that DEECo represents a significant development simplification while preserving robustness and dependability properties of the designed system.
In the next research and development steps, we intend to focus on enhancing the framework of efficient communication means in situations of limited connectivity, handling uncertainty of knowledge, and verification in the presence of dynamicity.
 K. Beetz and W. Böhm: “Challenges in Engineering for Software-Intensive Embedded Systems”, in Model-Based Engineering of Embedded Systems, Springer, 2012, 3–14
 T. Bures et al. “DEECo – an Ensemble-Based Component System”, in proc. of CBSE’13, ACM, 2013, 81–90
 J. Keznikl et al. “Design of Ensemble-Based Component Systems by Invariant Refinement,” in proc. of CBSE’13, ACM, 2013, 91–100.
Charles University in Prague, Czech Republic