Assisted Software Exploration using Formal Concept Analysis

Paul Heckmann, Daniel Speicher


Program comprehension requires understanding the structures within the program. Some of these structures are created intentionally and well known (design pattern), others arise implicitly but are still meaningful, and finally some structures emerge accidentally without any meaning. We build on a previously suggested approach to mine structures in software using Formal Concept Analysis. In contrast to previous work, we found the performance of our tool to be still acceptable for projects of interesting size (600 classes). A prominence index for classes based on the formal concepts proved to be helpful for the identification of core structures (high prominence) as well for focusing on specific structures (low prominence). We report about two experiments. In the first the tool guided the experimenter to central structures of JUnit as documented before but unknown by the experimenter. In the second the tool led us to the core structures of our own software.


  1. G. Arévalo. High Level Views in Object-Oriented Systems using Formal Concept Analysis. PhD thesis, University of Bern, 2004.
  2. A. Belderrar, S. Kpodjedo, Y.-G. Guéhéneuc, G. Antoniol, and P. Galinier. Sub-graph Mining: Identifying Micro-architextures in Evolving Object-oriented Software. Europ. Conference on Software Maintenance and Reengineering, 2011.
  3. C. Carpineto and G. Romano. Concept Data Analysis, Theory and Applications. Wiley & Sons, 2004.
  4. L. P. Cordella, P. Foggia, C. Sansone, and M. Vento. An improved algorithm for matching large graphs. In In: 3rd IAPR-TC15 Workshop on Graph-based Representations in Pattern Recognition, Cuen, pages 149-159, 2001.
  5. A. H. Eden, Y. Hirshfeld, and A. Yehudai. LePUS - A Declarative Pattern Specification Language. Technical report, 1998.
  6. E. Gamma, R. Helm, and R. Johnson. Design Patterns. Elements of Reusable ObjectOriented Software. Addison-Wesley Longman, 1994.
  7. B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer, 1998.
  8. M. Gupta and A. Pande. Design patterns mining using subgraph isomorphism: Relational view. International Journal of Software Engineering and Its Applications (IJSEIA), 2011.
  9. P. Krajca, J. Outrata, and V. Vychodil. Parallel Recursive Algorithm for FCA. In Concept Lattices and Their Applications (CLA), pages 71-82, 2008.
  10. J. M. Smith and D. Stotts. Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture. In IEEE/NASA Software Engineering Workshop, pages 183- 190, 2002.
  11. P. Tonella and G. Antoniol. Object Oriented Design Pattern Inference. In Proceedings of ICSM, page 230ff. IEEE Computer Society Press, 1999.
  12. Z.-X. Zhang, Q.-H. Li, and Ke-Rongben. A New Method for Design Pattern Mining. International Conference on Machine Learning and Cybernetics, 2004.

Paper Citation

in Harvard Style

Heckmann P. and Speicher D. (2012). Assisted Software Exploration using Formal Concept Analysis . In Proceedings of the 3rd International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2012) ISBN 978-989-8565-32-7, pages 11-21. DOI: 10.5220/0004175400110021

in Bibtex Style

author={Paul Heckmann and Daniel Speicher},
title={Assisted Software Exploration using Formal Concept Analysis},
booktitle={Proceedings of the 3rd International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2012)},

in EndNote Style

JO - Proceedings of the 3rd International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2012)
TI - Assisted Software Exploration using Formal Concept Analysis
SN - 978-989-8565-32-7
AU - Heckmann P.
AU - Speicher D.
PY - 2012
SP - 11
EP - 21
DO - 10.5220/0004175400110021