Un système critique, en anglais safety-critical system ou life-critical system, « système vital pour la sécurité » ou « pour la survie », est un système dont la panne peut avoir des conséquences dramatiques, comme des morts ou des blessés graves, des dégâts matériels importants, ou des conséquences graves pour l'environnement. L'analyse des systèmes critiques ne se limite pas à celle que permet, aujourd'hui de plus en plus, l'informatique de contrôle des processus, fussent-ils mécaniques ou humains.
Dans le monde de l'informatique, les systèmes qualifiés de « critiques » se retrouvent par exemple dans :
En fait, par la diffusion généralisée des technologies à base d'informatique et donc de l'impact plus massif d'un défaut quelconque, la notion de criticité tend à se diffuser, même s'il s'agit plus souvent d'un risque de désorganisation sur les plans économique, social ou financier.
Il existe différents niveaux de criticité d'un système, suivant l'impact possible des dysfonctionnements. On apprécie ainsi différemment, par exemple, un dysfonctionnement provoquant des pertes coûteuses, mais sans mort d'homme (cas des missions spatiales non habitées) et un dysfonctionnement provoquant des morts dans le grand public (cas des vols commerciaux). De même, on apprécie différemment des dysfonctionnements faisant courir un danger de mort ou de blessure à des humains, ou des dysfonctionnements augmentant la charge de travail et les risques d'erreur de pilotage des opérateurs humains.
La criticité du système définit un niveau d'exigence par rapport à la tolérance aux pannes. Elle aura des conséquences sur l'évaluation des niveaux d'assurance pour la sécurité.
En aéronautique, le niveau de criticité d'un système critique est calculé pour chaque « événement redouté » (terme que l'on peut traduire de l'anglais failure condition) du système. Il existe cinq niveaux, qui sont détaillés dans ARP4761A/ED-135. Pour chaque fonction que doit remplir ce système, les événements redoutés sont évalués en fonction de leur effet :
Ces niveaux se déclinent en deux types d'obligations : des obligations qui concernent la fiabilité et la tolérance aux pannes, d'une part et des obligations au niveau de la qualité en développement, d'autre part.
En ce qui concerne le niveau de fiabilité du système, le taux de panne toléré est donné suivant le niveau de l'événement redouté le plus élevé. Il est donné en nombre de pannes par heure de vol (valeur bien inférieure à un). Dans la dernière colonne, cette valeur est mise sous forme de nombre d'heures de vol requis sans que la panne apparaisse (valeur statistique).
| Niveau de l'événement redouté
le plus élevé. |
Taux de pannes toléré | Nombre d'heures de vol requis
sans pannes |
|---|---|---|
| CAT | 1 * 10 -9 | 1 000 000 000 heures de vol |
| HAZ | 1 * 10 -7 | 10 000 000 heures de vol |
| MAJ | 1 * 10 -5 | 100 000 heures de vol |
| MIN | 1 * 10 -3 | 1 000 heures de vol |
| No Effect | Non spécifié | Non spécifié |
Pour obtenir ces valeurs de fiabilité, les systèmes sont souvent constitués de composants (ou items) redondants et indépendants pour les systèmes supportant les événements redoutés les plus élevés.
Par exemple, en ce qui concerne les avions Airbus, le système le plus critique, les commandes de vol électrique, inclus trois calculateurs redondants (les PRIM). Si ces trois calculateurs sont simultanément en panne, en redondance, deux autres calculateurs (les SEC) peuvent prendre le relais. Un seul de ces cinq calculateurs suffit pour assurer la fonction, le fait de ces redondances ne fait qu'assurer la contrainte de robustesse aux pannes. Il n'est jamais arrivé que les cinq calculateurs tombent en panne en même temps, malgré le nombre très important d'heures de vol cumulées.
En ce qui concerne le second point, la norme ARP4754/ED-79 sépare les systèmes avioniques en 5 catégories de DAL (Design Assurance Level, en anglais) :
| Niveau de l'événement redouté
le plus élevé. |
DAL associé. |
|---|---|
| CAT | A |
| HAZ | B |
| MAJ | C |
| MIN | D |
| No Effect | E |
Cette norme identifie, en fonction du niveau de sécurité requis pour le système (appelé le FDAL, pour Functionnal Design Assurance Level, en anglais) et en fonction de l'architecture du système (simplex, redondant, dissymétriques ...), pour les items organiques du système, les niveaux nécessaires pour chacun d'eux (appelé le IDAL, pour Item Design Assurance Level, en anglais), en suivant les normes spécifiques : DO-178/ED-12 pour les logiciels, DO-254/ED-80 pour le matériel (hardware, en anglais).
Un logiciel critique est un logiciel dont le mauvais fonctionnement aurait un impact important sur la sécurité ou la vie des personnes, des entreprises ou des biens.
L'ingénierie logicielle pour les systèmes critiques est particulièrement difficile, dès lors que les systèmes sont complexes, mais l'industrie aéronautique, ou plus généralement l'industrie du transport de passagers, a réussi à définir des méthodes pour réaliser des logiciels critiques. Des méthodes formelles peuvent servir à améliorer la qualité du logiciel des systèmes critiques. Le coût de réalisation d'un logiciel de « système critique » est beaucoup plus élevé que celui d'un logiciel ordinaire.
Les précautions à prendre dans le développement sont habituellement fixées par une norme, et dépendent du domaine d'application et surtout de la criticité du logiciel. Généralement, on trouve des impératifs :
Dans le milieu aéronautique, les contraintes de développement des logiciels critiques sont données par le standard DO-178/ED-12, en accord avec le niveau de DAL associé,.
La mise en œuvre de systèmes critiques implique une adaptation de l'architecture physique dans une optique de fiabilité et de sécurisation. L'architecture doit répondre aux risques identifiés.
La fiabilité passe par un plan de continuité d'activité et des infrastructures adaptées. Des exemples de mesure sont :
La sécurité peut être renforcée par :
Les systèmes les plus critiques sont majoritairement soumis à des autorités de certification, qui vérifient que les impératifs prévus par la norme ont été remplis.
Dans le cas de l'aviation commerciale, la certification des aéronefs est régie en Europe par les réglementations CS-23 Normal, Utility, Aerobatic and Commuter Aeroplanes, CS-25 Large Aeroplanes, CS-27 Small Rotorcraft, CS-29 Large Rotorcraft de l'EASA, ou de leurs équivalents américains, 14 CFR Parts 23, 25, 27 et 29, de la FAA.