Présentation d’une méthode d’évaluation de la croissance de fiabilité d’un logiciel

Télécharger le fichier pdf d’un mémoire de fin d’études

ANALYSE DU COMPORTEMENT DU LOGICIEL

D’une manière conceptuelle, le comportement d’un logiciel peut être vu comme la transformation par un programme P d’un espace d’entrées E en un espace de sorties S.
Une exécution du logiciel consiste à sélectionner des données de l’espace des entrées et se traduit par une trajectoire dans l’espace E. Chaque entrée de l’espace E est transformée en une seule sortie de l’espace S si on fait l’hypothèse que les sorties qui sont utilisées pour une prochaine exécution du logiciel font partie à la fois de E et S (c’est le cas par exemple des logiciels de contrôle et de commande de processus industriel).
Au cours de son cycle de vie, le logiciel n’est pas exécuté en continu ; il est sollicité par ses utilisateurs selon un profil d’utilisation caractéristique de l’environnement dans lequel il est exécuté. Le profil d’utilisation caractérise la répartition dans le temps des instants de sollicitation du logiciel et détermine les entrées fournies au programme parmi toutes les entrées possibles. Du fait de la présence de fautes de conception internes dans le logiciel, l’exécution du programme P peut conduire à des sorties qui ne sont pas conformes à la spécification du logiciel.
Soient :

Se : le sous ensemble des sorties erronées défini par les spécifications de P,
Ed : le sous-ensemble des entrées qui est tel que la transformation de Ed par P est Se ; Ed est appelé domaine de défaillance du logiciel.
Le domaine de défaillance peut être décomposé en deux sous-ensembles [Laprie 89] : le premier regroupe les entrées activant les fautes du logiciel et le deuxième est constitué des entrées erronées qui sont implicitement ou explicitement définies par les spécifications.
Le domaine de défaillance du logiciel évolue au cours de son cycle de vie. Cette variation est liée d’une part, à la correction des fautes activées au fur et à mesure de l’exécution, et d’autre part, à la modification des spécifications pour mieux satisfaire les besoins des utilisateurs.
Le profil d’utilisation du logiciel et son domaine de défaillance sont les paramètres les plus importants qui caractérisent et agissent sur sa sûreté de fonctionnement. L’évolution de l’un ou l’autre de ces deux paramètres conduit à la variation du comportement du logiciel tel qu’il est perçu par ses utilisateurs. De ce fait, nous analyserons dans la suite l’influence de chacun de ces deux paramètres sur le comportement du logiciel. Nous considérerons les deux cas suivants :
. le profil d’utilisation du logiciel reste homogène au cours de son cycle de vie, . le profil d’utilisation du logiciel varie au cours de son cycle de vie.

Profil d’utilisation homogène

L’analyse du comportement du logiciel vis-à-vis de l’occurrence de défaillances peut être effectuée en considérant les deux cas suivants :
. le comportement du logiciel jusqu’à occurrence d’une défaillance,
. le comportement du logiciel en tenant compte des reprises d’exécution après défaillance.

Occurrence d’une défaillance

L’exécution du logiciel s’effectue conformément aux spécifications tant que les entrées sélectionnées par les utilisateurs sont en dehors du domaine de défaillance Ed. Quand la trajectoire dans l’espace des entrées E intercepte le sous-ensemble Ed, le logiciel défaille.
Conceptuellement, on peut modéliser l’occurrence d’une défaillance du logiciel par le modèle présenté sur la figure I.1. Sur cette figure, toutes les entrées qui conduisent à la défaillance du logiciel sont regroupées dans le domaine de défaillance Ed. Si on fait l’hypothèse que chaque défaillance du logiciel est due à l’activation d’une seule faute, alors on peut partitionner Ed en plusieurs sous-domaines disjoints tels que chaque sous-domaine regroupe les entrées entraînant la défaillance correspondante2 (la partie grisée du domaine de défaillance Ed correspond aux entrées entraînant la défaillance considérée).

Les données de l’espace des entrées du logiciel, et en particulier celles qui font partie du domaine de défaillance, sont sélectionnées selon un mécanisme aléatoire. En effet, d’une part, le choix des entrées est conditionné par le type de services sollicité par les utilisateurs et dépend ainsi intrinsèquement du profil d’utilisation du logiciel, et d’autre part, étant donné que la sollicitation du logiciel pour un service particulier se traduit par une trajectoire dans l’espace des entrées, une telle trajectoire ne peut être connue de façon déterministe car elle peut dépendre de l’état du système avant sa sollicitation. Cette première source d’incertitude sur le comportement du logiciel est appelée « incertitude sur les entrées » [Littlewood 80].
L’incertitude sur le comportement du logiciel, qui est liée au mécanisme aléatoire du choix des entrées, se traduit par une distribution stochastique du temps jusqu’à occurrence d’une défaillance. La spécification d’une telle distribution permet de caractériser le comportement du logiciel jusqu’à occurrence d’une défaillance et donc sa fiabilité.

