ch18 - Ian Sommerville 2000 Dependable Software Development...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Ian Sommerville 2000 Dependable Software Development Slide 1 Dependable software development Programming techniques for building dependable software systems. Ian Sommerville 2000 Dependable Software Development Slide 2 Software dependability In general, software customers expect all software to be dependable. However, for non-critical applications, they may be willing to accept some system failures Some applications, however, have very high dependability requirements and special programming techniques must be used to achieve this Ian Sommerville 2000 Dependable Software Development Slide 3 Dependability achievement Fault avoidance The software is developed in such a way that human error is avoided and thus system faults are minimised The development process is organised so that faults in the software are detected and repaired before delivery to the customer Fault tolerance The software is designed so that faults in the delivered software do not result in system failure Ian Sommerville 2000 Dependable Software Development Slide 4 Fault minimisation Current methods of software engineering now allow for the production of fault-free software. Fault-free software means software which conforms to its specification. It does NOT mean software which will always perform correctly as there may be specification errors. The cost of producing fault free software is very high. It is only cost-effective in exceptional situations. May be cheaper to accept software faults Ian Sommerville 2000 Dependable Software Development Slide 5 Fault removal costs Cost per error deleted Few Number of residual errors Many Very few Ian Sommerville 2000 Dependable Software Development Slide 6 Fault-free software development Needs a precise (preferably formal) specification. Requires an organizational committment to quality. Information hiding and encapsulation in software design is essential A programming language with strict typing and run-time checking should be used Error-prone constructs should be avoided Dependable and repeatable development process Ian Sommerville 2000 Dependable Software Development Slide 7 Structured programming First discussed in the 1970's Programming without gotos While loops and if statements as the only control statements. Top-down design. Important because it promoted thought and discussion about programming Leads to programs that are easier to read and understand Ian Sommerville 2000 Dependable Software Development Slide 8 Error-prone constructs Floating-point numbers Inherently imprecise. The imprecision may lead to invalid comparisons Pointers Pointers referring to the wrong memory areas can corrupt data. Aliasing can make programs difficult to understand and change Dynamic memory allocation Run-time allocation can cause memory overflow Parallelism Can result in subtle timing errors because of unforseen interaction between parallel processes Ian Sommerville 2000...
View Full Document

This note was uploaded on 11/09/2009 for the course SE 120336 taught by Professor Unknown during the Spring '09 term at Avila University.

Page1 / 52

ch18 - Ian Sommerville 2000 Dependable Software Development...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online