Improving Software Robustness with Dependability Cases
نویسندگان
چکیده
Programs fail mainly for two reasons: logic errors in the code, and exception failures. Exception failures can account for up to 2/3 of system crashes [6], hence are worthy of serious attention. Traditional approaches to reducing exception failures, such as code reviews, walkthroughs and formal testing, while very useful, are limited in their ability to address a core problem: the programmer’s inadequate coverage of exceptional conditions. The problem of coverage might be rooted in cognitive factors that impede the mental generation (or recollection) of exception cases that would pertain in a particular situation, resulting in insufficient software robustness. This paper describes a study to test the hypothesis that robustness for exception failures can be improved through the use of dependability cases. Dependability cases, derived from safety cases, comprise a methodology based on structured taxonomies and memory aids for helping software designers think about and improve exception-handling coverage. A controlled experiment conducted with 59 subjects revealed a statistically significant 43% increase in exception-handling robustness. An ancillary experiment conducted with 38 subjects provides convergent evidence that the effect is authentic, and not due to programming expertise alone.
منابع مشابه
An approach for improving Fault-Tolerance in Automotive Modular Embedded Software
Error detection and error recovery mechanism must be carefully selected in automotive embedded applications mainly because of limited resources and economical reasons. However, major safety concerns, brought by new customer services (i.e. chassis control), motivate the automotive industry to search for new means for improving robustness in operation. The challenge is to study a “low-cost”, port...
متن کاملFault Injection and Its Techniques
A fault is a defect in a program, usually difficult to pinpoint .A faults may occur at single points or distributed points. In software testing, fault injection is a technique of introducing faults into the code for improving the coverage and usually used with stress testing for robustness of the developed software. When the fault-tolerance mechanisms detect an error, they may initiate several ...
متن کاملComparing Operating Systems Using Robustness Benchmarks
When creating mission-critical distributed systems using off-the-shelf components, it is important to assess the dependability of not only the hardware, but the software as well. This paper proposes a way to test operating system dependability. The concept of response regions is presented as a way to visualize erroneous system behavior and gain insight into failure mechanisms. A 5-point “CRASH”...
متن کاملCustomizing Dependability with Reusable Software Components
Many large software systems have diierent components with varying requirements for robustness and performance. Moreover, dependability requirements often change throughout their software life-cycle. Thus any single dependability technique is insuf-cient for implementing large systems. Software developers need to be able to modify dependability code without modifying application code. We outline...
متن کاملDeveloping a Software Architecture for Graceful Degradation in an Elevator Control System
Many embedded systems have high safety and dependability requirements, which makes ensuring software robustness a top priority in these systems. As embedded computer systems become more complex and incorporate increasing functionality, their software systems become increasingly more difficult to design, build, and maintain. One approach to achieving software robustness is graceful degradation. ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1998