Skip to main content

Interactive Exploration of Structural Concepts in Code

  • Conference paper
Knowledge Discovery, Knowledge Engineering and Knowledge Management (IC3K 2012)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Gamma, E., Helm, R., Johnson, R.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley Longman (1994)

    Google Scholar 

  2. Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer (1998)

    Google Scholar 

  3. Tonella, P., Antoniol, G.: Object Oriented Design Pattern Inference. In: Proceedings of ICSM, p. 230. IEEE Computer Society Press (1999)

    Google Scholar 

  4. Carpineto, C., Romano, G.: Concept Data Analysis, Theory and Applications. Wiley & Sons (2004)

    Google Scholar 

  5. Eden, A.H., Hirshfeld, Y., Yehudai, A.: LePUS - A Declarative Pattern Specification Language. Technical report (1998)

    Google Scholar 

  6. Arévalo, G.: High Level Views in Object-Oriented Systems using Formal Concept Analysis. PhD thesis, University of Bern (2004)

    Google Scholar 

  7. Krajca, P., Outrata, J., Vychodil, V.: Parallel Recursive Algorithm for FCA. In: Concept Lattices and Their Applications (CLA), pp. 71–82 (2008)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Gupta, M., Pande, A.: Design patterns mining using subgraph isomorphism: Relational view. International Journal of Software Engineering and Its Applications (IJSEIA) (2011)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics