An Approach Using Formal Concept Analysis to Object Extraction in Legacy Code

Formal concept analysis is a well-known technique for identifying groups of objects in software with common sets of attributes. The objects can be procedures, functions, and modules. In this paper, we are proposing an approach using formal concept analysis to extract objects in a non-object oriented programs. We define an object as a set of data and its associated methods encapsulated in a class. Thus, we start with a data structure and apply a program slicing technique to extract the code from the legacy code corresponding to the data. The data and statements are then collected into an object. This research is a collaborative work in which we are trying to draw the benefit by using formal concept analysis and apply the analysis results to the field of software maintenance.

[1]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[2]  Robert S. Arnold Software Reengineering , 1993 .

[3]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[4]  Paolo Tonella,et al.  Concept Analysis for Module Restructuring , 2001, IEEE Trans. Software Eng..

[5]  Oscar Nierstrasz,et al.  Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering , 2005, ICFCA.

[6]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[7]  Houari A. Sahraoui,et al.  A Concept Formation Based Approach to Object Identification in Procedural Code , 1999, Automated Software Engineering.

[8]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[9]  Gregor Snelting,et al.  Concept analysis—a new framework for program understanding , 1998, PASTE '98.

[10]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[11]  Chia-Chu Chiang,et al.  Extracting business rules from legacy systems into reusable components , 2006, 2006 IEEE/SMC International Conference on System of Systems Engineering.

[12]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[13]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[14]  Gregor Snelting,et al.  On the inference of configuration structures from source code , 1994, Proceedings of 16th International Conference on Software Engineering.

[15]  Gregor Snelting,et al.  Reengineering of configurations based on mathematical concept analysis , 1996, TSEM.

[16]  M. L. Wolbarsht,et al.  NATO Advanced Study Institute. , 1986, IEEE transactions on medical imaging.

[17]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[18]  Rudolf Wille,et al.  Restructuring Lattice Theory: An Approach Based on Hierarchies of Concepts , 2009, ICFCA.