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


Contracts


Pre/Post Conditions


Proving Properties - Invariants