The endeavour of constructing critical systems evolved from engineering complicated systems in the last century, to architecting critical systems-of-systems (SoS) in this century.
A system-of-systems is a combination of autonomous existing systems that fulfills its own operational mission.
The upcoming generation of SoS will operate in open environments: the available subsystems are partially known at design-time. Despite this, the SoS must fulfill its mission as long as necessary. Thus, the main characteristics of SoS are:
- unpredictability of the environment: constituent subsystems are dynamically discovered, composed, and operated in a continuous way at run-time; they have their own mission and may evolve independently
- criticality: the SoS dynamically enforces high confidence and resilience; it cope with internal and external disturbances
- long-lasting: the SoS must continuously reconfigure according to the evolution of its constituents
Architecture is at the frontend of engineering when dealing with SoS:
- architecture plays a fundamental role in the engineering of software throughout its lifetime including both design-time and run-time;
- architecture descriptions must be first class citizens;
- architecture descriptions must be active at run-time;
- complexity and criticality of software call for architecture in complement to engineering;
- architecture-driven engineering paves the way to tame the complexity of critical software-intensive systems-of-systems.
Therefore, a rigorous approach is needed that does concentrate on the architecture of evolving systems and SoS. This encompasses the description, analysis, construction and evolution of SoS:
- Description: SoS-specific composition mechanisms that are explicit, formally defined, and operate on active architectural models at run-time;
- Analysis: techniques and tools for the architecture-centric model-based analysis of SoS; including structural, behavioural, and quality properties; combining simulation, model checking, and testing;
- Construction: abstractions and mechanisms for expressing architecture transformations, where the application of these transformations will support refinement from abstract to concrete SoS architectures;
- Evolution: continuous feedback together with the models of the mission and the architecture, in order to decide when, how, and where evolution is appropriate.