In this second part [BM 8071] on securing mechatronic systems, we focus on the "software application" aspect (IT component). The risk associated with the hardware architecture (electronic component) was dealt with in the first part
[BM 8 070]
. For basic concepts and standards applicable to securing mechatronic systems, please refer to
[BM 8 070]
.
The security of a software application depends primarily on quality control (fault avoidance and elimination). We present :
the principles of quality control (ISO 9001:2000) ;
some tolerant programming techniques (redundancy, error detection or defensive programming) ;
the contribution of formal methods.
Nowadays, anyone can create a software application. The availability of development environments (Case Tools , cf. [Doc. BM 8 070]), offering modeling, verification and automatic code generation, has greatly simplified the development of a software application. But the main feature of software is the presence of bugs. These faults can be systematically executed, and their presence is due to the artisanal nature of software development. The use of development environments gives the impression of industrializing the production of a software application, but this is not the case. In fact, the tools of a development environment are classically developed, and their use tends to make us forget the intrinsic complexity of the software through more or less clear graphical representations. The presence of errors is a fact, and they must be accepted, managed and corrected.