Reprise de l’exécution après défaillance

Quand une défaillance du logiciel survient, il est nécessaire de le relancer pour reprendre l’exécution. La restauration du service délivré par le logiciel peut s’effectuer de deux façons :
. soit par une simple relance du logiciel, sans aucune modification, avec des entrées situées en dehors du domaine de défaillance (réinitialisation du logiciel),
. soit par la relance du logiciel après correction de la (ou des) faute(s) ayant entraîné la défaillance.
Dans le cas où la restauration de service est effectuée par une simple relance du logiciel, celui-ci ne subit aucune transformation et son domaine de défaillance n’est pas modifié. Le comportement du logiciel vis-à-vis de l’occurrence de défaillance est alors le même avant et après la restauration de service. Le logiciel est dit en fiabilité stabilisée.

Considérons maintenant le cas où l’exécution du logiciel est reprise après la correction de (ou des) faute(s) qui ont entraîné la défaillance. La correction des fautes activées sur le logiciel conduit à la modification du programme P et du domaine de défaillance Ed. Si la correction est parfaite, alors les entrées qui appartenaient au sous-domaine de défaillance correspondant aux fautes corrigées ne font plus partie du nouveau domaine de défaillance associé au logiciel corrigé. Ceci est illustré sur le modèle de la figure I.2 où , comparé à la figure I.1, P’ diffère de P par les corrections introduites et le domaine de défaillance est tel que : E’ ⊂ E (I.1).

Variation du profil d’utilisation

Au cours du cycle de vie du logiciel, son profil d’utilisation peut varier d’une phase à une autre, ou même à l’intérieur d’une même phase.
Au cours de la phase de validation, le profil d’utilisation du logiciel peut varier en fonction :
. de la nature de tests effectués (tests fonctionnels, tests de charge, etc.…),
. de la variation de l’effort de test appliqué,
. des caractéristiques des systèmes sur lesquels il est exécuté, etc….

Au cours de la vie opérationnelle, le logiciel est souvent utilisé dans plusieurs environnements qui diffèrent par la nature et la fréquence des services sollicités. Par exemple, les systèmes de télécommunications sont utilisés aussi bien dans des milieux ruraux où la majorité des appels effectués sont des appels téléphoniques, que dans des villes où les communications établies sont plus diversifiées : transmissions de données, communications internationales, etc…
La variation du profil d’utilisation du logiciel peut se traduire par une variation de la distribution du choix des données dans l’espace des entrées ou bien par une variation de la fréquence de sollicitation du logiciel.
Nous montrons ci-après, sur deux exemples très simplifiés, l’influence de ces deux sources de variation du profil d’utilisation du logiciel sur son comportement tel qu’il est perçu par ses utilisateurs.

Variation de la distribution du choix des entrées

Considérons deux utilisateurs A et B d’un même logiciel qui l’exécutent en moyenne à la même fréquence selon deux profils d’utilisation qui différent par la distribution du choix des données de l’espace des entrées du logiciel.
Considérons la partition de l’espace des entrées E proposée sur la figure I.3 où Ed est le domaine de défaillance du logiciel et E1 (respectivement E2) correspond au sous-ensemble des entrées qui sont le plus souvent sollicitées par l’utilisateur A (respectivement B).
Etudions le comportement jusqu’à défaillance du logiciel tel qu’il est perçu par les deux utilisateurs.
Nous avons vu précédemment que le comportement du logiciel jusqu’à défaillance dépend essentiellement de la nature de son domaine de défaillance. Compte tenu des hypothèses établies, tout se passe comme si on considère deux logiciels pour lesquels les domaines de défaillance sont différents. Les distributions du temps jusqu’à défaillance seront donc différentes pour les deux profils d’utilisation A et B considérés. En particulier, si l’intersection du sous-ensemble E1 avec le domaine de défaillance du logiciel est vide, alors la probabilité que le logiciel défaille suite à son exécution selon le profil d’utilisation caractéristique de l’utilisateur A sera très faible. Par conséquent, la sûreté de fonctionnement du même logiciel sera perçue de façons différentes par les deux utilisateurs A et B.

