mardi 16 octobre 2007

Corrigé de TD sur fiabilité, etc.

Corrigé du dernier TD du poly.
Il est fortement conseillé de l'étudier !

====================

Université de Nantes

Département informatique

Module TGL

Sujet rédigé le 4-09-06 par H. Habrias

Version n° 1

Exercices sur analyse des risques, fiabilité…


Exercice n° 1


Q1 - Dans un projet, une entreprise a estimé qu’elle avait 0,5 % de chance de devoir payer 100 000 € de pénalité pour un défaut oublié. Calculez le montant du risque auquel elle est exposée.


0,005 * 100 000 = 500 €


Q2 – Le chef de projet propose un contrôle supplémentaire qui coûterait 100 € et qui supprimerait le défaut une fois sur deux. Calculez le nouveau montant du risque auquel l’entreprise est exposée. Cette solution est-elle préférable à celle de la Q1 ?


0,0025 * 100 100 + 0,9975 * 100 = 250,25 + 99,75 = 350 €

2eme approche préférable


Q3 – Le sous-chef de projet Dudule estime que l’efficacité du contrôle n’est que de 10 %. Même question que la Q2.


Efficacité du contrôle est de 10% soit risque que dans 90% des cas on ait à payer. Comme sans contrôle c’était 0,5 %, ça donne 0,005 * 9/10 soit 0,0045.

0,0045 * 100 100 + 0,9955 * 100 = 450, 45 + 99,55 = 550 €

Solution moins intéressante que l’absence de contrôle.


Exercice n° 2


L’entreprise Zébulon++ tient des statistiques sur les erreurs dans les logiciels qu’elle développe. Sur des données historiques de nombreuses années, on trouve un taux d’erreurs de 0,0036 par milliers de lignes de code. Dudule a fait une étude d’après laquelle un contrôle technique à 1 000 € pour 100 000 lignes de code permettrait de réduire le nombre d’erreurs de 50 %. Les données de l’entreprise actualisées indiquent que chaque erreur coûte 100 000 € en moyenne à Zébulon++.

Le projet que l’on considère est de 50 000 lignes de code. Calculez les risques, avec et sans contrôle technique et indiquez si ce contrôle est rentable.


Exercice n° 3


La fiabilité est la probabilité qu’a un logiciel de ne pas connaître de défaillance pendant une tranche de temps donnée. Elle est notée F(n), où n est le nombre d’unités temporelles (grain temporel). Si l’unité est le jour, F(1) désigne la probabilité que le logiciel n’ait pas de défaillance pendant un jour. La probabilité que le logiciel ait une défaillance pendant une durée n est :

D(n) = 1 – F(n)


Taux d’erreur

Si une erreur se produit tous les deux jours, le taux d’erreur instantané est de 0,5 erreur par jour. Le taux d’erreur est égal à l’inverse de la durée entre deux erreurs successives et peut servir à estimer la probabilité de défaillance d’un logiciel.


Rappels de proba :


Si F(1) est connue alors la probabilité de pouvoir exécuter n tests sans défaillance est égale à F(n) = F(1)n.

N.B. : D(n) n’est pas égal à D(1)n, mais à 1 – (1 –D(1))n


Dudule connaît différents modèles de fiabilité du logiciel dont celui de Jelinski-Moranda. La formule est la suivante :

MTTFi = alpha/ (N-i + 1).

MTTFi est le MTTF jusqu’à la ième faute.

N est le nombre de fautes initialement contenues dans le programme.

1/ est le taux selon lequel une faute provoque une erreur. Un taux de 4 indique 4 erreurs par an par faute.


Q1 – Considérez N = 100 défauts et 1/=5,

Calculez le MTTF de la première faute, celui de la 81ème faute.

Q2 – Comment caractérisez-vous ce modèle ?

Q3 – Quelles sont les hypothèses faites par ce modèle ?


Q1 MTTF(1) = 0,002 MTTF(81) = 0,01

Le modèle suppose que le dégogage commence lorsque le programme contient N fautes et que chaque faute contribue pour le même poids dans l’occurrence des pannes. Les fautes sont supposées être supprimées lorsqu’on observe une panne, et chaque fois le taux d’occurrence des pannes est réduit de 1/.


Dudule lui estime que, faute de connaître une tendance précise sur les découvertes d’erreur relativement au temps d’exécution, le comportement présent du logiciel constitue la meilleure estimation pour son comportement dans un futur proche. Il est comme ça Dudule. Il estime de la même manière les hommes et les femmes. Ainsi, si un jour il se produit 20 erreurs, il considère que la meilleure estimation possible pour le lendemain est de 20 erreurs. Peut-être chez lui y-a-t-il des scènes de ménage tous les jours : 4 verres cassés le lundi, 4 verres cassés le mardi !


En suivant le « modèle à Dudule »,


Q1 – S’il se produit une erreur après deux jours, quelle est la probabilité pour que le système ne connaissance pas de défaillance (d’ « erreur » selon le vocabulaire utilisé chez les informaticiens anglo-saxons) pendant 1, 2, 3 et 4 jours ?


Si une erreur se produit tous les deux jours, le taux d’erreur instantané peut être estimé à 0 ,5. Cela correspond à la propriété de défaillance pour une journée.

La fiabilité pour 1 journée est de 1- 0,5, deux journées 0, 25, 3 journées 0,125, 4 journées 0,00625


Q2 – Si un logiciel a connu 5 défaillances au cours de 100 tests réalisés sur 10 jours, à combien peut-on estimer la fiabilité du logiciel pour le jour suivant et pour la semaine suivante ?


D(1) = 5/100 = 0,05

soit F(1) = 0,95

Pour le jour suivant, en supposant 10 tests par jour (ce qui est égal à 100/10, moyenne des 10 jours précédents), on a le taux de fiabilité F(10) = F(1)10 = 0,9510 = 0,598736


Pour la semaine suivante, en supposant le même taux de nombre de tests (soit 70 tests), on a F(70) = F(1)70 = 0,9570 = 0,027


Exercice n° 4



Utilisez le modèle de Mills pour l’estimation du nombre de défauts dans un programme.

30 défauts sont injectés dans un composant. A un certain moment du test, on a détecté 12 défauts indigènes et 18 défauts injectés.


Q1 - Quelle est l’estimation du nombre de défauts indigènes ?

Quel est le nombre de défauts résiduels ?


nombre de défauts résiduels = (nb de défauts indigènes détectés* nb de défauts injectés que l’on a détectés) /

nb de défauts que l’on a injectés


soit 12 * 30 / 18 = 20


nombre de défauts résiduels = 20 – 12 = 8


Aucun commentaire: