SWE 619 Assignment 4
Fall 2011


Goal: Data Abstraction / Mutability.

Rewrite Liskov's Poly so that it is mutable. Keep the representation exactly the same.

Rewrite the overview, the method signatures, the method specifications, and the methods themselves.

Implement the abstraction function with toString().

Implement repOk().

Install (or find) a bug in your implementation that repOk() catches.

Note: You should be able to use the implementations given in Liskov with relatively minor changes. A version of Liskov's Poly is available here. If anyone notices any bugs in this implementation, let me know, and I will fix them.

Provide a decent set of JUnit tests.

You should turn in two versions - one correct and one faulty. Your JUnit tests should catch the fault in the faulty version.