completed 11/2003
Since the beginning of the nineteen-nineties, the BG Institute for occupational Safety and Health (BIA) has routinely employed a tool for systematic analysis of safety-related software for machine guarding. This tool identifies some 40 metrics (numeric dimensions of quality for software) and determines from fewer than ten of them the quality criteria for the software under analysis. The software has been employed over the last ten years for analysis of numerous industrial projects. The tool employed by the BIA for static analysis of safety-related software essentially employs quality metrics to determine the scale (Halstead Software Science) and complexity (cyclomatic complexity as described by McCabe) for measurement of the quality criteria of simplicity, testability, readability and self-descriptiveness. The criteria are derived by simple linear relationships from seven metrics. These criteria are in turn used to produce a quality report on the software as a whole which describes whether the software is accepted, is to be documented, to be inspected, to be tested, or must be re-written. As the tool employed for this purpose was developed in the aeronautics industry, extrapolation of the metrics for the quality criteria to machine guarding is subject to major limitations. A systematic analysis of safety-related commercial software for machine guarding was intended to facilitate the definition of quality criteria for machine guarding.
A systematic study of all metrics of safety-related software accepted in machine guarding and of rejected software was intended to provide a sound basis for quality criteria for safety-related software employed for machine guarding. For this purpose, commercial projects written in assembler and in the high-level programming language C were studied. A comprehensive literature survey resulted in all metrics employed by the tool being described in detail, and their relevance to quality criteria analysed. The formulae for testability, simplicity, readability and self-descriptiveness were extended such that they comply with the requirements of machine guarding. Where possible, the new formulae were integrated into the existing tool in order for them to serve as a basis for future analysis of software for machine guarding. For comprehensive analysis on the PC, a dedicated tool was developed with which all new metrics and quality criteria can be determined.
The metrics and quality criteria employed by the Logiscope tool were described in detail and studied with regard to their significance as quality metrics for machine safety. An Excel-based tool was developed for straightforward comparison of industrial software analysed by the BIA. The same tool also enables new metrics to be included in the assessment, the assessment limits of older metrics to be adapted, and new quality criteria to be defined. A program was also developed by which Logiscope results files obtained on an Apollo workstation can be processed further on a PC platform. Transfer of the results is fully automated. Evaluation of the results obtained by Logiscope with the aid of the metrics and quality criteria employed was limited to six large-scale industrial products in assembler with over 1, 200 modules and over 23,000 lines of code. For the assembler language, sound new metrics were developed on the basis of the linguistic and structural metrics provided by the tool. The quality criteria were adapted intelligently and reasonably in consideration of the features peculiar to safety-related software. The assessment and also the development of proposed improvements does not currently encompass the high-level programming language C; the tool created does however enable the results to be transferred with ease to this programming language.
Further informations:
-cross sectoral-
Type of hazard:Mechanische Gefährdungen, -Verschiedenes-
Catchwords:Softwareergonomie, Sicherheitstechnik, Maschinensicherheit
Description, key words:static analysis of safety-related software, metrics, McCabe, Halstead, quality criteria, assembler, high-level programming language C, machine guarding