Skip to the content.

Études de cas

Ariane 5

La théorie

youtube.com/watch?v=_rNmszfIvAw


Le vol d’inauguration

4 juin 1996   Ariane 501   Vol 88   4 satellites
youtube.com/watch?v=fCnO-UYF3co

Ariane 4

Ariane 5

Coût

C’était le bug le plus coûteux du monde.

3 milliards de francs (de l’époque)
pour les 4 satellites, le lancement,
les 16 mois de retard du projet…

Coût de l’image ternie de la marque.

Un petit bug…

… un grand boum !

Code source Ada

Scan du code source Ada du SRI

Le petit bug

Test des bornes -32768..32767 de la composante Verticale BV

L_M_BV_32 := TBD.T_ENTIER_32S ((1.0/C_M_LSB_BV) *
                              G_M_INFO_DERIVE(T_ALG.E_BV));

if L_M_BV_32 > 32767 then
   P_M_DERIVE(T_ALG.E_BV) := 16#7FFF#;
elsif L_M_BV_32 < -32768 then
   P_M_DERIVE(T_ALG.E_BV) := 16#8000#;
else
   P_M_DERIVE(T_ALG.E_BV) := UC_16S_EN_16NS(TDB.T_ENTIER_16S(L_M_BV_32));
end if;

Et pour l'**H**orizontale `BH` ?

P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S
                                   ((1.0/C_M_LSB_BH) *
                                   G_M_INFO_DERIVE(T_ALG.E_BH)));

Commission d’enquête

Rapport rendu un mois après l’incident

  1. Les concepteurs du calculateur de la trajectoire
    ont volontairement exclu la spécificité d’Ariane 5.

  2. La commission (composée d’ingénieurs logiciel)
    conclut à un problème logiciel.

Lire aussi : Arnold et Bielefeld

Enquêtes indépendantes

  1. Gérard Le Lann (INRIA) conclut
    à un problème d’intégration système

  2. Mark Dowson insiste sur l’environnement de travail

    • Pressions budgétaires
    • Pressions sur les délais
    • If it’s not broken don’t fix it
    • Carriérisme des managers, Politique

Que retenir du cas Ariane 501 ?

  1. Le changement justifie le test

  2. Ne pas laisser tomber la qualité face

    • aux contraintes budget
    • aux contraintes planning
    • au conservatisme (continuous refactoring)
    • à la politique…

Autres cas

Toyota

Accélération inattendue du véhicule

Knight Capital Group (2012)

Comment perdre 440 millions $ en 45 minutes ?

(qu’est devenu KCG ?)

Apple (2014)

OSStatus SSLVerifySignedServerKeyExchange(...)
{
  OSStatus err;
  ...
  if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
    goto fail;
  if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
    goto fail;
    goto fail;
  if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
    goto fail;
  ...
fail:
  SSLFreeBuffer(&signedHashes);
  SSLFreeBuffer(&hashCtx);
  return err;
}

2016 => Nouvelle option GCC 6 -Wmisleading-indentation

Valve Steam (2015)

Ce script peut effacer tout le $HOME.

STEAMROOT="$(cd "${0%/*}" && echo $PWD)"

# Scary!
rm -rf "$STEAMROOT/"*

Le commentaire Scary! est d’origine.

Que retenir de ces études de cas ?