Abstract
Many software systems, and especially systems of systems (SoS), depend on other systems to function correctly or are themselves composed of interdependent systems. In that context, behavioral changes in a dependency may have consequences for a dependent system. This includes changes to non-functional properties such as latency or availability. In this paper we use the term nonfunctional coupling to mean the extent to which a system is affected by changes to non-functional properties in other systems. We argue that non-functional coupling has implications for the reliability and performance of an overall system, as (for example) degradations in non-functional properties of one system may cascade to other systems if coupling is high. In this paper we propose a process for systematically analyzing the coupling in a model of an SoS and illustrate that process with a simple case study showing how it can provide insights into system behavior, and how those insights can help with design decisions.

