Reconsidering Classes in Procedural Object-Oriented Code
Résumé
Object-oriented software may show signs of procedural thinking because of lack of design or due to design erosion over a period of time. We refer to such a software as procedural object-oriented code. Huge classes, scarce class hierarchies and absence of classes for domain entities are hallmarks of procedural object-oriented code. Due to huge amount of investment in such systems, software restructuring becomes necessary to search for useful domain abstractions to modularize the code. In this paper, we present a tool-assisted technique to search for useful abstractions and class hierarchies from procedural object-oriented code. For this purpose, principal classes of methods are identified and composition and association links are inferred for principal classes. In the second phase, formal Concept Analysis (FCA) is used to analyze class hierarchies within principal classes.