Existe-t-il une différence entre stabilité et fiabilité (au moins dans le contexte de l'ingénierie logicielle) ou peuvent-ils être utilisés de manière interchangeable? Sinon, quels seraient des exemples de systèmes fiables mais pas nécessairement stables, et vice versa?
Disons par exemple que nous avons une application, elle fonctionne parfaitement, à part qu'elle plante toutes les 5 minutes, mais elle est sauvegardée instantanément sans perte de données.
Dans mon esprit, c'est fiable, mais pas stable.
Je peux compter sur lui pour ne pas perdre de données et fonctionner correctement, même s'il n'est pas stable.
En fait, Internet est essentiellement cela. C'est loin d'être stable: les connexions chutent et réapparaissent, les paquets entrent en collision et sont perdus, et toutes sortes d'autres choses instables se produisent. Cependant, il est assez étonnant de voir à quel point il est fiable compte tenu de toute l'instabilité qui y est inhérente.
Ces définitions proviennent de la norme ISO 9126, qui se divise en caractéristiques et sous-caractéristiques: this table , this pdf or wikipedia or article
La stabilité est: caractérise la sensibilité au changement d'un système donné qui est l'impact négatif qui peut être causé par des changements du système.
La fiabilité est une caractéristique principale qui contient:
Objectif: écrire un programme pour ajouter deux nombres
Fiable mais instable:
add(a,b):
if randomInt mod 5 == 0:
throw exception
else
print a+b
Stable mais peu fiable:
add(a,b):
if randomInt mod 5 == 0:
print a+a
else
print a+b
Dans le contexte de l'évaluation des bibliothèques, les termes signifient des choses complètement différentes.
Une bibliothèque fiable est celle qui fait son travail sans échecs intermittents.
Une bibliothèque stable est une bibliothèque qui ne change pas grand-chose.
Fiable mais pas Stable :
add(a,b):
if a == nil || b == nil:
throw exception
else
return (a+b)
Stable mais pas Fiable :
add(a,b):
if a == nil || b == nil:
return 0
else
return (a+b)
À mon avis, la "fiabilité" signifie que vous comprenez la limite du système. Vous pouvez, en toute confiance, dire que "nous fournissons le temps de réponse X au Xe centile" (plus le X est élevé, mieux c'est évidemment).
La stabilité, en revanche, n'est qu'une mesure de disponibilité. "Si vous essayez de vous connecter à notre service, il sera présent au moins X% du temps".
La stabilité et La fiabilité sont des choses différentes dans le développement de logiciels, mais ils ont tous deux utilisé comme les termes soeurs :)
Je suis d'accord avec certains commentaires précédents et je voudrais ajouter mes 2 cents.
La fiabilité est la mesure dans laquelle une expérience, un test ou toute procédure de mesure donne le même résultat lors d'essais répétés.
La fiabilité de la stabilité (parfois appelée test, fiabilité de test) est l'accord des instruments de mesure dans le temps. Pour déterminer la stabilité, une mesure ou un test est répété sur les mêmes sujets à une date ultérieure. Les résultats sont comparés et corrélés avec le test initial pour donner une mesure de stabilité.
Plus de références sur ce sujet sont fournies: