^

Capabilities

Capabilities

Data Flow/Control Flow Analysis

Data flow analysis and control flow analysis for embedded software testing

Manual peer reviews are time-consuming, costly, and error prone. Raising the level of abstraction quickly provides insight into the architecture and behaviour, control flow, and data flow of the code, highlighting potential problem areas. Small wonder Data flow analysis and control flow analysis are fundamental to the standards guiding critical systems development.

What is control flow analysis for embedded software testing?

Relating the text of a program written using a high-level language to its possible execution sequences is not an intuitive process. Those sequences are dictated by decision points in the software; that is, combinations of one or more conditions that define the conditions for subsequent program behaviour.

Control flow analysis focuses on those decision points to provide a more intuitive representation of that behaviour, known as control flow graphs (or control flow diagrams). In turn, that helps developers to ensure that the code they have written fulfils their intentions.

What is dynamic control flow analysis for embedded software testing?

With the static control flow analysis completed, it is then possible to exercise the code and identify which execution paths have been exercised, and which haven’t. This illustration from the LDRA tool suite shows how flow diagrams can be colour-coded to show whether execution paths have been exercised, or not.

What is data flow analysis for embedded software testing?

Just as control flow is not easily discernible from the text of a program written using a high-level language, neither is the effect it has on the data it manipulates.

Data flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. It uses information derived from control flow analysis to determine how values assigned to variables might propagate.

What is dynamic data flow analysis for embedded software testing?

With the static data flow analysis completed, it is then possible to exercise the code and identify those points in the code where the data has been manipulated or read. The green areas in this report generated by the LDRA tool suite shows that all data it references has been exercised.

Data flow analysis and control flow analysis in standards for critical systems

Both data flow analysis and control flow analysis are core principles promoted by DO-178C in civil aviation, IEC 61508 for electronic control systems generally, and the many derivatives of ISO 61508. These include ISO 26262 in automotive, IEC 62304 in medical device, the EN 5012x series in GTS, the ECSS series in space applications, and many more.

For example, IEC 62304 Edition 1.1 § 5.4.4 states that “when present in the design, the MANUFACTURER shall include acceptable criteria as appropriate for … data and control flow

 

How does control flow relate to control coupling in embedded software?

Control coupling is defined in Annex B of DO-178C as:

“The manner or degree by which one software component influences the execution of another software component.”

The control flow of a program is therefore impacted by the extent of its control coupling. Although DO-178C is specific to aviation, this definition of control coupling is applicable across all sectors.

How does data flow relate to data coupling in embedded software?

Data coupling is defined in Annex B of DO-178C as:

“The dependence of a software component on data not exclusively under the control of that software component.”

The data flow of a program is therefore impacted by the extent of its data coupling. Although DO-178C is specific to aviation, this definition of data coupling is applicable across all sectors.

Data flow analysis and control flow analysis tools from LDRA

  • The LDRA Testbed component of the LDRA tool suite provides its foundational static and dynamic analysis engine. TBvision provides the core data flow analysis and control flow analysis capabilities for embedded software, and a visualization engine to easily understand and navigate the results of those analyses.
  • The structural coverage analysis capabilities of the LDRA tool suite support its dynamic data flow and control flow capabilities.
  • The TBrun component of the LDRA tool suite provides test case management and automated execution for unit and integration testing. This functionality is potentially relevant when working with dynamic data flow and control flow analyses.
  • The Dynamic Data Flow Coverage (DDFC) and TBsafe optional modules are prerequisite where the provision of dynamic data flow analysis is a requirement. They provide the appropriate additions to the Testbed static and dynamic analysis engine of the LDRA tool suite.

Additional information and training materials

Data flow analysis and control flow analysis – free pdf downloads

Data flow analysis and control flow analysis – further information

FREE 30 Day
TRIAL

Email Us

Email: info@ldra.com

Call Us

EMEA: +44 (0)151 649 9300

USA: +1 (855) 855 5372

INDIA: +91 80 4080 8707

Connect with LDRA