용어가 안정적이고 신뢰할 수있는 상호 교환 가능합니까?


20

안정성신뢰성 사이에 차이가 있습니까 (적어도 소프트웨어 엔지니어링 환경에서) 또는 상호 교환 적으로 사용될 수 있습니까? 그렇지 않다면, 신뢰할 수 있지만 반드시 안정적인 시스템의 예는 무엇입니까?


3
시스템이 항상 작동하지만 간헐적으로 잘못된 결과를 생성하거나 때때로 데이터를 잃는 경우 누군가가 시스템을 안정적이지만 신뢰할 수없는 것으로 간주 할 수 있습니다. 이 단어들의 의미는 의견의 문제입니다.
joshp

내 마음 속에 그들은 같은 것, 일관성으로
귀결

왜 물어?
JᴀʏMᴇᴇ

답변:


37

예를 들어 앱이 있는데 5 분마다 다운되는 것을 제외하고는 완벽하게 작동하지만 데이터 손실없이 즉시 백업됩니다.

내 마음에는 신뢰할 만하지 만 안정적이지 않습니다.

데이터가 안정적이지 않더라도 데이터를 잃지 않고 올바르게 작동하지 않을 수 있습니다.

실제로 인터넷은 기본적으로 그런 것입니다. 연결이 끊어지고 다시 나타나고, 패킷이 충돌하여 손실되며, 모든 다른 불안정한 상황이 발생합니다. 그러나 그 안에 내재 된 모든 불안정성이 얼마나 신뢰할 수 있는지는 놀랍습니다.


2
Ian Somerville은 안정성을 "특정 목적을 위해 지정된 환경에서 지정된 시간 동안 오류없이 작동 할 확률"로 정의합니다. 책에서 소프트웨어 공학. 따라서 5 분마다 시스템이 충돌하는 것은 그리 신뢰할 수 없습니다 (하지만 메트릭에 따라 다름).
m3th0dman

2
@ m3th0dman은 실패를 정의하는 방법에 따라 다릅니다. 앱이 계속 충돌하고 다시 시작 되더라도 데이터 손실이 없으며 100 % 데이터 정확도가 제 책에서 실패하지 않습니다. 이 문제를 해결하고 싶지만 계속 작동하면 우선 순위가 높지 않습니다.
CaffGeek

시스템이 충돌하면 어딘가에 고장이 발생한 것이므로 작업 정의에 오류가없는 것은 아닙니다 (정의에서 제안한대로). 따라서 시스템이 그렇게 안정적이지 않습니다. 가용성, 응답 및 재시작 시간에 대해 설명 할 수 있습니다.
m3th0dman

나는이 예제 응용 프로그램이 신뢰할 수 있다고 생각하지 않습니다. 신뢰성과 안정성이 반드시 별개의 두 가지 일 필요는 없습니다.
모쉐 Revah

@ m3th0dman : Erlang 프로그램은 오류가 없기 때문에 신뢰할 수있는 것으로 간주되지 않지만 프로그램을 전체적으로 손상시키지 않고 실패 할 수있는 많은 동시 프로세스 (OS 프로세스 아님)로 구성되어 있기 때문에 이러한 실패를 처리합니다.
안드레 파라 메스

24

이러한 정의는 ISO 9126 표준에 따라 특성과 하위 특성으로 구분됩니다.이 ,이 pdf 또는 wikipedia 또는 기사

안정성 : 시스템 변경으로 인해 발생할 수있는 부정적인 영향 인 특정 시스템의 변경에 대한 민감도를 나타냅니다.

신뢰성은 다음을 포함하는 주요 특성입니다.

  • 성숙도 :이 하위 특성은 소프트웨어의 실패 빈도와 관련이 있습니다.
  • 내결함성 : 소프트웨어가 구성 요소 또는 환경 적 장애를 견딜 수있는 기능.
  • 복구 가능성 : 데이터 및 네트워크 연결을 포함하여 오류가 발생한 시스템을 전체 작동 상태로 되돌릴 수 있습니다.

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)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.