Impacts of SoS on Software Development USC CSSE Workshop Integrating Systems and Software Engineering October 29, 2007 Gary Hafen Corporate Fellow, Software Engineering Situation • Software is providing an increasing percentage of functionality in our systems – Space Craft – Aircraft – Ships – Automobiles – Cell Phones – Etc. Situation • Systems are being networked to achieve capabilities beyond what individual systems alone can provide – System of Systems – Family of Systems – Global Information Grid – Communities of Interest Ramification • Monolithic System design methods and techniques won’t scale up to an asynchronous, loosely coupled, multinode, system of systems – Does not hierarchically decompose functionally – Manage and minimize constraints vs. variables – Adaptive vs. conformal interface logic Monolithic System Design • Defined and Contained Scope of Function • Centralized control – Can design with hierarchical structure • Deterministic Behavior – Desirable characteristic that is verified and validated • Planned Evolution – Controlled centrally Traditional Acquisition Process Works For These Systems SoS Design • Initially Defined Scope of Function – Not all requirements can be known • Decentralized control of internal and external interfaces – Architecture must be adaptive to uncontrolled interface changes • Behavior Emerges – Cannot perform traditional Verification – Emerging behavior may be good or bad depending on objectives and constraints • SoS Evolution is not controlled by a central authority – It Happens Impact on Software - 1 • Software Requirements Allocation is problematic – All requirements are not known – Software solutions must balance performance versus adaptability/flexibility – Functionality may need to be migrated between nonheterogeneous systems – Interfaces cannot be assured to be consistent or even present • Functionality must adapt to external environment • Creates a wider range of test conditions Requirements Growth/Instability is a Traditional Software Risk Impact on Software - 2 • Software Architecture Technologies – Standards such as DoDAF, SoA, XML, CORBA are necessary – Adaptive, intelligent network awareness characteristics are now required – Exploitation of Expert Agent and Data Mining Technologies to achieve capability – Polymorphic Computing Architectures – Fault Containment/Tolerance to unplanned external stimulus Non-Determinism is Now an Asset Impact on Software - 3 • Implementation Technologies – Model Based Development – Auto-generation of code, test vectors – 4th or 5th generation languages – Intelligent System composition tools – Performance and Quality of Service assurance Impact on Software - 4 • Test/Verification/Validation – Non-deterministic functional operation – Uncontrolled Test Environment – Isolation of errors in shared SoS architecture space – Intelligent System validation • Software Assurance – Multiple Independent Levels of Security – Information Assurance in an Information Warfare environment – Cyber Attack Summary • A System of Systems cannot be defined, designed, developed, verified and validated by conventional system development processes • What used to be considered design “gold plating” may now be mainstream thinking • Controlling functional performance to a confined envelope of conditions is no longer feasible – Emergent behavior has to be evaluated as desirable or undesirable – Adaptive characteristics need to be included in requirements allocation • With the lack of controlled behavior, continuous Software Assurance becomes a focused priority.