Reengineering of configurations based on mathematical concept analysis

We apply mathematical concept analysis to the problem of reengineering configurations. Concept analysis will reconstruct a taxonomy of concepts from a relation between objects and attributes. We use concept analysis to infer configuration structures from existing source code. Our tool NORA/RECS will accept source code, where configuration-specific code pieces are controlled by the preprocessor. The algorithm will compute a so-called concept lattice, which —when visually displayed — offers remarkable insight into the structure and properties of possible configurations. The lattice not only displays tine-grained dependencies between configurations, but also visualizes the overall quality of configuration structures according to software engineering principles. In a second step, interferences between configurations can be analyzed in order to restructure or simplify configurations. Interferences showing up in the lattice indicate high coupling and low cohesion between configuration concepts. Source files can then be simplified according to the lattice structure. Finally, we show how governing expressions can be simplified by utilizing an isomorphism theorem of mathematical concept analysis.

[1]  John Beidler,et al.  Data Structures and Algorithms , 1996, Wiley Encyclopedia of Computer Science and Engineering.

[2]  Walter F. Tichy,et al.  Configuration management , 1995 .

[3]  SneltingGregor Reengineering of configurations based on mathematical concept analysis , 1996 .

[4]  R. Wille Geometric Representation of Concept Lattices , 1989 .

[5]  Gregor Snelting,et al.  Inference-Based Support for Programming in the Large , 1991, ESEC.

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

[7]  R. Wille Concept lattices and conceptual knowledge systems , 1992 .

[8]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

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

[10]  Gert Smolka,et al.  Feature-Constraint Logics for Unification Grammars , 1989, J. Log. Program..

[11]  Walter F. Tichy,et al.  Tools for Software Configuration Management , 1988, SCM.

[12]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[13]  Edward E. Smith,et al.  Categories and concepts , 1984 .

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

[15]  Axel Mahler,et al.  Variants: keeping things together and telling them apart , 1995 .

[16]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[17]  Rudolf Wille,et al.  Lattices in Data Analysis: How to Draw Them with a Computer , 1989 .

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

[19]  Bernd Fischer,et al.  VCR: A VDM-based software component retrieval tool , 1994 .

[20]  Andreas Zeller,et al.  Handling Version Sets Through Feature Logic , 1995, ESEC.

[21]  Jacky Estublier,et al.  The Adele configuration manager , 1995 .

[22]  Andreas Zeller,et al.  A unified version model for configuration management , 1995, SIGSOFT FSE.

[23]  Hans-Hermann Bock,et al.  Classification and Related Methods of Data Analysis , 1988 .

[24]  Otto Optiz,et al.  Conceptual and Numerical Analysis of Data , 1989 .

[25]  David B. Leblang The CM challenge: configuration management that works , 1995 .

[26]  Christian Lindig Concept-Based Component Retrieval , 1995 .

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

[28]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[29]  Gregor Snelting,et al.  Polymorphic components for monomorphic languages , 1993, [1993] Proceedings Advances in Software Reuse.

[30]  Rudolf Wille,et al.  Subdirect decomposition of concept lattices , 1983, ICFCA.

[31]  Andreas Zeller,et al.  Die inferenzbasierte Softwareentwicklungsumgebung NORA , 1994, Inform. Forsch. Entwickl..