SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 1 Software engineering for real-time systems Section 2 Dependable software
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 2 Objectives To: Show where, why and how software errors arise. Distinguish between correct, reliable and safe software. Establish that dependable software should be a primary design aim. Highlight the importance and influence of the software operating environment. Establish the basics of good software. Introduction
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 3 Qualities of dependable software
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 4 System behaviour under fault conditions
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 5 Types of software errors
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 6 Errors in the design process
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 7 A problem of syntax
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 8 A problem of semantics
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 9 Logic errors - what and when
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 10 Algorithmic errors
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 11 Poor software - the reasons
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 12 A flow-chart problem
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 13 Hierarchical modularized structure
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 14 Microprocessor system configurations
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 15 Component categorization
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 16 Review of ‘Dependable software’ You should now: Realize why, in the real world, we can never guarantee to produce fault-free systems. Know what is meant by dependable software and why it should be a primary design aim. Understand that software errors arise from problems to do with system design, software design and environmental factors. Appreciate some of the root causes of poor software. Recognize what has to be done to produce a quality software product. END OF SECTION ‘Dependable software’