Upload
adrian-hoe
View
139
Download
3
Tags:
Embed Size (px)
DESCRIPTION
An introduction to the benefits of using Ada to develop safety-critical systems.
Citation preview
Michał Nowak (AdaStar, Poland)Adrian Hoe (AdaStar Informatics, Malaysia)
Safety-Critical Systems and The Benefits of
using Ada
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
• What is it
• Characteristics
• Areas of use
• Standards and Methodologies
• Developing a safety-critical system
Safety-critical system
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-Critical System What is it?
A computer, electronic or electromechanical system whose failure may cause injury or death to human beings.
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical system
Characteristics
• Large and complex software
• Predictable, deterministic and precise
• Dependable (trustworthy, reliable)
• Often real-time or hard real-time
• Long-life software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemCharacteristics: large and complex
• Realizes complex algorithms
• Redundancy
• Multitasking
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemCharacteristics: predictable, deterministic and precise
State A
State B
Conditions
If the program is in State A and specified conditions occur, the program will go to State B and we always know what is State B.
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemCharacteristics: dependability
• Availability (ready for use every time when needed)
• Reliability (continuation of service while used)
• Safety (does not have catastrophic effects on environment)
• Security (preserves confidentiality)
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemCharacteristics: long-life software
Runs without stop (crash) for all the time it is supposed to run.
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemAreas of use
• Command and Control (airports, railways)
• Avionics (civil and military)
• Power plants
• Medical systems
• Space shuttles (manned and unmanned)
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemAreas of use (cont.)
• Trains, cars
• Telecommunications
• Information systems
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemStandards and Methodologies
• DO-178B (Airborne civil avionics)
• IEC 880 (Nuclear power plants)
• IEC 601-4 (Medical systems)
• GAMP (Pharmaceutical)
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemDeveloping a safety-critical system
• Write and validate necessary documentation
• Following the design specified in documentation implement the required functionality or reuse existing code
• Identify all hazard conditions and specify the way to mitigate each condition
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemDeveloping a safety-critical system (cont.)
• Perform code review to check whether the code complies to design
• Write a set of tests that verify whether the software behaves as expected
• Perform coverage analysis
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Safety-critical systemDeveloping a safety-critical system (cont.)
Managing the errors
• Keep database of all errors found together with description of problem, conditions of occurrence and fixes
• First document the error, correct documentation or design, then correct the code
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
• Readability
• Modularity
• Portability
• Strong-typing
• Standardization
• Specialized annexes
• Validated compilers (and runtime)
Benefits of Ada:
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Use of Ada to develop safety-critical software
Readability (creation stage)
• Code review stage
• code is easy to read and understand - does not contain any “magic” symbols
• notation often translates 1:1 to pseudo-language description of algorithms
• existing errors are easier to locate
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Readability (conclusions)
• More errors caught in shorter time
• Increased reliability
• Shorter development time
• Better code maintenance
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Modularity (creation stage)
• In most cases direct transformation from design phase to implementation phase (UML, HOOD)
• Code reuse
• Coding: each module can be assigned to a different programmer
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Modularity (conclusions)
• Increased reliability
• coding phase does not introduce new errors during transformation from design phase
• reused modules were previously tested
• Shorter development time
• reused modules were previously tested
• coding can be done concurrently, without waiting for previous modules to complete
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Portability
• Increased reliability
• reused code is already tested
• Shorter development time
• Easier maintenance
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Strong-typing (creation stage)
• Many errors caught during compilation
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Strong-typing (conclusions)
• Increased reliability
• Shorter development time
• no need to search for errors that were already found
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Standardization (creation stage)
• Design phase (no need to consider new libraries and environments)
• Programmers can easily move to another project
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Standardization (conclusions)
• Increased reliability
• the results of operations and runtime behavior is specified
• previously trained programmers gained experience
• Shorter development time
• no spending time for studying and learning new libraries
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Specialized annexes
• Annex C - Systems Programming
• Annex D - Real-time Systems
• Annex E - Distributed Systems
• Annex F - Information Systems
• Annex G - Numerics
• Annex H - Safety And Security
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Conclusions
• Ada helps to increase reliability of software
• Ada helps to shorten life cycle cost
Use of Ada to develop safety-critical software
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Use of Ada to develop software
• Your software does not have to be safety critical to be programmed in Ada
• You may have all benefits that Ada has in safety-critical programs for everyday coding
Copyright © 2004-2008 AdaStar (adastar.pl).Copyright © 2004-2008 AdaStar Informatics (adastarinformatics.com), AdrianHoe.com.
Thank you!