- STPA (System Theoretic Process Analysis) est une méthode qui modélise les boucles de contrôle-rétroaction de systèmes complexes à partir de la théorie des systèmes et du contrôle
- Google utilise STPA pour analyser des systèmes logiciels et découvrir des risques potentiels
- STPA traite la sûreté du système comme un problème de contrôle et analyse toutes les actions de contrôle pouvant faire basculer le système dans un état dangereux
- L’approche cherche les causes profondes en se concentrant sur les états dangereux plutôt que sur le résultat d’actions individuelles
- Comprendre les actions de contrôle qui mènent à un état dangereux permet de les prévenir ou d’automatiser la reprise
- Si la reprise automatique est difficile, il est possible d’alerter un opérateur humain
Pourquoi Google personnalise la formation STPA
- Les cas de réussite où STPA permet de découvrir à l’avance des problèmes non identifiés et de prévenir des incidents se multiplient
- Les supports de formation STPA existants sont centrés sur les systèmes physiques, ce qui les rend difficiles à appliquer à des environnements logiciels
- Une formation sur mesure adaptée aux systèmes purement logiciels de Google est devenue nécessaire
Premières tentatives de formation STPA
- Début de la formation initiale dès 2021 (pour 40 ingénieurs Google)
- Utilisation de cas issus de systèmes physiques (ex. le crash de Mars Polar Lander) → faible adhésion des ingénieurs logiciels
- Prise de conscience de la nécessité de cas réels appliqués aux systèmes Google
Enseigner le concept de structure de contrôle
- Une structure de contrôle (control structure) est constituée d’une boucle de contrôle-rétroaction de base
- Un contrôleur pilote les changements d’état → vérifie l’état via le retour d’information puis décide de l’action suivante
- Exemples d’application dans un environnement logiciel
- Ex. suppression ou modification de contenus erronés dans une base de données de contenus générés par les utilisateurs
- Si la boucle de rétroaction est mal conçue, des actions de contrôle erronées peuvent se produire
- Défis pédagogiques
- Il est difficile, dans un temps limité, d’enseigner la conception de structures de contrôle réellement utiles
- Comme chaque système logiciel a sa propre structure de contrôle, il est difficile de fournir un retour pertinent
Stratégie d’amélioration de la formation STPA
- Enseigner toutes les étapes de STPA → aider les ingénieurs à mener STPA de manière autonome
- Utiliser des cas réels de Google → expliquer la théorie puis l’appliquer à des cas concrets
- Mettre l’accent sur le renforcement des chemins de rétroaction dans les structures de contrôle
- Analyse de cas où un mauvais retour d’information → action de contrôle erronée → incident
- Manque de retour d’information pour les opérateurs humains → apparition d’un état dangereux
L’importance du retour d’information
- Dans un système Google, un retour d’information erroné a entraîné, 30 jours plus tard, une mauvaise action de contrôle → incident
- La cause était à la fois un retour d’information erroné et l’absence de retour suffisant vers les opérateurs humains
- Une conception correcte du retour d’information peut prévenir les incidents
- L’explosion de la fusée Ariane 5 est aussi un exemple d’erreur de retour d’information
- Une erreur s’est produite lors de la conversion de données en virgule flottante en entier
- Erreur de retour d’information → mauvaise perception de l’état → erreur d’orientation de la fusée puis explosion
Diagramme de flux de données vs. structure de contrôle
- Diagramme de flux de données (Dataflow Diagram)
- Montre comment les données circulent entre les composants logiciels
- Le retour d’information et la structure de contrôle n’y apparaissent pas clairement
- Structure de contrôle (Control Structure)
- Montre les actions de contrôle et le retour d’information → la hiérarchie de contrôle est claire
- Facilite l’identification des problèmes de rétroaction → permet de remonter plus facilement à la cause dans les interactions de systèmes complexes
Effets de l’application de STPA
- Dans des logiciels complexes, permet de réduire de plusieurs millions de lignes de code à quelques centaines les zones où un problème est le plus susceptible de se produire
- La mise en scénario d’actions de contrôle dangereuses permet d’identifier le code problématique
- Dans des cas réels, la construction de la structure de contrôle a permis d’identifier puis de corriger un manque de retour d’information
Évolution de la stratégie de formation
- Passage de longues formations à des sessions plus courtes
- Tutoriels de 30 à 60 minutes → amener les ingénieurs intéressés à participer à des ateliers
- Introduction d’un modèle d’apprentissage autonome
- Courtes vidéos + exercices → encourager l’application de STPA à des systèmes réels
- Renforcement de la formation pour permettre d’effectuer une première analyse STPA sans intervention d’experts
Stratégie de diffusion de STPA chez Google
- Former des experts STPA → capables de diffuser STPA au sein de leurs équipes
- Succès initiaux → extension à d’autres équipes → application de STPA à l’échelle de l’organisation
- Après la formation STPA, les facteurs de risque peuvent être éliminés dès la phase de conception
Applicable aussi dans d’autres entreprises
- STPA est un outil puissant pour trouver des « risques non identifiés » dans des systèmes logiciels complexes
- Il est possible de commencer dans une petite équipe puis d’étendre la pratique sous l’impulsion d’experts STPA
- Le point clé est de développer une formation STPA adaptée à l’entreprise
- Après quelques tâtonnements initiaux, il est possible de corriger la trajectoire → et, au final, d’améliorer la stabilité et la fiabilité du système
1 commentaires
Commentaires sur Hacker News
Chez Google, il y a eu un cas où un contrôleur logiciel a reçu un retour erroné et a exécuté une action de contrôle dangereuse
Le cours sur la STPA est bien structuré, et l’exemple de Google a été utile
La STPA est un framework de revue de conception destiné à trouver des modes de défaillance moins évidents
Certains disent que c’est difficile à comprendre, mais qu’ils veulent quand même en apprendre davantage
Cela aurait été plus convaincant s’il y avait eu des cas réels où la STPA a permis de résoudre des problèmes de fiabilité chez Google
STAMP/STPA fonctionne bien comme modèle et méthodologie pour les systèmes complexes
Après avoir construit une structure de contrôle en collaboration avec des experts système, il est devenu immédiatement clair que le contrôleur C manquait de feedback vers B
Il s’agit d’un récit d’entreprise exagéré, plein de buzzwords, qui tente de faire passer de vieilles idées pour quelque chose d’innovant
Certains disent qu’ils aimeraient que Google reste silencieux pendant un an, en faisant juste un bruit d’aspirateur