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.
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
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)
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)
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)
Arévalo, G.: High Level Views in Object Oriented Systems using Formal Concept Analysis. PhD thesis, University of Berne (January 2005) (forthcoming)
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)
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)
Demeyer, S., Ducasse, S., Nierstrasz, O.: Object-Oriented Reengineering Patterns. Morgan Kaufmann, San Francisco (2002)
Dekel, U.: Revealing java class structures using concept lattices. Diploma thesis, Technion-Israel Institute of Technology (February 2003)
Ducasse, S., Lanza, M., Tichelaar, S.: Moose: an extensible language-independent environment for reengineering object-oriented systems. In: Proceedings of CoSET 2000 (June 2000)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)
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)
Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Heidelberg (1999)
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)
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)
Lamping, J., Rao, R., Pirolli, P.: A focus + context technique based on hyperbolic geometry for visualising larges hierarchies. In: Proceedings of CHI 1995 (1995)
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)
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)
Snelting, G., Tip, F.: Reengineering class hierarchies using concept analysis. In: ACM Trans. Programming Languages and Systems (1998)
Tonella, P., Antoniol, G.: Object oriented design pattern inference. In: Proceedings ICSM 1999, October 1998, pp. 230–238 (1999)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)