테라 크 -25!
Therac-25 프로젝트의 개발자들은 치료 용 XRAY 머신에서 UI와 인터페이스 관련 문제 사이의 타이밍에 대해 매우 확신했습니다.
그들은해서는 안됩니다.
이 유명한 생명 사망 소프트웨어 재해에 대한 자세한 내용은 다음을 참조하십시오.
http://www.youtube.com/watch?v=izGSOsAGIVQ
또는
http://en.wikipedia.org/wiki/Therac-25
응용 프로그램은 의료 기기보다 고장에 덜 민감 할 수 있습니다. 유용한 방법은 생산 가능성이있는 제품과 제품 수명 기간 동안 발생할 수있는 비용으로 생산 될 수있는 모든 장치에 대해 위험 노출을 평가하는 것입니다.
마지막으로 코드를 작성하기로 선택했다면 (그리고 마치 들리는 것처럼 들리면) 시스템 내부 또는 외부의 컴퓨터가 빨라짐에 따라 몇 년마다 쉽게 0에서 벗어날 수있는 무어의 법칙을 고려해야합니다. 수천 장을 배송 할 경우 더 많은 영점을 적용하십시오. 사용자가이 작업을 수년간 매일 (또는 매월) 수행하는 경우 몇 가지를 더 멀리 가져 가십시오. Google Fiber를 사용할 수있는 곳에서 사용한다면 어떻게 되나요? UI 가비지가 GUI 작업 중반을 수집하면 경쟁에 영향을 줍니까? GUI 뒤에 오픈 소스 또는 Windows 라이브러리를 사용하고 있습니까? 업데이트가 타이밍에 영향을 줄 수 있습니까?
세마포어, 잠금, 뮤텍스, 배리어 동기화는 스레드 간의 활동을 동기화하는 방법 중 하나입니다. 잠재적으로 사용하지 않으면 프로그램을 유지 관리하는 다른 사람이 스레드 간의 관계에 대한 가정을 빠르게 전환하고 경쟁 조건에 대한 계산이 무효화 될 수 있습니다.
문제가 발생하는 것을 볼 수는 없지만 고객이 발생할 수 있으므로 명시 적으로 동기화하는 것이 좋습니다. 또한 경쟁 조건이 발생하지 않더라도 도요타가 몇 년 전에 프리우스와 관련되어 있었기 때문에 귀하 또는 귀하의 조직이 귀하의 코드를 보호하기 위해 법원에 소집 된 경우에는 어떻게됩니까? 방법론이 철저할수록 더 잘 지낼 수 있습니다. "우리는 코드가 실패 할 것임을 알고 있지만, 평생에는 일어나지 않을 것임을 보여주기 위해이 방정식을 작성했습니다." "
확률 계산은 다른 사람에게서 온 것 같습니다. 그들은 당신의 코드를 알고 있으며 오류가 발생하지 않았다는 것을 믿을만큼 충분히 알고 있습니까? 어떤 것에 대해 99.99997 %의 신뢰성을 계산했다면, 나는 또한 대학 통계 수업으로 되돌아 가서 항상 100 %를 얻지 못했다는 것을 기억하고 내 자신의 개인 신뢰도 추정치에서 상당히 몇 퍼센트를 돌려받습니다.