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:
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 platforum@itm.kth.se to request a login to the PlatForum. Thanks.