安定性と信頼性(少なくともソフトウェアエンジニアリングのコンテキストでは)の間に違いはありますか、それとも互換的に使用できますか?そうでない場合、信頼できるが必ずしも安定しているわけではないシステムの例は何でしょうか?
たとえば、アプリがあるとします。5分ごとにクラッシュすることを除いて、完全に機能しますが、データを失うことなく即座にバックアップされます。
私の心の中でそれは信頼できますが、安定していません。
安定していないにもかかわらず、データが失われず、正常に動作しないことを信頼できます。
実際、インターネットは基本的にそれです。安定とはほど遠いです。接続が切断されて再表示され、パケットが衝突して失われ、その他あらゆる種類の不安定なことが起こります。ただし、それに固有のすべての不安定性が与えられると、どれほど信頼性が高いかは驚くべきことです。
目標:2つの数値を加算するプログラムを作成する
信頼できるが不安定:
add(a,b):
if randomInt mod 5 == 0:
throw exception
else
print a+b
安定しているが信頼できない:
add(a,b):
if randomInt mod 5 == 0:
print a+a
else
print a+b
ライブラリを評価する文脈では、これらの用語はまったく異なるものを意味します。
信頼性の高いライブラリとは、断続的な障害なしに機能するライブラリです。
安定したライブラリとは、ほとんど変化しないライブラリです。
Reliablebut notStable:
add(a,b):
if a == nil || b == nil:
throw exception
else
return (a+b)
Stablenot notReliable:
add(a,b):
if a == nil || b == nil:
return 0
else
return (a+b)
私の考えでは、「信頼性」とは、システムの境界を把握していることを意味します。自信を持って、「X番目の百分位数で応答時間Xを提供する」と言うことができます(Xが高いほど、明らかに優れています)。
一方、安定性は可用性の指標にすぎません。 「当社のサービスに接続しようとすると、少なくともX%の頻度で存在します」。
安定性と信頼性はソフトウェア開発では異なりますが、どちらも使用されています姉妹用語として:)
前述のコメントに同意し、2セント追加したいと思います。
信頼性は、実験、テスト、または任意の測定手順で、繰り返し試行しても同じ結果が得られる範囲です。
安定性の信頼性(テストとも呼ばれ、再テストの信頼性)は、長期にわたる測定器の合意です。安定性を判断するために、測定またはテストが同じ日に同じ日に繰り返されます。結果を初期テストと比較および相関させて、安定性の尺度を提供します。
このトピックに関するその他のリファレンスが提供されています。