用語の安定性と信頼性は互換性がありますか?


20

安定性信頼性に違いがありますか(少なくともソフトウェアエンジニアリングのコンテキストで)、またはそれらを互換的に使用できますか?そうでない場合、信頼できるが必ずしも安定したシステムではない、またはその逆の例は何でしょうか?


3
常に稼働しているが、誤った結果を断続的に生成したり、データを時々失ったりする場合、誰かはシステムを安定しているが信頼できないと呼ぶかもしれません。これらの言葉の意味は意見の問題です。
-joshp

私の心では、彼らは同じもの、一貫性に煮詰めます
...-ダークナイト

なぜ質問するのですか?
JᴀʏMᴇᴇ

回答:


37

たとえば、アプリがあるとします。5分ごとにクラッシュすることは別として、完全に機能しますが、データが失われることなく即座にバックアップされます。

私の考えでは、それは信頼できますが、安定していません。

安定していないにもかかわらず、データを失い、正しく動作しないことに頼ることができます。

実際、インターネットは基本的にそれです。安定とはほど遠いです。接続がドロップして再表示され、パケットが衝突して失われ、他のあらゆる不安定なことが起こります。ただし、その固有のすべての不安定性がどの程度信頼できるかは驚くべきことです。


2
Ian Somervilleは、信頼性を「特定の環境で、特定の目的のために、指定された時間にわたって障害のない動作が行われる確率」と定義しています。本ソフトウェア工学で。したがって、5分ごとにシステムがクラッシュすることはそれほど信頼できません(ただし、メトリックに依存します)。
m3th0dman

2
@ m3th0dmanは、障害の定義方法に依存します。アプリがクラッシュして再起動し続けたとしても、データ損失はなく、100%のデータ精度は私の本では失敗しません。私は問題を修正したいと思いますが、それが「機能」し続けている場合、それは優先度が高くありません
-CaffGeek

システムがクラッシュした場合、明らかにどこかに障害が発生しているため、操作に障害が発生していません(定義で示唆されています)。したがって、システムはそれほど信頼できません。議論は、可用性、応答、および再起動時間について詳しく説明することができます。
m3th0dman

このサンプルアプリは信頼できるとは思いません。信頼性と安定性は必ずしも2つの別個のものではありません。
モシェレバ

@ m3th0dman:Erlangプログラムは信頼性があると考えられていますが、それは間違いがないからではなく、プログラム全体を損なうことなく失敗する可能性のある多くの並行プロセス(OSプロセスではない)で構成されているためです。
アンドレパラメ

24

これらの定義は、この、このpdfまたはウィキペディアまたは記事の特性とサブ特性に分かれているISO 9126規格に基づいています

安定性とは、システムの変更によって引き起こされる可能性がある負の影響である、特定のシステムの変更に対する感度を特徴付けます。

信頼性は、以下を含む主な特性です。

  • 成熟度:このサブ特性は、ソフトウェアの障害の頻度に関係します。
  • フォールトトレランス:コンポーネントまたは環境の障害に耐える(および回復する)ソフトウェアの能力。
  • 回復可能性:障害が発生したシステムを、データ接続やネットワーク接続を含む完全な操作に戻す機能。

6

目標: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

この定義は間違っています。この用語が業界で実際に使用されている方法ではありません。
フェデリコ

2

ライブラリを評価するという文脈では、用語はまったく異なることを意味します。

信頼性の高いライブラリとは、断続的にエラーが発生することなく機能するライブラリです。

安定したライブラリとは、あまり変わらないライブラリです。


安定版を「クラッシュしない」と解釈する非常に多くの答えを見て驚いた。私にとって最初の意味は確かに「しばらくの間あまり変化していない」ということで、もはや動いていません。もうクラッシュしないのはそれに伴うものかもしれませんが、安定性は主にソフトウェアの動作に関するものではありません。
マーティンマート

0

安定性信頼性はソフトウェア開発では異なりますが、両方とも姉妹用語として使用されます:)

前述のコメントに同意し、2セントを追加したいと思います。

信頼性とは、実験、テスト、または任意の測定手順が繰り返し試行で同じ結果をもたらす範囲です。

安定性の信頼性(テスト、再テストの信頼性とも呼ばれます)は、時間の経過に伴う測定器の合意です。安定性を判断するために、将来、同じ被験者に対して測定またはテストが繰り返されます。結果を比較し、初期テストと相関させて、安定性の尺度を示します。

このトピックに関するその他の参考資料が提供されています。


0

私の考えでは、「信頼性」とは、システムの限界を把握していることを意味します。自信を持って、「X番目のパーセンタイルで応答時間Xを提供する」と言うことができます(Xが高いほど、明らかに優れています)。

一方、安定性は単なる可用性の指標です。「私たちのサービスに接続しようとすると、少なくともX%の時間は存在します」。


0

信頼できる安定していない

add(a,b):
    if a == nil ||  b == nil: 
        throw exception
    else
        return (a+b)

安定している信頼できない

add(a,b):
    if a == nil ||  b == nil: 
        return 0
    else
        return (a+b)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.