Software Engineering Institute Carnegie Mellon

ISIS Main Page
Conferences, Workshops,
and Other Events
Presentations
Publications
References
ISIS Staff
Working with Us
Performance-Critical Systems
COTS-Based Systems
Dynamic Systems Program

Defining Architectures for Interoperability

  

Systems of systems are dynamic entities. Systems are added, modified or removed from the SoS as requirements change. The integration infrastructure changes with advances of technology or needs for different quality of service (QoS) arise.

A system of systems architecture provides a framework for structuring the nodes that compose the system of systems, regardless of their source (commercial-off-the-shelf (COTS), non-developmental items (NDI), custom, legacy, services). It captures the scope of the nodes, and how they will interact within the system of systems. In essence, it is a vehicle for incorporating existing or planned nodes into the SoS, to make decisions, to analyze tradeoffs, to communicate, or ultimately to document the current status of the SoS architecture.

An evolvable architecture is both an architecture that allows the SoS to change and an architecture that changes as needed. Evolvable architectures are essential to achieving the efficient evolution of SoSs. The goal of an evolvable architecture is to isolate and insulate the SoS from the effects of change.

State of the Practice

Fundamentally, an evolvable architecture is a proactive mitigation against the risks of constant change. Evolvable architectures require up-front engineering; evolvability is very difficult and very expensive to add later. To achieve one, skilled people with sufficient time and resources to create, validate, control, and maintain it are required.

A system architect must have excellent current and predictive knowledge of the domain in which the SoS operates, integration technologies, and systems participating in the SoS, and must factor them into the definition and construction of the architecture. Obtaining detailed knowledge about the participating systems is often difficult often due to the lack of visibility of the internals of the nodes. The challenge for the architect is then to identify the changes that may occur and how likely they are to occur.

There are several mechanisms used by architects to to accommodate future change with minimal impact. Some of the most common are: