Software reengineering based on concept lattices

Concept analysis provides a way to identify groupings of objects that have common attributes. The mathematical foundation was laid by G. Birkhoff (1940), who proved that, for every binary relation between certain "objects" and "attributes", a lattice can be constructed which allows remarkable insight into the structure of the original relation. The relation can always be reconstructed from the lattice, hence concept analysis is similar in spirit to Fourier analysis. R. Wille (1982) and B. Ganter et al. (1999) elaborated Birkhoff's result and transformed it into a data analysis method that has found a variety of applications, such as an analysis of Rembrandt's paintings, a classification of algebraic structures and the behaviour of drug addicts. In 1993, work on the application of concept analysis in the area of program understanding and reengineering was initiated. Concept analysis has been used for modularization of legacy code, finding interferences between configurations and transformation of class hierarchies. Recently, concept lattices have also been applied to analysis of dynamic program behaviour. In this paper, we do not present the mathematical and algorithmic background but merely present an example explaining concept lattices.

[1]  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.

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

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

[4]  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).

[5]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

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

[7]  Thomas Ball,et al.  The concept of dynamic analysis , 1999, ESEC/FSE-7.

[8]  TipFrank,et al.  Reengineering class hierarchies using concept analysis , 1998 .

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