The Dynamic Dataflow Coverage feature of the LDRA tool suite was specifically designed to address a requirement of avionics-related standards such as DO-178C and DO-248C which define data coupling to be “The dependence of a software component on data not exclusively under the control of that software component” and require that “Test coverage of software structure, both data and control coupling, is achieved.” As with control coupling analysis, any dataflow measurements must be derived from the execution of requirements based tests.
The example below is taken from related standard DO-248C. The expected behaviour of this code is to first calculate the airspeed and then display it, in that order.
This report was generated from executing the test case above.
It shows dynamic data flow information revealing that airspeed was in fact not written to on line 36 and wasn’t updated before it was displayed, potentially displaying inaccurate information.
In general, the observed data flow provides the information required to reconcile the data interaction, requirements and architecture, and the behaviour of the application.
Data coupling analysis is focused on the observation and analysis of data elements (such as airspeed) as they are set and used (“set/use pairs”) across software component boundaries. Manually performing these exercises with debuggers is labour intensive, difficult to repeat, and error prone. Automating the activity dramatically reduces that overhead.