120 likes | 402 Views
Dependability. How much can you trust your program? How important is it that you trust your program? Note : Usefulness and trustworthiness are not the same thing. . Dependability. Availability How likely that system will be up and running?. Reliability
E N D
Dependability • How much can you trust your program? • How important is it that you trust your program? • Note: Usefulness and trustworthiness are not the same thing. Critical Systems and Dependability
Dependability • Availability • How likely that system will be up and running? • Reliability • How likely that system behaves correctly? • Safety • How likely is system to cause damage? • Security • How likely can system defend against accidental or deliberate intrusion? Critical Systems and Dependability
Cost/dependability curve C o s t Dependability L o w M e d i u m H i g h V e r y U l t r a - h i g h h i g h Critical Systems and Dependability
Dependability vs. Performance • High levels of dependability often achieved at expense of performance • Justification: • Undependable critical systems won’t be used • Cost of system failure very high • Data integrity/reliability very important • Dependability hard to retrofit • Possible to compensate for performance deficit Critical Systems and Dependability
Critical Systems • Systems where failures can result in physical damage, threats to life, significant economic damage • Safety-critical systems • Mission-critical systems • Business-critical systems • Software only one “link in the chain” • hardware • human operator Critical Systems and Dependability
Availability and Reliability • Both can be quantified as probabilities • Reliability assumes availability, but might have different requirements, owing to: • reboot time • perceptions Critical Systems and Dependability
Availability and Reliability • ReliabilityThe probability of failure-free operation over a specified time in a given environment for a specific purpose • AvailabilityThe probability that a system, at a point in time, will be operational and able to deliver the requested services Critical Systems and Dependability
Reliability and context • Perception of reliability influenced by: • patterns of use • human perceptions • situations where failures occur Critical Systems and Dependability
Reliability Terminology • System failure • when system doesn’t deliver user-expected service • System error • when system doesn’t behave to spec • System fault • incorrect system state • Human error or mistake • source of error is human behavior Critical Systems and Dependability
Improving Reliability • Fault Avoidance • Conservative programming idioms • Fault Detection and Removal • Rigorous testing • Fault Tolerance • Designing system to recover gracefully from runtime faults Critical Systems and Dependability
Number of Bugs != Unreliability • Removing 60% of produce defects improved reliability only 3% [Mills] • It’s how often the bugs are tickled that matters • and unfortunately, this could relate to user behavior Critical Systems and Dependability
Safety and Security • Harder to quantify than reliability or availability • Process strategies • avoidance • detection and removal • limitation of influence Critical Systems and Dependability