Important Software Engineering papers

Some of the must read in software architecture and design.

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.

The paper also discuss why inheritance violates encapsulation in 3 possible ways.