Best Practice for Software Quality - Defining and Measuring Software Quality Objectives for Source Code
Philippe Spozio, Renault
Thierry Cambois, PSA Peugeot Citroën
When verifying and validating code, automotive manufacturers and their suppliers often share the objective of producing safe code with the right timing and cost. However, they have different ways of meeting this objective. The supplier may ensure quality through verification and validation in the development process; the manufacturer may check quality through verification and validation in the final product. Without a common approach on both sides, measuring the real quality of the end code can be a very complicated task.
In order to share their experience in using software verification tools such as PolySpace® code verifiers, automotive manufacturers Renault SA and PSA Peugeot Citroën, automotive suppliers Valeo and Delphi Diesel Systems Power Train, and MathWorks decided in 2007 to create a working group. This working group focused on defining software quality objectives for source code and a common approach to implement and measure them. This session presents their results.
Incremental Quality Objectives have been defined along the software life-cycle process, from the first code version to the ultimate code delivery. Along that path, we describe verification milestones, such as the absence of coding rules violations or the absence of run-time errors, and propose to associate different quality levels with different modules and different deliveries. The quality therefore relies on a modular verification approach based on a typical development process.
The final result is a tool-independent document that can be used as a step in a better formalization of relationships between car manufacturers and suppliers with regards to software quality objectives. As a consequence of this work, Renault and PSA integrated the document in their software requirement plan. Additionally, the document proposes a pragmatic way of using verification tools such as PolySpace code verifiers for the purpose of detecting coding rules violations or proving absence of run-time errors.
Recorded: 22 Jun 2010