Several of my previous postings have referred to the complexity of CPS, but what do we mean by the complexity of CPS?
There are many interpretations and studies of “complexity”, from technical to socio-political systems. There are also many propositions for metrics and definitions of complexity. Few metrics however appear to be adopted into actual engineering practice and definitions tend to focus on certain facets of complexity.
Frequently discussed facets of complexity in the context of CPS include:
- heterogeneity of CPS, e.g. in terms of heterogeneous requirements, technologies, parts and behavior (e.g. as typically constituting hybrid, distributed, closed-loop real-time systems). As a result of their heterogeneity, CPS will be represented using multiple interdependent views, captured with different formalisms and tools,
- size and computability, e.g. in terms of the number of connectors, states, lines-of-code and requirements involved in a CPS. Computability refers to the number of operations required for solving an algorithm as a function of the problem size; many CPS design concerns belong to the class of NP-complete problems for which no polynomial time algorithms are known,
- uncertainty and change, referring to different kinds of unknowns and closely related to change. Typical examples include changing and conflicting requirements, unknown properties of technologies, impacts of design decisions, states in a distributed system, and the uncertainty of environment perception of a CPS,
- dynamics or structure, referring to behaviors that are difficult to predict, e.g. due to highly non-linear dynamics, dependencies among parts and things that may fail. The inherent parallelism and resource sharing in a CPS contribute to this type of complexity. The behaviors and structures may also change dynamically such as in self-learning systems and in a system of system.
- goals and socio-technical context of the CPS, referring to the complexity of the goals in terms of their feasibility, and organizational aspects such as competition, conflicts, policies and management.
Distinctions are often made between incidental vs. essential complexity (terms due to Brooks). Incidental complexity arises from the way in which a system is designed (for example because of the use of legacy components). Essential complexity instead concerns characteristics inherent to the problem being solved. A key example of incidental complexity is that of design that leaves certain aspects undefined (or only implicitly defined), implying that side-effects may occur, exemplified by undesired feature interaction.
Complexity can be viewed in terms of what Hillary Sillitto referred to as “objective complexity” or in terms of “subjective complexity”. Objective complexity refers to technical characteristics, and may be exemplified by the size/computability facet. Subjective complexity instead refers to how humans perceive the systems, for example, the perceived difficulty in understanding CPS behavior.
We are currently facing a growth in CPS complexity, with increasingly advanced functionality and the use of CPS in more open environments. In particular, this increases the uncertainty and makes it more difficult to reason about risk. Large systems imply that many things can go wrong and that there likely will be increased security risks. It will not be possible anymore to a priori foresee all scenarios and what might go wrong so dynamic risk management will increasingly be necessary. However, adding more protection mechanisms may further increase the system complexity. While the introduction of AI in terms of machine learning into CPS provides new capabilities, they also pose new challenges in terms of robustness of machine learning systems.
Finally, there is a close relation between the complexity of an environment of a CPS, the CPS itself, and the organization(s) developing the CPS. This is natural, since the essential complexity has to be matched!
Understanding the complexity facets of CPS, their sources, effects and how to deal with them, will be essential for engineering the CPS of tomorrow. I believe that one important perspective is that of contrasting facets of CPS complexity with limitations of organizations/humans and methodologies. (that have to deal with those facets). Understanding the gaps, may help to better identify means to deal with the complexity of CPS. I have a publication underway on this topic – soon to be linked from here – stay tuned!
If you would like to comment on this post, please contact firstname.lastname@example.org to request a login to the PlatForum. Thanks.