Taming Quality in Chaos - Quality Management in Systems of Systems
From cars to consumer goods, to military equipment to ATMs, we’re all familiar with systems. Increasingly, smart, connected devices are embedded in common, everyday devices in addition to special purpose systems, enabling huge improvements in our ability to manage the complexities of modern life.
As the world gets smarter, those familiar devices and systems are getting smarter too - more intelligent, instrument and interconnected. It’s estimated that by 2015 there will be a trillion Internet-connected devices - the “Internet of things” - opening up previously unimaginable opportunities for delivering new capabilities through the emergent behavior of many interacting systems. Whilst these capabilities will offer unprecedented ability to deliver fiscal and societal benefits, new approaches and perspectives are needed to safely and effectively deliver such “systems of systems.”
Characteristics of systems of systems
By “system” we mean a cohesive device consisting of some combination of software, electronics, mechanical, and other engineering disciplines. By “systems of systems” we mean conglomerations formed through the collection and interaction of dozens to thousands of constituent systems.
Systems of systems differ from traditional systems in a number of keys ways, including:
• Scale of functionality: may comprise from dozens to tens or hundreds of thousands of active components.
• Multivendor heterogeneous technology: multiple component technologies and systems from different vendors may be combined to realize the overall capability with no single organization having overall control of the design strategy.
• Number of simultaneously active stakeholders: the number of stakeholders and different roles may be massively higher than for conventional systems. Consider a power grid supplying every building in a region.
• Dynamic context: systems of systems are typically ‘always-on,’ so they must be stable in the face of changing environmental factors, such as users and workload and also as parts of the overall system are evolved or upgraded.
• Subtle and unpredictable interactions resulting in emergent behavior: unplanned, unobvious interactions may occur, which may not be predictable during the design process. Because such behavior cannot be designed it must be dealt with during operation of the system.
• Dependability requirements: because the implications of a system of systems failure may be societal rather than just technical, reliability, safety and security of operation are critical factors.
A recent report has suggested that 6-7% of Western economies’ GDP is dependent on global positioning system (GPS) data - with mobile phone systems, transportation systems and other key economic infrastructure dependent upon either positioning or precision timing signals. It is the potential consequences of such ‘accidental’ dependencies that make system of systems engineering so challenging.
Strategies for delivering quality in systems of systems
Quality is more important than ever due to the potential societal impact of systems of systems. Although there are many definitions of quality, in broad terms, it can be considered the overall reliability, safety and security - that is, the dependability of a system of systems.
Some useful quality strategies in system of systems delivery include:
• Integrated quality practices: it is widely recognized that quality cannot be tested-in as an afterthought, meaning that quality-related activities must infuse the entire development lifecycle.
• Architecture mining: making effective reuse of existing design data because system of systems design is rarely a ‘green-field.’
• High-fidelity model-based engineering: finding defects early ahead of (expensive) implementation.
• Rigorous impact analysis: using traceability, simulation and analysis to eliminate undesirable consequences of change.
• Ongoing optimization: providing run-time monitoring and resource allocation within the delivered system to cope with changing conditions within the operating environment.
• Self-healing: infusing the design with the capability to detect and work around faults without significant degradation of overall performance.
• Interface contract enforcement: providing interface metadata to enable runtime verification of interface integrity.
It is important to remember that these strategies do not exist in isolation - they build on each other. Rather than a ‘magic bullet,’ a broad approach is required based on an understanding of the nature of systems of systems.
Dependability is the key to a systems-of-systems approach
“Systems of systems” is a rapidly expanding field that offers the prize of high-value services which can deliver game-changing economic and societal benefits on a scale unmatched by previous technologies. But, if societies are to rely on systems of systems then dependability is absolutely vital to realizing those benefits.
The sheer scale and complexity of systems of systems requires new perspectives – “systems of systems” development is not “more of the same” but is qualitatively different from the development of single-purpose component systems. To be successful and reap the tremendous benefits offered by highly pervasive systems of systems will require new approaches and enabling technologies. This will have to come about via the concomitant application of synergistic capabilities such as integrated quality best practices, architectural mining, high-fidelity model-based engineering, impact analysis, ongoing optimization, self-healing, and contract enforcement.