Optimized Strategies for Gathering, Analyzing and Testing of Data Coupling & Control Coupling Analysis in Critical DO-178C Projects
How to exactly satisfy the Data Coupling and Control Coupling objective in DO-178 has often been misunderstood. Part of this comes from the definition documented in the DO-178B, which did not truly reflect the concern that the objective addressed and that the objective could be satisfied by reliance on analysis without any testing. Changes in DO-178C to reflect the concern more accurately has sometimes confused the issue for many developers, and as a result, the topic has been the focus of a CAST paper and several DO-178 FAQ’s.
The definitions in DO-178B and DO-178C are exactly the same:
- Data Coupling (DC): The dependence of a software component on data, not exclusively under the control of that component.
- Control Coupling (CC): The manner or degree by which one software component influences the execution of another software component.
So, what exactly is Data Coupling and Control Coupling? While the definitions provided in DO-178 are succinct, what they actually mean in software terms requires further explanation, which is best achieved using some examples. Consider the following relationship between software Components. The formal definition of Coupling is “the degree of independence between the software components.”
This DO-178C whitepaper aims to explain exactly what Data Coupling and Control Coupling (DCCC) are and identify what the DO-178C Certification concern is that is behind the objective. In clarifying what the real issue is, this whitepaper will identify where in the development lifecycle the issue should be considered, what activities should be performed in order to mitigate the concern and therefore achieve the objective.