Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis

Christian Lindig, Gregor Snelting Technische Universitat Braunschweig Abteilung Softwaretechnologie Bultenweg 88 D-38104 Braunschweig, Germany +49 531 391 7577 lindig@ips.cs.tu-bs.de to appear in Proc. International Conference on Software Engineering, Boston 1997 ABSTRACT We apply mathematical concept analysis in order to modularize legacy code. By analysing the relation between procedures and global variables, a so-called concept lattice is constructed. The paper explains how module structures show up in the lattice, and how the lattice can be used to assess cohesion and coupling between module candidates. Certain algebraic decompositions of the lattice can lead to automatic generation of modularization proposals. The method is applied to several examples written in Modula-2, Fortran, and Cobol; among them a >100kloc aerodynamics program.

[1]  William G. Griswold,et al.  Tool support for planning the restructuring of data abstractions in large systems , 1996, SIGSOFT '96.

[2]  Tool Support for Planning the Restructuring of Data Abstractions in Large Systems , 1998, IEEE Trans. Software Eng..

[3]  Rudolf Wille,et al.  Tensorial decomposition of concept lattices , 1985 .

[4]  Giuseppe Visaggio,et al.  Software salvaging and the call dominance tree , 1995, J. Syst. Softw..

[5]  Silke Pollandt,et al.  Fuzzy-Begriffe - formale Begriffsanalyse unscharfer Daten , 1997 .

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

[7]  Bernhard Ganter,et al.  Formale Begriffsanalyse - mathematische Grundlagen , 1996 .

[8]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[9]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

[10]  R. W. Schwanke,et al.  An Intelligent Tool For Reengineering Software Modularity , 1991, ICSE 1991.

[11]  G. Carpenter In Providence, R. I. , 1929 .

[12]  Linda M. Ott,et al.  Slice based metrics for estimating cohesion , 1993, [1993] Proceedings First International Software Metrics Symposium.

[13]  William G. Griswold,et al.  Automated assistance for program restructuring , 1993, TSEM.

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

[15]  Robert W. Schwanke,et al.  An intelligent tool for re-engineering software modularity , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[16]  William C. Chu,et al.  A measure for composite module cohesion , 1992, International Conference on Software Engineering.

[17]  William G. Griswold,et al.  Automated support for encapsulating abstract data types , 1994, SIGSOFT '94.

[18]  G. S. BraunschweigAbteilung Algorithms for Concept Lattice Decomposition and Their Application , 1995 .