Slides - Åbo Akademi

Slides - Åbo Akademi Slides - Åbo Akademi

28.12.2013 Views

Software Reliability (ctd.) • Software, unlike hardware, can be fault-free (theoretically :)) • some formal methods can guarantee the correctness of software (proof-based verification, model checking, etc.) • Correctness of software does not ensure its reliability! • software can satisfy the specification document, yet the specification document itself might already be faulty • No independence assumption, i.e., copies of software will fail together • most hardware fault tolerance mechanisms ineffective for software • design diversity instead of component redundancy (e.g., N-version programming )

Design diversity Each variant of software is generated by a separate (independent) team of developers • higher probability to generate a correct variant • independent design faults in different variants Costly, yet leads to an effective reliability improvement Not as efficient as N-modular redundancy in hardware reliability engineering [J. C. Knight and N. G. Leveson, 1986]

Software Reliability (ctd.)<br />

• Software, unlike hardware, can be fault-free (theoretically :))<br />

• some formal methods can guarantee the correctness of<br />

software (proof-based verification, model checking, etc.)<br />

• Correctness of software does not ensure its reliability!<br />

• software can satisfy the specification document, yet the<br />

specification document itself might already be faulty<br />

• No independence assumption, i.e., copies of software will fail<br />

together<br />

• most hardware fault tolerance mechanisms ineffective for<br />

software<br />

• design diversity instead of component redundancy<br />

(e.g., N-version programming )

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!