Académique Documents
Professionnel Documents
Culture Documents
La notion de la fiabilité
Jamais une panne d’exécution (toutes les pannes possibles et imaginables ont été
prévues et testés): c’est une utopie. Les pannes peuvent être causés par des variantes
exogènes : erreur humaine, malveillance, vieillissement du matériel, catastrophe
La fiabilité des logiciels naturelle, etc.).
Pouvoir gérer les situations dégradées (avènement des erreurs) (mauvaises données
d’entrée, mauvaise manipulation, etc) : le logiciel continu de rendre le service (notion de
tolérances de pannes).
1 2
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
Ê Une défaillance Ralentissement, perturbation, voir suspension de l’activité pour laquelle il est dédié
C’est l’avènement d’une panne lors de l’exécution d’un système. (éventuellement des effets en cascade pour les activités dépendantes).
Ne pas confondre avec une erreur fonctionnelle : lorsque le logiciel ne réponds pas aux
attentes des utilisateurs. Manque de confiance et de crédibilité.
Ê Manifestation de la défaillance
Arrêt brutal du logiciel
Instabilité du logiciel.
Dysfonctionnement et incohérence.
3 4
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
Pannes franche Le système ne réagit pas en temps voulu à des exigences temporelles.
Pannes conduisant à un arrêt brutal du système. Par exemple : en réaction à un événement (réception d’un msg, etc.)
Le système perd des messages entrants (omission en réception), sortants (omission Pannes se produisant « visiblement » d’une façon aléatoires : « visiblement » les
en émission), ou les deux. mêmes conditions d’exécution ne produisent pas systémiquement la panne
Exemples : défaillances dues à la communication réseau. constatée.
Sont rarement détectable immédiatement. Sont très difficile à traiter car elles ne sont pas reproductible systématiquement car
très difficile de connaître les conditions précises qui ont conduit à la panne.
Exemple: des conditions de pannes latentes.
Conséquence : parfois nécessitent une revue de l’ensemble du processus de
traitement.
5 6
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
1
La fiabilité des logiciels La fiabilité des logiciels
Fiabilité et disponibilité Métriques de la fiabilité (1)
Le système tombe en panne . Mais sa remise en état de fonctionnement Mesure la fréquence à laquelle un comportement erratique est probable: taux d’occurrence
des pannes.
nécessitent des corrections plus ou moins lourdes, voire le rétablissement de
ROCOF = nbre de pannes / temps d’exécution.
l’intégrité des données (le pire des scénarii).
Exemple : ROCOF = 2/100 signifie que 2 défaillances sont probables pour chaque 100 unités
de temps opérationnel.
7 8
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
Mesure le temps moyen de fonctionnement entre deux pannes. Mesure de taux de disponibilité.
Exemple : MTTF = 500 signifie qu’une défaillance est à prévoir à chaque 500 unités de temps Temps effectif de disponibilité / temps observé (temps observé = temps de fonctionnement +
de fonctionnement. temps d'indisponibilité).
Cette métrique est utilisée pour les systèmes embarqués. AVAIL = MTTF / (MTTF + MTTR)
Exemple : AVAIL = 0.98 signifie qu’à chaque 100 unités de temps, le logiciel est opérationnel
Ê MTTR (Mean Time To Repair) pendants 98 unités de ce temps.
9 10
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
11 12
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
2
La fiabilité des logiciels La fiabilité des logiciels
Pour un logiciel fiable – Évitement des erreurs Pour un logiciel fiable – Tolérance d’erreurs
Ê Éliminer dans la mesure du possible les erreurs de codage. Ê Un système qui tolère des erreurs est un système qui continue à fonctionner malgré l'avènement
Ê Les points à surveiller en termes de programmation sont en fonction du langage utilisé: d’une ou plusieurs erreurs.
La valorisation des variables: Ê Tolérer une erreur ne veut pas dire l'ignorer : Les erreurs doivent être signalées.
un décimal pour une valeur entière, dépassement de la capacité de stockage, etc.
Ê Comment ? en levant des exceptions.
Allocation dynamique de la mémoire:
Pensez à libérer la mémoire allouées : new/delete, malloc/free, etc. Ê Les exceptions peuvent porter sur :
13 14
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
Les méthodes clientes (qui invoquent) d’une telle méthode doivent suivre les mêmes règles,
puisque les exceptions non traitées remontent la pile d’appel pour traverser toutes la
17 hiérarchie des méthodes appelantes jusqu’à ce que l’une la traite complètement, sinon le18
Génie Logiciel H. El mansouri Génie Logiciel
programme s’arrête. H. El mansouri
3
La fiabilité des logiciels La fiabilité des logiciels
Les Exceptions (5) Les Exceptions (6)
Ê Définir une nouvelle exception (personnalisation des exceptions) Ê Le traitement sélectif des exceptions
try {
class MonException extends Exception
{ … // code risqué
public MonException(){ }
super(); catch (EOFException e){ // EOF = End Of File
} … // on traite les erreurs de fin de fichier
public MonException(String msg){ }
super(msg); catch (IOException e){ // IO = Input/Output
} … // on traite les erreurs IO autres que EOF
} }
Pour définir une nouvelle catégorie d’exception, il suffit de créer une sous-classe catch (Exception e) {
d’Exception ou de l'une de ses sous-classes. … // le cas général
Une exception peut avoir ses propres variables d’instance et donc transporter une information }
additionnelle. Elle peut également avoir ses propres méthodes.
Lorsqu'une exception est levée, on crée plusieurs blocs try allant du plus fin au plus général.
21 22
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri
Ê Exemple (2):
Ê La détection des erreurs est l'objet des activités de test de validation.
Une classe de test Ê C’est le sujet du prochain chapitre.
Int maMethode(listeParametres)
throws TypeException1, TypeException2, TypeException3, ...
{
// …
}
23 24
Génie Logiciel H. El mansouri Génie Logiciel H. El mansouri