Supposons maintenant que l’on utilise le logiciel durant l’intervalle [0,t1] selon le profil d’utilisation A, puis à partir de l’instant t1 selon le profil d’utilisation B. La variation du sous-ensemble des entrées qui sont sélectionnées au cours de l’exécution du logiciel, qui est induite par le changement du profil d’utilisation, peut conduire à la variation de la distribution du temps jusqu’à défaillance du logiciel. Ainsi, on peut observer une augmentation ou une diminution des temps jusqu’à occurrence des défaillances ou en d’autres termes, une décroissance ou une croissance de fiabilité qui n’est pas nécessairement liée à la modification du domaine de défaillance suite à la correction de fautes dans le logiciel.

Variation de la fréquence de sollicitation du logiciel

Supposons maintenant que l’espace des entrées est parcouru de la même manière par les deux utilisateurs du logiciel ; seules les fréquences de sollicitation du logiciel sont différentes. Soit Si l’instant d’occurrence de la i ème défaillance du logiciel.
Sur la figure I-4, nous présentons un exemple d’évolution dans le temps des instants d’occurrence de défaillances observées par les deux utilisateurs en supposant que A sollicite deux fois plus souvent le logiciel que B.
Pour simplifier la représentation, on suppose que les temps séparant deux sollicitations du logiciel par un même utilisateur sont égaux et on néglige les durées correspondant aux exécutions effectuées3 ; les graduations de l’échelle des temps correspondent alors au nombre de sollicitations effectuées.

MESURES DE LA SÛRETé DE FONCTIONNEMENT

Pour évaluer la sûreté de fonctionnement du logiciel, il est nécessaire de définir des mesures. Compte tenu de la nature non déterministe du comportement du logiciel au cours de son cycle de vie, les mesures établies pour caractériser sa sûreté de fonctionnement sont définies en termes de probabilités.
Selon que l’on s’intéresse au comportement du logiciel jusqu’à occurrence d’une défaillance ou bien à son comportement au cours de son cycle de vie en tenant compte des reprises d’exécution après défaillance, nous considérerons les deux variables aléatoires suivantes :
. Ti la variable aléatoire qui représente l’intervalle de temps séparant l’instant de reprise de l’exécution du logiciel après l’occurrence de la défaillance i-1 et l’instant d’occurrence de la défaillance i.
. N(t) la variable aléatoire qui représente le nombre d’occurrences de défaillances jusqu’à l’instant t d’observation du logiciel.
Nous nous limiterons à la présentation des mesures qui sont les plus utilisées dans le domaine de l’évaluation de la croissance de fiabilité en considérant les deux types de représentation du comportement du logiciel que nous avons identifiés dans le paragraphe précédent, c’est à dire en temps continu et en temps discret.

Mesures relatives au comportement jusqu’à défaillance

La variable aléatoire Ti caractérisant le comportement du logiciel jusqu’à occurrence d’une défaillance peut être soit une variable en temps discret mesurée par exemple en nombre d’exécutions4, soit une variable en temps continu qui mesure le temps calendaire ou bien le temps d’exécution du logiciel5.
Pour distinguer les deux types de représentation du comportement du logiciel, nous exprimerons les grandeurs caractéristiques de la variable aléatoire Ti respectivement en fonction de t, le temps courant, dans le cas où Ti est exprimée en temps continu, et en fonction de n, le nombre d’exécutions du logiciel, dans le cas où Ti est exprimée en temps discret.
La variable aléatoire Ti est caractérisée par un certain nombre de fonctions : la fonction densité de probabilité, la fonction de répartition (ou la distribution), la fonction de survie (qui correspond à la fiabilité du logiciel évaluée entre les défaillances i-1 et i), l’espérance mathématique qui correspond au temps moyen séparant l’instant de reprise de l’exécution du logiciel après l’occurrence de la défaillance i-1 et l’instant d’occurrence de la défaillance i, le taux de hasard appelé taux de défaillance, etc…

Les propriétés des grandeurs caractéristiques des variables aléatoire Ti dans le cas où Ti est une variable en temps continu sont présentées et analysées en détail dans la littérature [Gnedenko 1969, Barlow 1975, Corazza 1975, etc…]. Cependant, les travaux concernant l’étude des propriétés des mesures de fiabilité dans le cas où les variables aléatoires Ti sont spécifiées en temps discret sont plus rares et beaucoup plus récents. On peut citer, cependant, quelques références sur ce sujet : [Kalbfleisch 80, Salvia 82, Padgett 85].
Pour cette dernière raison, nous rappelons dans la figure I.5, les définitions, en temps continu et en temps discret, des fonctions caractéristiques de la variable aléatoire Ti qui sont les plus couramment utilisées : la densité de probabilité, la fiabilité et le taux de défaillance. Les différents liens qui existent entre ces fonctions sont présentés sur la figure I.6.

