1. Tous les modeles N.H.P.P. presentes (excepte le N.H.P.P. hyperexponentiel) supposent que toutes les fautes sont detectees et eliminees en un temps ni et que le taux de defaillance tend vers 0 lorsque le temps d'observation cro^t. Cependant ce taux estime a 0 n'implique pas qu'il n'y ait plus de fautes dans le logiciel. En eet, ceci peut ^etre simplement interprete comme exprimant la limite des tests appliques au programme. Ces tests ne sont donc plus ecaces pour l'actuel prol d'utilisation du logiciel [69].
2. Un modele N.H.P.P. peut para^tre inapproprie pour decrire une croissance de abilite [93]. Nous savons que ce sont les corrections qui modient la abilite et qu'elles apparaissent a un nombre ni d'instants. Ainsi la veritable intensite de defaillance change probablement de maniere
discontinue
lors de ces corrections, tandis que le ROCOF d'un N.H.P.P. varie de maniere continue. Cependant Miller dans [103] ou Langberg dans [85] suggerent que les modeles DET/EOS ou DS/IIDOS (donc binomiaux) peuvent ^etre transformes en des modeles N.H.P.P., en considerant le nombre initial N de fautes comme une variable aleatoire de distribution de Poisson et non plus comme une constante. Si N suit une loi de Poisson de moyenne m, le modele JM est ainsi transforme en un processus N.H.P.P. de fonction intensiteh(t) =mexp( t); t0:
On reconnait ici le modele GO. On peut etablir de m^eme une variante N.H.P.P. du modele L de Littlewood qui admet la fonction intensite
h(t) = (m+t)+1:
De plus Miller demontre que le modele a statistiques d'ordre et sa variante N.H.P.P. sont indistingables sur la base d'une seule realisation du processus de defaillance. Cependant les fonctions de vraisemblance utilisees sont dierentes et par consequent les estimations des parametres le sont egalement. Alors les predictions ne concident pas et en tant que
systeme de prediction
ces modeles sont distincts.3. L'utilisation de plus en plus importante des modeles de type N.H.P.P. repose sur leur grande exibilite. En eet, on ne fait aucune hypothese sur les relations entre les taux de defaillance successifs, le numero de la defaillance n'intervient pas et aucune relation n'est supposee entre les processus de defaillance, de relance et de correction. Cette derniere pro- priete permet de considerer qu'un evenement est soit une defaillance suivie d'une relance, soit une defaillance suivie d'une correction, soit l'introduction d'une nouvelle version [69].
3.1.9 D'autres modeles.
Trois autres types de modeles sont apparus depuis les annees 85. Le premier est issu des modeles EOS [103]. En eet, Miller demontre que les modeles DET/EOS et DS/IIDOS (et plus gene- ralement les modeles EOS) sont caracterises par leur fonction valeur moyenne ou de maniere
equivalente par leur fonction intensite. Ces fonctions se referent a la valeur moyenne M(t) et a la fonction intensite du processus de comptage de defaillances (Nt)t0 du logiciel. Miller montre alors, toujours dans [103], que dans un environnement operationnel stable, avec une correction immediate et parfaite des fautes, les fonctions intensite issues des modele EOS forment exacte- ment la famille des fonctions completement monotones, i.e des fonctions admettant des derivees de tout ordre satisfaisant
( 1)nddtnhn(t)0; t0;n2IN:
Cette classe de fonctions fournit la base d'une approche non parametrique pour estimer l'inten- site courante de defaillance [103],[104] et realiser des predictions de la croissance de abilite a plus long terme dans [106]. L'objectif de cette methode est de determiner une fonction intensite completement monotone qui s'ajuste le mieux possible aux donnees. Ainsi il est propose dans [106], d'obtenir tout d'abord une premiere estimation de la fonction a partir des donnees, puis de la lisser via son ajustement au sens des moindres carres par une fonction completement mo- notone. On est alors amene a des problemes de regression sous contraintes [105]. Les predictions sont ensuite realisees par extrapolation de la fonction d'ajustement. Une etude comparative des performances de cette methode avec celles d'un certain nombre de modeles N.H.P.P., basee sur une simulation de donnees, permet de conclure dans la plupart des cas, a un meilleur compor- tement predictif de cette nouvelle classe de systemes de prediction. Une approche similaire a ete choisie dans [24] mais en utilisant d'autres criteres d'optimisation. Enn, on peut souligner que pour presque tous les modeles ou la fonction intensite peut ^etre denie, celle-ci est une fonction completement monotone. Ce qui met d'autant plus en evidence la generalite d'une telle approche.
De maniere generale, la qualite des predictions realisees avec tous les modeles de la Section 3 est soumise a la stabilite du prol operationnel du logiciel. Nous verrons dans la Section 4 com- ment une analyse preliminaire des donnees peut identier des changements du mode d'utilisation du programme. Une alternative consiste a introduire directement dans le modele probabiliste, des variables \explicatives" decrivant les eets, sur la abilite, de nombreux facteurs externes ou internes au logiciel. C'est le propos des modeles a taux de hasard proportionnels P.H.M. (ou a intensite proportionnelle P.I.M.) [37],[18],[141] dont la presentation ci-dessous est issue de [141]. Ces modeles P.H.M. peuvent ^etre decrits comme des modeles de regression lineaire multiple [32]. Rappelons la terminologie statistique associee a ce type de modele.
Supposons que l'on dispose d'un echantillon d'\individus" tires d'une certaine population (nous verrons plus loin ce que le terme individu peut recouvrir dans le cadre de la abilite du logiciel). Chaque membre fournit un ensemble de donnees sous la forme des valeurs d'un ensemble ni d'attributs (ou caracteristiques) communs a tous les individus. On selectionne un (ou un sous ensemble) de ces attributs qui est appele la variable dependante ou reponse. En general, il s'agit d'une caracteristique non observable anterieurement a la manifestation de toutes les autres et dont
. la valeur est supposee in uencee par la combinaison des variables restantes
. on souhaite predire les valeurs pour certains individus a partir de l'observation des autres variables.
Les autres variables sont collectivement nommees des variables independantes, covariees ou en- core explicatives. Un modele de regression a pour but de fournir, pour un individu, la distribution de la variable reponse (ou au moins ses deux premiers moments) gr^ace aux valeurs des variables independantes. Ici les variables covariees entrent dans cette distribution uniquement via une somme ponderee de leur valeurs, ou le vecteur poidswest suppose constant (regression lineaire) pour \tous" les individus. Ce vecteur joue donc le r^ole de parametres a estimer a partir des donnees.
Dans le contexte de la abilite du logiciel, la variable reponse represente le temps d'inter- defaillance t. On peut alors distinguer trois grandes notions distinctes d'individu pour la termi- nologie statistique, induisant trois types d'applications des modeles P.H.M. :
l'individu represente un produit logiciel :
but : developper un modele qui aide a expliquer des variations de abilite entre produits logiciels, gr^ace a des caracteristiques mesurables (attributs) issues aussi bien d'une classi- cation usuelle des programmes selon le langage utilise, le type d'applications visees, que de metriques de structures internes (taille, complexite) ou que de metriques liees au processus de developpement du produit (outils et ressources utilises).
l'individu represente une faute :
but : analyse du processus de defaillance au moyen de caracteristiques des fautes telles que l'etape de l'execution ou elles se produisent, leur type, la gravite et le co^ut des defaillances generees.
l'individu represente une copie d'un m^eme produit ou plus precisement un prol opera- tionnel d'un logiciel.
but : mesurer l'eet sur la abilite d'un programmme, des variations de ce prol dues a l'utilisation de copies sur dierents sites.
Le modele analytique correspondant au P.H.M., consiste a decrire la distribution de la variable scalaire reponse tvia son taux de defaillance. Ce taux satisfait la relation
(t) =0(t)exp(e :w) = 0(t) exp fw 1e1+ +wpepg;
oueest le vecteur (colonne) des valeurs des variables explicatives,west le vecteur des parametres de la regression et 0(t) est la fonction \taux de hasard de base" commune a tous les individus. On constate que les variables explicatives sont supposees avoir un eet proportionnel sur la abilite d'ou le nom de ces modeles. On remarque egalement la separation entre l'estimation de la fonction0(t) (qui peut ^etre realisee gr^ace aux modeles parametriques classiques) et celle des parametres de regression w.
Les modeles a variables explicatives sont soumis a des conditions de regularite et de stabilite de la population etudiee. En eet se pose le probleme de la robustesse dans le temps et pour un individu ne faisant plus partie de l'echantillon, des liens mis en evidence entre la abilite et les valeurs des variables explicatives. Ainsi, intuitivement, la troisieme situation ou l'individu repre- sente un prol operationnel semble la plus stable et promise a des succes pratiques [141],[128]. En eet, la premiere application est soumise a une tres grande heterogeneite des produits logiciels developpes et dans la seconde, on est amene a decrire la future abilite sur la base de valeurs
explicatives inconnues issues de la population de taille egalement inconnue des fautes non encore detectees. Enn, en dehors du choix des variables independantes et de la modelisation de leurs eets sur la abilite, se pose le delicat probleme des donnees a collecter pour valider ce type de modeles.
Le r^ole de la distribution du prol d'execution dans la modelisation de la abilite du logiciel a egalement ete mis en valeur par Downs [41]. En particulier, il montre le lien etroit existant entre le modele JM et une selection (aleatoire) uniforme des donnees test. L'approche utilisee par Downs [41],[42],[43] se demarque de toutes celles decrites jusqu'ici car elle consiste a modeliser le processus de test. La strategie sous-jacente est celle des tests des chemins du programme (ou \path-testing",voir [118]). L'hypothese essentielle est que chaque faute aecte le m^eme nombre xe [41],[42] (resp. aleatoire [43]) de chemins. Par ailleurs, la base theorique de ses travaux repose sur la constante du taux de defaillance du logiciel durant un intervalle entre deux defaillances (ou encore les distributions d'inter-defaillance sont exponentielles). Ceci exprime le fait que le prol d'execution du logiciel ne varie pas dans ces intervalles. Une exception a cette regle est apportee par son modele a taux de hasard lineaire par morceaux entre deux corrections. Ce modele est obtenu par une analyse uniquement qualitative du processus de test. Ainsi apres i
corrections la fonction taux admet la forme suivante
t E=i C=i D=i i Ai Bi
oui est un taux constant estime par un de ses modeles \exponentiels", A;B;C;D;E sont des
parametres a determiner (voir [43]) satisfaisantsA >1, 0< B <1, etC < D < E. On remarque que le taux est suppose constant au bout d'un certain temps d'execution. Une etude comparative avec notamment des variantes du modele LV est realisee dans [42] et [43].
3.2 Modeles statiques
3.2.1 Modeles bases sur l'analyse du domaine des entrees du programme
En general, tous les modeles de croissance de abilite precedents ne sont que moderement precis dans leur prediction. Il semble acquis [81],[12],[93] qu'ils ne sont pas applicables a des logiciels s'executant sans defaillance durant de longues periodes. En eet, ceci induit une faible collecte de donnees qui a des consequences negatives sur les estimations des parametres (par M.V. voir [99],[110],[47]). De plus ces modeles sont simplicateurs et ne constituent que des approxima- tions du comportement du processus de defaillance. Ils ignorent de nombreux facteurs, souvent
diciles a quantier, intervenant dans la croissance de abilite. Enn, la validite de leurs hypo- theses s'accro^t avec la taille du programme. Ils sont donc inadaptes pour des logiciels utilises dans des applications critiques ou de tres hauts niveaux de abilite sont exiges, ou pour des applications temps reel ou les programmes sont de taille moyenne (quelques milliers de lignes de langage de haut niveau).
Dans un tel contexte, la plupart des modeles considerent une execution du programme comme grain d'observation du processus de defaillance et utilisent une distribution du prol operationnel du logiciel pour ponderer le poids relatif a chaque entree. La abilite est alors exprimee par la probabilite que le logiciel delivre une sortie valide a partir d'une entree donnee. Cette fonction ne fait donc pas intervenir explicitement le temps dans le calcul de ses valeurs. Elle reste constante mais les estimations de ses valeurs changent avec l'apport d'informations supplementaires. Ceci est en contraste avec les modeles dynamiques pour lesquels c'est la fonction abilite qui change. La variable aleatoire d'inter^et sera donc la distribution des donnees operationnelles. L'ap- proche de base pour ce type de modele est de generer un ensemble de cas test selon cette loi. Cependant la grande diculte d'obtention de la valeur de cette distribution sur chaque entree, conduit a partager le domaineE des donnees en classes d'equivalences. Une estimation de la a- bilite est alors donnee gr^ace aux resultats d'executions de cas tests selectionnes dans l'ensemble de ces classes.