Abstract
Understanding a software system is the first task in any reengineering activity. For this very challenging task one effective approach is to identify interesting and reoccuring structures in the software and to study these structures individually. In object-oriented software such structures typically consist of a few classes. The well known among them are called design pattern. Yet, which structures to look at in particular? Can we identify interesting structures that are not that well known? Which structures to be a clue to start with?
In this paper we extend a previously suggested approach of pattern mining using Formal Concept Analysis. We propose a way to eliminate redundant information in the overall analysis result. Besides that, we introduce two new features: The first feature is a filtering element that allows us to interactively and dynamically narrow the analysis space. The second is the prominence of a class - a measurement of the importance of the class to the overall system.
In an experimental evaluation we applied our approach on two software projects. In the first, JUnit, our tool guided the experimenter to central structures that can be found in the online documentation yet was unknown to the experimenter. In the second the tool led us to core structures of our own software.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Gamma, E., Helm, R., Johnson, R.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley Longman (1994)
Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer (1998)
Tonella, P., Antoniol, G.: Object Oriented Design Pattern Inference. In: Proceedings of ICSM, p. 230. IEEE Computer Society Press (1999)
Carpineto, C., Romano, G.: Concept Data Analysis, Theory and Applications. Wiley & Sons (2004)
Eden, A.H., Hirshfeld, Y., Yehudai, A.: LePUS - A Declarative Pattern Specification Language. Technical report (1998)
Arévalo, G.: High Level Views in Object-Oriented Systems using Formal Concept Analysis. PhD thesis, University of Bern (2004)
Krajca, P., Outrata, J., Vychodil, V.: Parallel Recursive Algorithm for FCA. In: Concept Lattices and Their Applications (CLA), pp. 71–82 (2008)
Kuznetsov, S.O.: Learning of Simple Conceptual Graphs from Positive and Negative Examples. In: Żytkow, J.M., Rauch, J. (eds.) PKDD 1999. LNCS (LNAI), vol. 1704, pp. 384–391. Springer, Heidelberg (1999)
Cordella, L.P., Foggia, P., Sansone, C., Vento, M.: An improved algorithm for matching large graphs. In: 3rd IAPR-TC15 Workshop on Graph-based Representations in Pattern Recognition, Cuen, pp. 149–159 (2001)
Exman, I., Amar, G., Shaltiel, R.: The Interestingness Tool for Search in the Web. In: Proceedings of the Third International Workshop on Software Knowledge (SKY 2012), Barcelona, Spain (2012)
Zhang, Z. X., Li, Q. H., Ben, K.-R.: A New Method for Design Pattern Mining. In: International Conference on Machine Learning and Cybernetics (2004)
Gupta, M., Pande, A.: Design patterns mining using subgraph isomorphism: Relational view. International Journal of Software Engineering and Its Applications (IJSEIA) (2011)
Belderrar, A., Kpodjedo, S., Guéhéneuc, Y.G., Antoniol, G., Galinier, P.: Sub-graph Mining: Identifying Micro-architextures in Evolving Object-oriented Software. In: Europ. Conference on Software Maintenance and Reengineering (2011)
Smith, J.M., Stotts, D.: Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture. In: IEEE/NASA Software Engineering Workshop, pp. 183–190 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Heckmann, P., Speicher, D. (2013). Interactive Exploration of Structural Concepts in Code. In: Fred, A., Dietz, J.L.G., Liu, K., Filipe, J. (eds) Knowledge Discovery, Knowledge Engineering and Knowledge Management. IC3K 2012. Communications in Computer and Information Science, vol 415. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-54105-6_17
Download citation
DOI: https://doi.org/10.1007/978-3-642-54105-6_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-54104-9
Online ISBN: 978-3-642-54105-6
eBook Packages: Computer ScienceComputer Science (R0)