Reengineering an existing legacy system into an object-oriented system often requires encapsulating existing data structures and converting computations on the data structures into method calls. This design task requires an architect to understand how the current data structures work in detail, then perform global changes to the source code to instantiate the new class. Various systems help the...