Software re-engineering is one of the solutions advocated for the problems that are encountered during maintenance. The three major phases of a re-engineering process are (i) reverse engineering into an abstraction,1 (ii) modifying the abstraction and (iii) implementing the modied abstraction. This paper is a contribution to the second phase of a re-engineering project. We present a methodology to transform a functional abstraction, obtained by reversing legacy software, into an object-oriented abstraction. This methodology has been applied to a case study that can be scaled to an industry-sized problem. Advantages of the object-oriented approach for developing the reengineered product are brie
y discussed. We used the Z and Object-Z formal notations for representfunctional and object-oriented abstractions respectively. Our methodology consists of two phases: (i) the naive transformation that transforms the Z paragraphs into Object-Z class denitions and concentrates on preserving th...
Kasilingam Periyasamy, C. Mathew