Lecture notes for CS 503, Advanced Programming I

Advanced Programming I Lecture Notes

19 April 2007 • Design by Contract


Outline

Design by Contract

Objectives

Contracts

Contract Objectives

Advantages

Contract Coverage

Software Contracts

The Stack Example

Assertions

Assertion Values

Assertion Support

Assertions in Contracts

Preconditions

Postconditions

Example

Violating Conditions

Checking Conditions

Conditions and Classes

Class Invariants

Example Invariant

Invariant Scope

Example Observations

Invariant Visibility

Invariant Exemptions

Exemption Example

Class State

Invariant Rule

Definitions

Class Correctness

Proving Correctness

Inheritance

Subcontracting

Subcontracts

References


This page last modified on 7 June 2006.

This work is covered by a
Creative Commons License.