Processus de Poisson Non Homogènes (NHPP)

Parmi les classes de processus stochastiques qui sont très utilisés dans la modélisation de la croissance de fiabilité du logiciel, on distingue les processus de Poisson non homogènes (NHPP). Compte tenu de l’importance des modèles NHPP dans le domaine de l’évaluation de la fiabilité du logiciel, et plus particulièrement dans les travaux qui sont présentés dans ce mémoire, nous présentons dans ce paragraphe leurs principales propriétés ainsi que les expressions des mesures de fiabilité dans le cas où le processus de défaillance du logiciel est modélisé par un NHPP.
Un processus stochastique {N(t),t≥0} est un processus NHPP caractérisé par la fonction intensité h(t) s’il est régulier et s’il est à accroissements indépendants [Cox 66].
Un processus stochastique est dit régulier si la probabilité d’occurrence simultanée de deux événements est négligeable.

{N(t),t≥0} est un processus à accroissements indépendants si, pour t0≤ t1≤ …≤tn les variables aléatoires N(t0), N(t1) – N(t0), …, N(tn) – N(tn-1) sont indépendantes. Cette propriété signifie que le nombre d’occurrences du processus sur un intervalle donné n’est pas influencé par le nombre d’occurrences du processus sur un autre intervalle disjoint.
Dans le cas où le processus de défaillance du logiciel est modélisé par un NHPP, le nombre d’occurrences de défaillances sur un intervalle [t1, t2] suit une loi de Poisson de moyenne égale à :
E[N(t2) – N(t1)] =∫t 2 h(x) dx = M(t2) – M(t1) (I.10)
Posons : H(t) =∫ t h(x) dx
Compte tenu de la relation (I.7), H(t) est égal à M(t), le nombre cumulé moyen d’occurrences de défaillances dans l’intervalle [0,t].
Considérons maintenant les mesures de fiabilité caractérisant le comportement d’un logiciel qui est modélisé par un processus NHPP.
Soient :
s l’instant d’occurrence de la défaillance i-1,
t le temps courant, avec t > s,
t’ le temps écoulé depuis l’occurrence de la défaillance i-1 : t’= t-s.

MODÈLES DE CROISSANCE DE FIABILITé DU LOGICIEL

Les mesures d’évaluation de la croissance de fiabilité étant introduites, il est maintenant indispensable de présenter et d’analyser les modèles existants qui permettent d’évaluer ces mesures.
Le domaine de l’évaluation de la croissance de fiabilité du logiciel a donné naissance, depuis une vingtaine d’années, à plusieurs modèles qui diffèrent essentiellement par les hypothèses établies concernant la nature et l’évolution des lois relatives aux variables aléatoires caractérisant le processus de défaillance du logiciel.
On dénombre actuellement plus de quarante modèles de croissance de fiabilité dont une revue détaillée peut se trouver dans [Goel 83]. Compte tenu du nombre important de modèles de croissance de fiabilité, plusieurs auteurs ont procédé à une classification des modèles proposés par rapport à différents critères. Parmi les classifications proposées, on peut citer :

. la classification effectuée dans [Ramamoorthy 82] qui est basée sur l’application des modèles au cours des différentes phases du cycle de vie du logiciel,
. la classification proposée dans [Goel 85] qui distingue les modèles à dénombrement de défaillance des modèles à taux de défaillance,
. la classification de [Miller 86] qui a développé un modèle général basé sur la représentation des instants d’occurrence des défaillances par des statistiques d’ordre de variables de lois exponentielles ; il a ensuite classé les modèles selon la nature et l’allure d’évolution des paramètres de ces lois,
. la classification de [Laprie 84-b, Kanoun 89] qui distingue les modèles à taux de défaillance et les modèles NHPP à intensité de défaillance,
. la classification de [Gaudoin 90] qui classe les modèles selon les propriétés de la fonction intensité de défaillance.
L’intérêt de procéder à une classification des modèles de croissance de fiabilité est d’identifier ceux qui sont basés sur des hypothèses équivalentes afin d’éviter d’utiliser plusieurs modèles qui correspondent au même type de comportement du système considéré et qui conduisent par conséquent à des résultats équivalents.
Dans la suite nous nous baserons sur la classification proposée dans [Laprie 84-b, Kanoun 89] pour présenter brièvement les modèles de croissance de fiabilité. Notre objectif n’est pas de présenter en détail tous les modèles existants mais plus d’analyser les points communs et les différences qui existent entre ces modèles et surtout de situer le modèle hyperexponentiel sous ses deux aspects, temps continu et temps discret par rapport à ces modèles.
Conformément aux mesures présentées dans le paragraphe précédent, nous considérerons deux types de modèles : les modèles en temps continu et les modèles en temps discret.

