270 likes | 337 Views
Unreliable Computer. 950384 이 재웅 960201 박 준수. Contents. Introduction Definition of Reliability Some Examples Reliability model Improvement Technique Software Testing Rule for making reliable system Conclusion References. Definition of Reliability. Definition
E N D
Unreliable Computer 950384 이 재웅 960201 박 준수
Contents • Introduction • Definition of Reliability • Some Examples • Reliability model • Improvement Technique • Software Testing • Rule for making reliable system • Conclusion • References
Definition of Reliability • Definition • 주어진 조건 하에서 주어진 기간동안 이상 없이 작동할 확률 (by Peter Mellor) • System failure • 재난이 일어났다. • 한 명이 죽었다.
Hardware Reliability • 하드웨어의 Failure rate 곡선
Software Reliability • 소프트웨어의 Failure rate 곡선
Example 1. • Airbus Crash • 에어쇼 중 A320 추락 • 1988. 6. 26. 사망 3/136 • Flying mode에서 전환 시 고도계가 메모리에 있는 기압을 읽어들임 • 실제고도 50 ft를 100 ft로 표시
Example 2. • 이지스함의 민간항공기 격추 • 미해군, 이란 655기 격추 • 1988. 7. 3. 사망 290명 • 12억 달러, AN/SPY-1 레이다 • Trials, Validation 상의 문제 • 사람의 관여 요소 부족
Example 3. • 아리안 5호 발사 실패 • 1996. 6. 4. 기아나 기지 • 유럽 12개국 11년간 5조 6천억원 투자 • 안정적인 Hardware/Software 재사용으로 안정화 꾀함 • Inertial Reference System 오동작 • Self Destruction Sequence 의해 폭발
Example 4. (1/2) • Patriot Missile • 1991. 2. 25 걸프전 • 60년대 개발된 Timer 사용 • 24bit resister 사용으로 100시간마다 0.34초의 오차발생 • 정확도 10% 미만
Example 4. (2/2) • 1/10 = 1/24+1/25+1/28+1/29+1/212+1/213+.... = 0.0001100110011001100110011001100.... • 24 bit register 0.00011001100110011001100 • error = 0.0000000000000000000000011001100… •이진수를 십진수로 변환 : 약 0.000000095 • 100 hrs 경과후 : 0.000000095×100×60×60×10=0.34 (초) •스커드 미사일 속도 1676 m/s ∴ 시스템 가동 100시간 경과후 오차는 약 570 m
Example 5. • Windows error • 1 : 문제가 발생된 가상 디바이스 드라이버의 이름, 개체 번호 • 2 : VKD라는 가상디바이스 드라이버에 문제가 있음 표시 • 4 : 에러가 발생한 곳의 가상 메모리 주소
Example 6. • Windows의 CONCON 버그 • 'C:\CON\CON\CON‘형식의 파일에 접근하려는 경우 윈도우가 블루스크린을 내면서 crash • 웹페이지의 링크를 'file://c:/con/con/con' 형식으로 연결할 경우, 링크를 누르는 순간 방문자의 윈도우는 즉시 블루스크린을 보여주게 된다. • 98은 치명적오류라면서 블루스크린 • nt에서는 Dr. watson이 뜨면서 익스플로러 오류 • ‘웹사이트에 접속하기 전에 작업하던 문서를 반드시 저장하시오’ 라는 캠페인을 벌여야 할지도 모르는 일
ISSUES PREDICTION MODELS ESTIMATION MODELS DATA REFERENCE WHEN USED IN DEVELOPMENT CYCLE TIME FRAME Reliability Model Uses historical data Uses data from the current software development effort Usually made prior to development or test phases; can be used as early as concept phase Usually made later in life cycle(after some data have been collected); not typically used in concept or development phases Predict reliability at some future time Estimate reliability at either present or some future time
Improvement Techniques • Software Fault Tolerance • Hardware Fault Tolerance • Object Oriented Programming • Management • Software Testing
S/W Testing (1/6) • Definition • any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results • Types of Testing • Functional Test • Structural Test • Alpha, Beta Test • Installation, Field Test
resultant outputs desired output selected inputs S/W Testing (2/6) • Functional Test • Based on functional specification • Black box test
selected inputs resultant outputs desired output software design internal behavior S/W Testing (3/6) • Structural Test • Based on software structure/implementation • White box test
Specification of S/W Selection Criteria Test Case Design Test Cases Test Execution Test Verdicts S/W Under Testing Test Oracles S/W Testing (4/6) • General Testing Process
S/W Testing (5/6) • Testing automation • generate oracles from the specification • generate test cases to test the target software against the oracles to decide their correctness • The degree of automation remains at the automated test script level • Available testing tools • Mothora • NuMega’s Boundschecker, Rational’s Purify • Ballista COTS Software Robustness Testing
detected errors detected errors weeks weeks S/W Testing (6/6) • When to stop testing? • Potentially endless • The optimistic stopping rule • Reliability meets requirements. • The benefit from continuing testing can’t justify the testing cost
Rules for making reliable system (1/2) • Object Oriented Programming • Information hiding • Modularity • Predefined properties • Program Verification, Derivation • During S/W design step • Prove correctness by mathematical method
Rules for making reliable system (2/2) • Programming Environment • Operating System • S/W developing Tool (Ex. Rational Rose) • Quality Control • Extensive & Expensive debugging, testing and proving • Management • Human, Project
Conclusion • Construction of S/W is a complex and difficult process and that existing techniques do not provide S/W if assured quality and reliability. • Software is getting into embedded systems, we must make sure that they don’t embed disaster. • We need enough budget and professionalism.
References • http://www-2.cs.cmu.edu/~koopman/des_s99/sw_reliability • http://www-2.cs.cmu.edu/~koopman/des_s99/sw_fault_tolerance/index.html • http://www-2.cs.cmu.edu/~koopman/des_s99/sw_testing/index.html • 권용래, Software Testing (TP), KAIST