In general, the term ‘complexity’ is used to characterize something with many parts in an intricate arrangement. In the context of CPSs, we can differentiate five types of complexities: (i) static complexity (the number and relationships of components that do not change with time), (ii) dynamic complexity (the number and relationships of components that change with time), (iii) self-organizing complexity (open systems reorganize themselves to different systems), (iv) evolving complexity (open systems evolve through time into different systems) and (v) co-evolving complexity (two-way interplay between the changing system and its environment). When all these types and forms of complexities are present, we talk about aggregative complexity.