Modèles de croissance de fiabilité en temps continu

La plupart des modèles de croissance de fiabilité définis dans la littérature sont des modèles en temps continu qui modélisent l’évolution dans le temps de la fiabilité du logiciel. Le temps est soit le temps calendaire soit le temps d’exécution du logiciel [Musa 79].
[Laprie 84-b, Kanoun 89] distinguent deux types de modèles qui sont basés sur deux approches différentes pour la modélisation du processus de défaillance du logiciel : les modèles à taux de défaillance et les modèles NHPP à intensité de défaillance.

Modèles à taux de défaillance

Les modèles à taux de défaillance caractérisent l’évolution du comportement du logiciel entre l’occurrence de deux défaillances successives par la spécification d’une part, de l’expression du taux de défaillance du logiciel conditionné par le passé du processus jusqu’à l’occurrence de la dernière défaillance, et d’autre part, de la relation qui existe entre les taux successifs. Le passé du processus se réduit pour la plupart des modèles proposés au nombre de défaillances observées ; certains modèles considèrent également le temps écoulé depuis l’occurrence de la dernière défaillance.
Selon les hypothèses de modélisation considérées, on peut distinguer deux catégories de modèles à taux de défaillance :
. les modèles « déterministes » qui tiennent compte uniquement de la première source d’incertitude sur le comportement du logiciel : l’incertitude sur les entrées ; ils supposent que les variables aléatoires Ti sont indépendantes et distribuées selon des lois exponentielles de paramètre λi.
. les modèles « doublement stochastiques » qui tiennent compte des deux sources d’incertitude sur le comportement du logiciel : l’incertitude sur les entrées et l’incertitude sur les programmes ; contrairement aux autres modèles, ils supposent que les paramètres λi sont des variables aléatoires.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

I.1 CONCEPTS DE BASE DE LA SûRETé DE FONCTIONNEMENT : RAPPELS
I.2 ANALYSE DU COMPORTEMENT DU LOGICIEL
I.2.1 Profil d’utilisation homogène
I.2.1.1 Occurrence d’une défaillance
I.2.1.2 Reprise de l’exécution après défaillance
I.2.1.3 Conclusion
I.2.2 Variation du profil d’utilisation
I.2.2.1 Variation de la distribution du choix des entrées
I.2.2.2 Variation de la fréquence de sollicitation du logiciel
I.2.2.3 Conclusion
I.2.3 Conclusions
I.3 MESURES DE LA SûRETé DE FONCTIONNEMENT
I.3.1 Mesures relatives au comportement jusqu’à défaillance
I.3.2 Mesures relatives au comportement après reprise d’exécution
I.3.3 Processus de Poisson Non Homogènes (NHPP)
I.3.4 Conclusion
I.4 MODèLES DE CROISSANCE DE FIABILITé DU LOGICIEL
I.4.1 Modèles de croissance de fiabilité en temps continu
I.4.1.1 Modèles à taux de défaillance
I.4.1.2 Modèles NHPP h(t) décroissante tendant vers une limite nulle
I.4.1.2.1 Modèles à intensité croissante puis décroissante tendant vers une limite nulle
I.4.1.2.2 Modèles à intensité décroissante tendant vers une limite nulle
I.4.1.2.3 Modèles à intensité décroissante tendant vers une limite non nulle
I.4.2 Modèles de croissance de fiabilité en temps discret
I.4.2.1 Première catégorie
I.4.2.2 Deuxième catégorie
I.4.3 Commentaires sur les modèles
I.5 PRéSENTATION D’UNE MéTHODE D’éVALUATION DE LA CROISSANCE DE FIABILITé DU LOGICIEL
I.5.1 Analyse de tendance
I.5.1.1 Définitions formelles
I.5.1.2 Tests de Tendance : le test de Laplace
I.5.2 Application des modèles de croissance de fiabilité
I.5.2.1 Utilisation des tests de tendance pour l’application des modèles
I.5.2.2 Calibrage et validation des modèles
I.5.2.2.1 Procédures d’inférence
I.5.2.2.2 Critères de validation et de comparaison de modèles
I.5.3 Conclusion
CONCLUSIONS

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *