术语稳定可靠是否可以互换?


20

稳定性可靠性之间存在区别(至少在软件工程方面),或者它们可以互换使用吗?如果不是,那将是一些可靠但不一定稳定的系统示例,反之亦然?


3
如果某个系统始终可以运行,但间歇性地产生错误的结果或偶尔丢失数据,则可能会将其称为稳定但不可靠的系统。这些字眼的意思是见仁见智。
joshp 2012年

在我看来,他们归结为同一件事,就是一贯……
Darknight

你问来干什么?
JᴀʏMᴇᴇ

Answers:


37

比方说,例如,我们有一个应用程序,除了每5分钟崩溃一次之外,它运行良好,但可以立即备份而不会丢失数据。

我认为这是可靠的,但不稳定。

尽管它不稳定,但我可以依靠它不会丢失数据并正常工作。

实际上,互联网基本上就是这样。它远非稳定的—连接丢失并重新出现,数据包碰撞并丢失,并且发生各种其他不稳定的情况。但是,考虑到它固有的所有不稳定因素,它的可靠性是如此令人惊讶。


2
伊恩·萨默维尔(Ian Somerville)将可靠性定义为“在给定环境中,出于特定目的在指定时间内无故障运行的概率”。在《软件工程》一书中。因此,您的系统每5分钟崩溃一次的可靠性就不那么可靠(不过取决于您的指标)。
m3th0dman

2
@ m3th0dman,取决于您随后如何定义故障。即使应用程序不断崩溃并重新启动,也不会造成数据丢失,并且100%的数据准确性不会对我造成影响。我想解决这个问题,但是如果它继续“工作”,它就不是一个高度优先事项
CaffGeek

如果您的系统崩溃,那么显然某个地方出现了故障,因此您的操作并非没有故障(如定义所建议);因此您的系统不是那么可靠。讨论可以详细讨论可用性,响应和重新启动时间。
m3th0dman 2012年

我严重认为此示例应用程序不可靠。可靠性和稳定性不一定是两个独立的事物。
Moshe Revah 2012年

@ m3th0dman:Erlang程序被认为是可靠的,不是因为它们是可靠的,而是因为它们由许多并发进程(不是OS进程)组成,这些进程在不破坏程序整体的情况下会失败,而该程序旨在处理这些失败。
安德烈·帕拉梅斯(AndréParamés)2012年

24

这些定义来自ISO 9126标准,该标准分为特征和子特征:此,此pdfWikipedia文章

稳定性是:表征给定系统更改的敏感性,这是系统更改可能引起的负面影响。

可靠性是一个主要特征,包含:

  • 成熟度:此子特性与软件故障的频率有关。
  • 容错:软件承受(或恢复)组件或环境故障的能力。
  • 可恢复性:能够使发生故障的系统恢复完整运行,包括数据和网络连接。

6

目标:编写一个程序将两个数字相加

可靠但不稳定:

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

该定义不正确。这并不是行业中真正使用这些术语的方式。
Federico

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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.