Many organisations are migrating towards object-oriented technology. Howeve
r, owing to the business value of legacy software, new object-oriented deve
lopment has to be weighed against salvaging strategies. The incremental mig
ration of procedurally oriented systems to object-oriented platforms seems
to be a feasible approach, although it must be considered as risky as redev
elopment. This approach uses reverse engineering activities to abstract an
object-oriented model from legacy code. The paper presents a method for dec
omposing legacy systems into objects. The identification of objects is cent
red around persistent data stores, such as files or tables in the database,
while programs and routines are candidates for implementing the object met
hods. Associating the methods to the objects is achieved by optimising sele
cted object-oriented design metrics. The rationale behind this choice is th
at the object-oriented decomposition of a legacy system should not result i
n a poor design, as this would make the re-engineered system more difficult
to maintain. (C) 1999 Elsevier Science Inc. All rights reserved.