Advertisement

Concept Lattices in Software Analysis

  • Gregor Snelting
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3626)

Abstract

About ten years ago, the first serious applications of concept lattices in software analysis were published. Today, a wide range of applications of concept lattices in static and dynamic analysis of software artefacts is known. This overview summarizes important papers from the last ten years, and presents three methods in some detail: 1. methods to extract classes and modules from legacy software; 2. the Snelting/Tip algorithm for application-specific, semantics-preserving refactoring of class hierarchies; 3. Ball’s method for infering dynamic dominators and control flow regions from program traces. We conclude with some perpectives on further uses of concept lattices in software technology.

Keywords

Concept Analysis Concept Lattice Execution Trace Class Hierarchy Software Maintenance 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [AMBL03]
    Ammons, G., Mandelin, D., Bodik, R., Larus, J.: Debugging temporal specifications with concept analysis. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 182–193 (2003)Google Scholar
  2. [Bal99]
    Ball, T.: The concept of dynamic analysis. In: ESEC / SIGSOFT FSE, pp. 216–234 (1999)Google Scholar
  3. [EKS01]
    Eisenbarth, T., Koschke, R., Simon, D.: Feature-driven program understanding using concept analysis of execution trace. In: Proc. Ninth International Workshop on Program Comprehension (IWPC 2001) (May 2001)Google Scholar
  4. [Fis98]
    Fischer, B.: Specification-based browsing of software component libraries. In: Automated Software Engineering, pp. 74–83 (1998)Google Scholar
  5. [GMA93]
    Godin, R., Missaoui, R., April, A.: Experimental comparison of navigation in a galois lattice with conventional information retrieval methods. International Journal of Man-Machine Studies 38 (1993)Google Scholar
  6. [KS94]
    Krone, M., Snelting, G.: On the inference of configuration structures from source code. In: Proceedings of the 16th international conference on Software engineering, pp. 49–57. IEEE Computer Society Press, Los Alamitos (1994)CrossRefGoogle Scholar
  7. [Lin]
    Lindig, C.: Concepts: a program for concept lattices, http://www.st.cs.uni-sb.de/~lindig/src/concepts.html
  8. [Lin99]
    Lindig, C.: Algorithmen zur Begriffsanalyse und ihre Anwendung bei Softwarebibliotheken. PhD thesis, Technische Universität Braunschweig (1999)Google Scholar
  9. [LS97]
    Lindig, C., Snelting, G.: Assessing modular structure of legacy code based on mathematical concept analysis. In: Proceedings of the 19th International Conference on Software Engineering, pp. 349–359. ACM Press, New York (1997)Google Scholar
  10. [Sne96]
    Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Transactions on Software Engineering and Methodology (TOSEM) 5(2), 146–189 (1996)CrossRefGoogle Scholar
  11. [Sne98]
    Snelting, G.: Concept analysis - a new framework for program understanding. In: Proc. ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE), pp. 1–10 (1998); Invited contributionGoogle Scholar
  12. [Sne00]
    Snelting, G.: Software reengineering based on concept lattices. In: Proc. 4th European Conference on Software Maintenance and Reengineeering, pp. 3–12 (2000) Invited contributionGoogle Scholar
  13. [SR97]
    Siff, M., Reps, T.: Identifying modules via concept analysis. In: Proc. International Conference on Software Maintenance, pp. 170–179. IEEE Computer Society Press, Los Alamitos (1997)CrossRefGoogle Scholar
  14. [SS03]
    Streckenbach, M., Snelting, G.: Behaviour-preserving refactoring with KABA (August 2003) (submitted for publication)Google Scholar
  15. [ST98]
    Snelting, G., Tip, F.: Reengineering class hierarchies using concept analysis. In: Proc. ACM SIGSOFT Symposium on the Foundations of Software Engineering, Orlando, FL, November 1998, pp. 99–110 (1998)Google Scholar
  16. [ST00]
    Snelting, G., Tip, F.: Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems, pp. 540–582 (May 2000)Google Scholar
  17. [TA99]
    Tonella, P., Antoniol, G.: Object-oriented design pattern inference. In: International Conference on Software Maintenance, p. 230 (1999)Google Scholar
  18. [vDK99]
    van Deursen, A., Kuipers, T.: Identifying objects using cluster and concept analysis. In: Proceedings of the 21st international conference on Software engineering, pp. 246–255. IEEE Computer Society Press, Los Alamitos (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Gregor Snelting
    • 1
  1. 1.Universität Passau 

Personalised recommendations