CSC/ECE 517 Fall 2009/wiki3 20 i7: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
Liskov | = Liskov substitution principle = | ||
==The Principle== | |||
The Liskov substitution principle was introduced by Barbara Liskov in 1987 and is concerned with subtype contractual correctness. Based on a paper from 1994 the principle states, "Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.". This means that for every parent type T, subtype S should be able to be substituted in for it and the behavior of the program should remain exactly the same. | |||
==Preconditions== | |||
Preconditions cannot be strengthened. <Explain in english> | |||
<Example> | |||
==Postconditions== | |||
Postconditions cannot be weakened. <Explain in english> | |||
==Invariants== | |||
Invariants must be preserved. <Explain in english> |
Revision as of 08:50, 18 November 2009
Liskov substitution principle
The Principle
The Liskov substitution principle was introduced by Barbara Liskov in 1987 and is concerned with subtype contractual correctness. Based on a paper from 1994 the principle states, "Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.". This means that for every parent type T, subtype S should be able to be substituted in for it and the behavior of the program should remain exactly the same.
Preconditions
Preconditions cannot be strengthened. <Explain in english> <Example>
Postconditions
Postconditions cannot be weakened. <Explain in english>
Invariants
Invariants must be preserved. <Explain in english>