Skip to main content

Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering

  • Conference paper
Formal Concept Analysis (ICFCA 2005)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 3403))

Included in the following conference series:

Abstract

A key difficulty in the maintenance and evolution of complex software systems is to recognize and understand the implicit dependencies that define contracts that must be respected by changes to the software. Formal Concept Analysis is a well-established technique for identifying groups of elements with common sets of properties. We have successfully applied FCA to complex software systems in order to automatically discover a variety of different kinds of implicit, recurring sets of dependencies amongst design artifacts. In this paper we describe our approach, outline three case studies, and draw various lessons from our experiences. In particular, we discuss how our approach is applied iteratively in order to draw the maximum benefit offered by FCA.

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. Arévalo, G., Buchli, F., Nierstrasz, O.: Detecting implicit collaboration patterns. In: Proceedings of WCRE 2004, November 2004. IEEE Computer Society Press, Los Alamitos (2004) (to appear)

    Google Scholar 

  2. Arévalo, G., Ducasse, S., Nierstrasz, O.: X-Ray views: Understanding the internals of classes. In: Proceedings of ASE 2003, October 2003, pp. 267–270. IEEE Computer Society, Los Alamitos (2003) (Short paper)

    Google Scholar 

  3. Arévalo, G.: Understanding behavioral dependencies in class hierarchies using concept analysis. In: Proceedings of LMO 2003, Hermes, Paris, January 2003, pp. 47–59 (2003)

    Google Scholar 

  4. Arévalo, G.: High Level Views in Object Oriented Systems using Formal Concept Analysis. PhD thesis, University of Berne (January 2005) (forthcoming)

    Google Scholar 

  5. Briand, L.C., Daly, J.W., Wüst, J.: A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering: An International Journal 3(1), 65–117 (1998)

    Article  Google Scholar 

  6. Cook, W.R.: Interfaces and specifications for the Smalltalk-80 collection classes. In: Proceedings OOPSLA 1992, ACM SIGPLAN Notices, October 1992, vol. 27, pp. 1–15 (1992)

    Google Scholar 

  7. Demeyer, S., Ducasse, S., Nierstrasz, O.: Object-Oriented Reengineering Patterns. Morgan Kaufmann, San Francisco (2002)

    Google Scholar 

  8. Dekel, U.: Revealing java class structures using concept lattices. Diploma thesis, Technion-Israel Institute of Technology (February 2003)

    Google Scholar 

  9. Ducasse, S., Lanza, M., Tichelaar, S.: Moose: an extensible language-independent environment for reengineering object-oriented systems. In: Proceedings of CoSET 2000 (June 2000)

    Google Scholar 

  10. Dunsmore, A., Roper, M., Wood, M.: Object-oriented inspection in the face of delocalisation. In: Proceedings of ICSE 2000, pp. 467–476. ACM Press, New York (2000)

    Google Scholar 

  11. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)

    Google Scholar 

  12. Godin, R., Mili, H., Mineau, G.W., Missaoui, R., Arfi, A., Chau, T.-T.: Design of class hierarchies based on concept (galois) lattices. Theory and Application of Object Systems 4(2), 117–134 (1998)

    Article  Google Scholar 

  13. Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Heidelberg (1999)

    MATH  Google Scholar 

  14. Huchard, M., Dicky, H., Leblanc, H.: Galois lattice as a framework to specify algorithms building class hierarchies. Theoretical Informatics and Applications 34, 521–548 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  15. Littman, D., Pinto, J., Letovsky, S., Soloway, E.: Mental models and software maintenance. In: Soloway, Iyengar (eds.) Empirical Studies of Programmers, First Workshop, pp. 80–98 (1996)

    Google Scholar 

  16. Lamping, J., Rao, R., Pirolli, P.: A focus + context technique based on hyperbolic geometry for visualising larges hierarchies. In: Proceedings of CHI 1995 (1995)

    Google Scholar 

  17. Stata, R., Guttag, J.V.: Modular reasoning in the presence of subclassing. In: Proceedings of OOPSLA 1995, pp. 200–214. ACM Press, New York (1995)

    Chapter  Google Scholar 

  18. Steyaert, P., Lucas, C., Mens, K., D’Hondt, T.: Reuse contracts: Managing the evolution of reusable assets. In: Proceedings of OOPSLA 1996, pp. 268–285. ACM Press, New York (1996)

    Chapter  Google Scholar 

  19. Snelting, G., Tip, F.: Reengineering class hierarchies using concept analysis. In: ACM Trans. Programming Languages and Systems (1998)

    Google Scholar 

  20. Tonella, P., Antoniol, G.: Object oriented design pattern inference. In: Proceedings ICSM 1999, October 1998, pp. 230–238 (1999)

    Google Scholar 

  21. Tichelaar, S., Ducasse, S., Demeyer, S., Nierstrasz, O.: A meta-model for language-independent refactoring. In: Proceedings ISPSE 2000, pp. 157–167. IEEE, Los Alamitos (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Arévalo, G., Ducasse, S., Nierstrasz, O. (2005). Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering. In: Ganter, B., Godin, R. (eds) Formal Concept Analysis. ICFCA 2005. Lecture Notes in Computer Science(), vol 3403. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-32262-7_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-32262-7_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-24525-4

  • Online ISBN: 978-3-540-32262-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics