A vitally important aspect of software development is reflected by the edict: “the software should work as expected.” LDRA’s Design Review widens the scope of the static analysis provided by Code Review and Quality Review to include an analysis of the as-built design of the source code. Your code’s structure, control flow and data flow are examined, making design conformance (or non-conformance) visible.
Design Review also establishes a methodology to achieve LDRA’s mission of bringing “Zero Defect Software Development” to any software team. By ensuring the elimination of runtime defects before they drive up costs during system test and deployment, Design Review becomes a primary basis for the LDRA Tool Suite’s return on investment.
Correctness of Design
The LDRA Callgraph and Flowgraph (constructed by Code Review) are extended by a comprehensive analysis of all parameters and data objects used in your code. This expanded model can be employed to determine requirements traceability and the correctness of design. To better serve this purpose, an automatic header comment generation option is also provided.
Design Review can also be used by architects and design leads to ensure design consistency before disseminating requirements to developers and testers. Code is analyzed without requiring compilation, thereby supporting a seamless transition from design to full scale implementation.
Interface and Coupling Analysis
The analysis of interfaces includes the documentation of procedure prototype declarations, the parameters that are used by these procedures and the testing of interface consistency throughout your implementation. For C++, class contracts are documented including member variables and methods.
Interface analysis identifies potentially erroneous program variables. The tool produces a complete analysis of all procedure parameters, global variables and the values yielded by functions.
Control and data coupling, two key elements in assessing the testability of your design are documented in “spider” graphs and data object analysis reports, respectively.
Data flow anomalies are sequences of actions related to program variables which are suspected to be erroneous. Messages produced by the Data Flow Analysis report detect different types of data flow anomalies.
Data Flow Analysis is performed across procedure boundaries in the source file or system-wide and anomalies are reported as they are identified.
The behaviour of the Design Review model is examined by an automated process, called Feasibility Testing, which produces a test environment wherein all feasible paths can be executed. The full utilization of this test environment is most effectively accomplished in the LDRA Unit Test component.
In C/C++, the most common runtime errors are frequently associated with your memory management system (MMS) and the use of memory artefacts by pointers. LDRA examines these problem areas, as well as struct, linked list and array usage.
The key benefits of design review are:
The key deliverable is enabling a review to be conducted to verify the design specification has been implemented as intended.