## Assessing modular structure of legacy code based on mathematical concept analysis (1997)

### Cached

### Download Links

- [www.st.cs.uni-sb.de]
- [www.st.cs.uni-saarland.de]
- [www.st.cs.uni-saarland.de]
- [www.st.cs.uni-saarland.de]
- DBLP

### Other Repositories/Bibliography

Citations: | 113 - 3 self |

### BibTeX

@INPROCEEDINGS{Lindig97assessingmodular,

author = {Christian Lindig and Gregor Snelting and Technische Universität Braunschweig},

title = {Assessing modular structure of legacy code based on mathematical concept analysis},

booktitle = {},

year = {1997},

pages = {349--359},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### 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.

### Citations

559 |
Lattice theory
- Birkhoff
- 1967
(Show Context)
Citation Context ...ent and V = int(c) is called the intent of c. 1 G. Birkhoff discovered in 1940 that the set of all formal concepts for a given formal context c is in fact a complete lattice, the concept lattice L(C) =-=[1]-=-. The partial order in this lattice is given by c1 ≤ c2 ⇐⇒ ext(c1) ⊆ ext(c2) ( ⇐⇒ int(c1) ⊇ int(c2)). The infimum of two concepts is computed by intersecting their extents and joining their intents: c... |

411 |
Restructuring lattice theory: An approach based on hierarchies of concepts, in
- Wille
- 1982
(Show Context)
Citation Context ...ation sources, the relation between variables and procedures must be examined, and if possible, module candidates must be identified. In earlier work, we have shown that mathematical concept analysis =-=[10, 13]-=- is a useful tool for analysing old software. As a particular reengineering problem, we have chosen the analysis of configurations in UNIX source files. We have shown how configuration spaces can be e... |

264 | Using program slicing in software maintenance
- Gallagher, Lyle
- 1991
(Show Context)
Citation Context ...82 87 91 54 85 63 108 8 111105 123 Figure 12: Another program of the same COBOL system To discover modular structure, our method should be applied together with other methods based on program slicing =-=[3, 6]-=- or similarity measures [8, 7]. Empirical studies must show how concept analysis compares with these methods. We believe that complex reengineering tasks cannot be tackled with one method alone, but t... |

126 |
An intelligent tool for re-engineering software modularity
- Schwanke
- 1991
(Show Context)
Citation Context ...manual changes or automated program transformation or both (see e.g. [4]). In particular, the relation be1 tween procedures and (global) variables has long been recognized important for restructuring =-=[8]-=-. Indeed, an abstract data object is characterized by a set of procedures operating on a common set of (hidden) variables. Legacy systems written in FORTRAN or COBOL however make abundant use of globa... |

98 |
Automated assistance for program restructuring
- GRISWOLD, NOTKIN
- 1993
(Show Context)
Citation Context ...nlocal objects, or interface information must be extracted in order to guide restructuring. Modularization can then be achieved by manual changes or automated program transformation or both (see e.g. =-=[4]-=-). In particular, the relation be1 tween procedures and (global) variables has long been recognized important for restructuring [8]. Indeed, an abstract data object is characterized by a set of proced... |

79 | On the inference of configuration structures from source code
- Krone, Snelting
- 1994
(Show Context)
Citation Context ... UNIX source files. We have shown how configuration spaces can be extracted from old source code, and how dependencies and interferences between configurations can be detected using a concept lattice =-=[5]-=-. More recent work described how to automatically detect interferences, and how source files can be simplified according to latticegenerated information [9]. In this paper, we investigate the relation... |

73 |
Formale Begriffsanalyse. Mathematische Grundlagen
- Ganter, Wille
- 1996
(Show Context)
Citation Context ...ation sources, the relation between variables and procedures must be examined, and if possible, module candidates must be identified. In earlier work, we have shown that mathematical concept analysis =-=[10, 13]-=- is a useful tool for analysing old software. As a particular reengineering problem, we have chosen the analysis of configurations in UNIX source files. We have shown how configuration spaces can be e... |

68 | Slice based metrics for estimating cohesion
- Ott, Thuss
- 1993
(Show Context)
Citation Context ...82 87 91 54 85 63 108 8 111105 123 Figure 12: Another program of the same COBOL system To discover modular structure, our method should be applied together with other methods based on program slicing =-=[3, 6]-=- or similarity measures [8, 7]. Empirical studies must show how concept analysis compares with these methods. We believe that complex reengineering tasks cannot be tackled with one method alone, but t... |

51 | Reengineering of configurations based on mathematical concept analysis
- Snelting
- 1996
(Show Context)
Citation Context ...ons can be detected using a concept lattice [5]. More recent work described how to automatically detect interferences, and how source files can be simplified according to latticegenerated information =-=[9]-=-. In this paper, we investigate the relation between procedures and global variables in legacy code. Based on this relation, we want to find module candidates and assess the module structure. We first... |

35 |
A Measure For Composite Module Cohesion
- Patel, Chu, et al.
- 1992
(Show Context)
Citation Context ... 123 Figure 12: Another program of the same COBOL system To discover modular structure, our method should be applied together with other methods based on program slicing [3, 6] or similarity measures =-=[8, 7]-=-. Empirical studies must show how concept analysis compares with these methods. We believe that complex reengineering tasks cannot be tackled with one method alone, but that in practice a method mix w... |

17 |
Subdirect decompositions of concept lattices. Algebra univers. 17
- WILLE
- 1983
(Show Context)
Citation Context ...the lattice for the whole system nor the lattice for the “CNTL” COMMON block had usable block relations, hence no automatic modularization was possible. We also tried to apply subdirect decomposition =-=[11]-=- and subtensorial decomposition [12] to the lattice, as described in [2]. These decomposition techCNTL_MBL CNTL_LEVEL CNTL_IFLAG THIRDDP SYMR SYM SPECT3DC SPECT3D SPECT2DC SPECT2D TOPSING SENSORP TFLS... |

15 |
Tensorial decompositions of concept lattices, Order 2
- Wille
- 1985
(Show Context)
Citation Context ... the lattice for the “CNTL” COMMON block had usable block relations, hence no automatic modularization was possible. We also tried to apply subdirect decomposition [11] and subtensorial decomposition =-=[12]-=- to the lattice, as described in [2]. These decomposition techCNTL_MBL CNTL_LEVEL CNTL_IFLAG THIRDDP SYMR SYM SPECT3DC SPECT3D SPECT2DC SPECT2D TOPSING SENSORP TFLSING SCALRK RTESTCM NEWIND RTEST MODC... |

9 | Algorithms for concept lattice decomposition and their applications
- Funk, Lewien, et al.
- 1995
(Show Context)
Citation Context ...nents; interference detection is based on higher-order graph connectivity. According to the number and “badness” of interferences, the overall quality of the system structure can be measured. [9] and =-=[2]-=- contain a more detailed discussion 7 As row and column permutations in the table do not matter, horizontal decomposition in the table has exponential complexity, while in the lattice it has only line... |