Les termes sont-ils stables et fiables interchangeables?


20

Existe-t-il une différence entre stabilité et fiabilité (au moins dans le contexte du génie logiciel) ou peut-on les utiliser de manière interchangeable? Sinon, quels seraient des exemples de systèmes fiables mais pas nécessairement stables, et vice versa?


3
Quelqu'un peut qualifier un système de stable mais peu fiable s'il est toujours opérationnel et produit par intermittence des résultats incorrects ou perd parfois des données. C'est une question d'opinion sur la signification de ces mots.
joshp

Dans mon esprit, ils se résument à la même chose, la cohérence ...
Darknight

Pourquoi demandes-tu?
JᴀʏMᴇᴇ

Réponses:


37

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.


2
Ian Somerville définit la fiabilité comme «la probabilité d'un fonctionnement sans défaillance sur une durée spécifiée, dans un environnement donné, dans un but précis». dans le livre Software Engineering. Donc, votre système se bloque toutes les 5 minutes n'est pas si fiable (dépend de vos mesures cependant).
m3th0dman

2
@ m3th0dman, dépend alors de la façon dont vous définissez une défaillance. Aucune perte de données et une précision de 100% des données ne serait pas un échec dans mes livres, même si l'application continuait de se bloquer et de se redémarrer. Je voudrais résoudre le problème, mais ce ne serait pas une priorité élevée s'il continuait à fonctionner
CaffGeek

Si votre système tombe en panne, alors il y a évidemment eu une panne quelque part et donc votre opération n'a pas été sans panne (comme suggéré par la définition); votre système n'est donc pas aussi fiable. La discussion peut être détaillée en parlant de la disponibilité, de la réponse et du temps de redémarrage.
m3th0dman

Je ne pense vraiment pas que cet exemple d'application soit fiable. La fiabilité et la stabilité ne sont pas nécessairement deux choses distinctes.
Moshe Revah

@ m3th0dman: Les programmes Erlang sont considérés comme fiables, non pas parce qu'ils sont infaillibles, mais parce qu'ils sont constitués de nombreux processus simultanés (pas des processus OS) qui peuvent échouer sans compromettre le programme dans son ensemble, conçu pour gérer ces échecs.
André Paramés

24

Ces définitions proviennent de la norme ISO 9126, qui se divise en caractéristiques et sous-caractéristiques: ce tableau , ce pdf ou wikipedia ou 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:

  • maturité: Cette sous-caractéristique concerne la fréquence de défaillance du logiciel.
  • tolérance aux pannes: capacité du logiciel à résister (et à récupérer) à la défaillance d'un composant ou de l'environnement.
  • récupérabilité: possibilité de ramener un système défaillant à son plein fonctionnement, y compris les données et les connexions réseau.

6

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

Cette définition est incorrecte. Ce n'est pas ainsi que les termes sont vraiment utilisés dans l'industrie.
Federico

2

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.


Je suis surpris de voir autant de réponses qui interprètent stable comme "ne plante pas". Pour moi, le premier sens est en effet "n'a pas beaucoup changé depuis un certain temps", il ne bouge plus. La chose qui ne plante plus peut être quelque chose qui l'accompagne, mais la stabilité ne dépend pas principalement du comportement du logiciel.
Martin Maat

0

La stabilité et la fiabilité sont des choses différentes dans le développement de logiciels, mais elles sont toutes deux utilisées comme termes frères :)

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:


0

À 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".


0

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)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.