Article de référence | Réf : BM8071 v1

Sécurisation d'une application logicielle
Sécurisation des systèmes mécatroniques. Partie 2 - Techniques de mises en sécurité d'une application logicielle

Auteur(s) : Jean-Louis BOULANGER

Date de publication : 10 janv. 2011

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

RÉSUMÉ

Les systèmes mécatroniques sont de plus en plus complexes. Ils induisent par voie de conséquence de multiples défaillances. La sécurisation de ces systèmes vise à combattre ces erreurs et à tenter d'en limiter le risque. Cet article s'intéresse à l'aspect application logicielle, dont la sécurité passe par la maîtrise de la qualité. Sont présentées quelques techniques de programmation tolérante (redondance, détection d'ereurs ou programmation défensive). Les fautes sont souvent dues au caractère artisanal de la réalisation d'une application logicielle, et l'utilisation d'outils d'un environnement de développement ne retire pas au logiciel sa complexité intrinsèque.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

INTRODUCTION

Dans cette seconde partie [BM 8071] sur la sécurisation des systèmes mécatroniques, nous nous intéressons à l'aspect « application logicielle » (composante informatique). Le risque lié à l'architecture matérielle (composante électronique) ayant été traité dans la première partie [BM 8 070]. Pour ce qui concerne les concepts de base et les normes applicables à la sécurisation des systèmes mécatroniques, le lecteur se reportera également en [BM 8 070].

La sécurité d'une application logicielle passe principalement par la maîtrise de la qualité (évitement et élimination des fautes). Nous présentons :

  • les principes de la maîtrise de la qualité (ISO 9001:2000) ;

  • quelques techniques de programmation tolérante (la redondance, la détection d'erreur ou la programmation défensive) ;

  • l'apport des méthodes formelles.

La réalisation d'une application logicielle est actuellement une activité à la portée de tous. La mise à disposition d'environnements de développement (Case Tools , cf. [Doc. BM 8 070]), proposant la modélisation, des vérifications et la génération automatique de code, a grandement simplifié le développement d'une application logicielle. Mais la principale particularité du logiciel est la présence de fautes (bug ). Ces fautes peuvent être systématiquement exécutées et leur présence est due au caractère artisanal de la réalisation d'une application logicielle. L'utilisation d'environnements de développement donne l'impression d'industrialiser la réalisation d'une application logicielle mais il n'en est rien. En effet, les outils d'un environnement de développement sont développés classiquement et leur utilisation a tendance à faire oublier la complexité intrinsèque du logiciel au travers de représentations graphiques plus ou moins claires. La présence de fautes est un fait et il faut soit les accepter, soit les gérer, soit les corriger.

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-bm8071


Cet article fait partie de l’offre

Fonctions et composants mécaniques

(214 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

2. Sécurisation d'une application logicielle

Il existe un certain nombre de techniques pouvant être mises en œuvre durant le cycle de développement pour maîtriser les états incorrects de l'application logicielle. Ces techniques permettent de contrôler l'état de l'application logicielle et même pour certaines de revenir dans un état correct.

Concernant la sécurisation d'une application logicielle, il peut être mis en place différentes techniques telles que :

  • la gestion des erreurs ;

  • le recouvrement des erreurs ;

  • la programmation défensive ;

  • la double exécution de l'application logicielle ;

  • la redondance des données.

Ce paragraphe a pour objectif de présenter ces différentes techniques et d'identifier leurs points forts et leurs points faibles.

2.1 Gestion des erreurs

L'implantation d'une spécification est confrontée à la difficulté suivante « comment indiquer que l'on rencontre des erreurs ou des conditions exceptionnelles lors de l'exécution d'un service (fonction, procédure, morceau de code…) ». En effet dans des conditions normales, le résultat d'une opération est d'un certain genre (pour l'implémentation d'un certain type) alors que, lors de la rencontre de conditions exceptionnelles, ce résultat ne peut pas prendre une des valeurs de ce genre du fait même de la condition d'erreur. L'indication de l'erreur ne peut normalement pas être dans le domaine du type « retourné à ». Nous nous heurtons à une incompatibilité de type. Plusieurs approches peuvent résoudre ce problème :

  • la première solution consiste à étendre le type et donc à définir une constante spéciale comme « indéfini » et, dans les cas d'erreurs, retourner ce résultat « indéfini » ;

  • la seconde solution consiste à introduire un paramètre d'identification d'erreur, ainsi l'opération retourne un n-uplet dont l'une des composantes indique si l'opération s'est bien déroulée ou non.

La première solution est bien sûr la plus élégante, mais si elle constitue une solution au niveau de la spécification, elle n'est pas pour autant applicable au niveau d'une implémentation car il n'est pas toujours possible de trouver l'équivalent en termes de langage de programmation. C'est pourquoi,...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Fonctions et composants mécaniques

(214 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Sécurisation d'une application logicielle
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - ABRIAL (Jr.) -   The B book – Assigning programs to meanings.  -  Cambridge University Press, Cambridge, août 1996.

  • (2) - BALEANI (M.), FERRARI (A.), MANGERUCA (L.), PERI (M.), PEZZINI (S.) -   Fault-tolerant platforms for automotive safety critical applications.  -  Proceedings of the 2003 international conference on Compilers, architecture and synthesis for embedded systems, p. 170-177 (2003).

  • (3) - BIED-CHARRETON (D.) -   Concepts de mise en sécurité des architectures informatiques.  -  Recherche Transports Sécurité, no 64, p. 21-36, juil.-sept. 1999.

  • (4) - DUFOUR (J.L.) -   Automotive safety concepts : 10-9/h for less than 100E a piece.  -  Automation, Assistence and Embedded Real Time Platforms for Transportation, AAET, Braunschweig, Allemagne, 16-17 fév. 2005.

  • (5) - GEORGES (J.P.) -   Principes et fonctionnement du Système d'Aide à la Conduite, à l'Exploitation et à la Maintenance (SACEM). Application à la ligne A du RER.  -  Revue Générale des Chemins de Fer, no 6, juin 1990.

  • ...

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Fonctions et composants mécaniques

(214 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS