17
Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Embed Size (px)

Citation preview

Page 1: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Software Safety: Examples, Definitions, Standards,

Techniques

Tom Hobson (tdh06u)

Page 2: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Definition

• A systematic approach to identifying, analysing and controlling software hazards to ensure safe operation.

• Optimizes system safety in the software development process and integration with safety critical hardware systems in an operational environment.

Page 3: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Definition

• Software safety techniques are generally thought of as applying to safety-critical systems

• Software safety does not ensure safety from the hardware, users or environment

Page 4: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Examples

• NASA Ares I Rocket

• Honda’s ADAS

• Railway Signalling Systems

• Nuclear Reactor Control Systems

• Life Support Machines

• Air Traffic Control Systems

• etc.

Page 5: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Honda ADAS

• Automated Driver Assistance System

• Senses lane markings on the road and adjusts the steering to keep the driver in lane if the indicator is off

• Also maintains sufficient distance from the vehicle ahead

• If the software for this was faulty, the car could do almost anything

Page 6: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

NASA Ares I Rocket

• Currently in development• This rocket is firstly being designed to take

groups of astronauts into Earth orbit• Around 2014, this will be extended to

International Space Station excursions• By 2020, it will be extended to the moon and

beyond• Any inaccuracies in calculations can be drastic.

Page 7: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Standards

• Many standards for software safety

• Major standard is IEC 61508

• NASA software safety standard

Page 8: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Techniques

• Software safety is included in all parts of the software development life cycle

• For serious safety-critical systems it can be a very in depth and time consuming process

• Systems where safety is less crucial sometimes skip some of the less important phases due to little gain for the time investment

Page 9: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Preliminary Hazard Analysis (PHA)

• This is used as early as possible in the SDLC

• Used to identify potential hazards early to avoid having to fix them later

• Gives a good basis to work on later

Page 10: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Software Hazard Analysis

• Expansion on PHA

• Done during requirements phase

• Each state is now analysed to see from which other states it is possible to reach the hazardous state

Page 11: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Hazard Testing

• Requirements to test the system under hazard conditions are developed

• Hazard testing shows the maximum allowed response time to faults before they become a problem

• Can be tested using simulations, although in addition it should be tested on the system itself

• Usually includes bench testing

Page 12: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Criticality Analysis

• Used to categorise modules to show which are most safety critical

• Ranges from C0-C3, C0 being least potentially hazardous, and C3 being most

• Modules are handled differently according to their hazard rating

Page 13: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Fault Tree Analysis

• Logical Analysis

• A diagrammatic approach to displaying the states of a system which can potentially lead to a fault

• Mirror to RBD (Reliability Block Diagram)

• Shows easily what circumstances lead to specific faults

Page 14: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

FMEA (Failure Modes and Effects Analysis)

• FMEA is a technique used to check the safety requirements formulated in hazard testing

• It is used to identify structural weaknesses in the design

• A range of identified failure modes are tested against to check whether these failures are possible to reach

• As this stage is completed before implementation, the cost of fixing any design weaknesses or errors is fairly low

Page 15: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Late Design/Coding Phase

• Detailed Fault Tree Analysis– This is, in effect, expanding the fault tree again– Detects additional errors

• Detailed FMEA– Requires a large time investment– This stage is often the one skipped for less safety-

critical systems• Defensive Programming

– Often reduces the time needed for safety techniques

Page 16: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

References

• Czerny, D’Ambrosio, Murray and Sundaram, Effective Application of Software Safety Techniques for Automotive Embedded Control Systems, 2005

• C A Ericson, http://www.dcs.gla.ac.uk/~johnson/teaching/safety/reports/Clif_Ericson1.htm

• Fries, Fisher, and Jobes, Programmable Electronic Mining Systems: Best Practice Recommendations, Part 3: 2.2 Software Safety, 2001

• NASA, Software Safety: NASA Technical Standard, 1997

• Jeff Payne, http://www.embedded.com/columns/technicalinsights/19201765?_requestid=471140, 2004

• Goddard, Peter. Software FMEA Techniques, 2000

Page 17: Software Safety: Examples, Definitions, Standards, Techniques Tom Hobson (tdh06u)

Questions?