Reliable Software

Reliable Software

How to create reliable software

Catching Errors

Reliable OO

OO in Ada

Avoid Overriding Errors

Avoid dynamic dispatch

More Avoiding Dynamic Dispatch

Avoid heap allocation

Avoid redefining fields

Reliable Variant Records

Compile time checks

Runtime time checks

Reliable Pointers

Not null

Access Checks - Avoid Dangling references

Strong type checking - Variables

Strong type checking - Routine access

Storage pools

Reliable Syntax

Ways of Handling Runtime Checks

Proving Program Properties

Goals of Proving Properties


Pre/Post Conditions

Proving Properties - Invariants