Advertisement

A Survey of Formal Concept Analysis Support for Software Engineering Activities

  • Thomas Tilley
  • Richard Cole
  • Peter Becker
  • Peter Eklund
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3626)

Abstract

Formal Concept Analysis (FCA) has typically been applied in the field of software engineering to support software maintenance and object-oriented class identification tasks. This paper presents a broader overview by describing and classifying academic papers that report the application of FCA to software engineering. The papers are classified using a framework based on the activities defined in the ISO12207 Software Engineering standard. Two alternate classification schemes based on the programming language under analysis and target application size are also discussed. In addition, the authors work to support agile methods and formal specification via FCA is introduced.

Keywords

Software Engineering Software Engineer Concept Lattice Formal Context Formal Concept Analysis 
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. 1.
    Ammons, G., Mandelin, D., Bodik, R., Larus, J.R.: Debugging temporal specifications with concept analysis. In: Proceedings of the Conference on Programming Language Design and Implementation PLDI 2003, June 2003, ACM, New York (2003)Google Scholar
  2. 2.
    Andelfinger, U.: Diskursive Anforderungsanalyse. Ein Beitrag zum Reduktionsproblem bei Systementwicklungen in der Informatik. Peter Lang, Frankfurt (1997)Google Scholar
  3. 3.
    Arévalo, G.: Understanding behavioral dependencies in class hierarchies using concept analysis. In: Proceedings of LMO 2003 (Langages et Modéles á Object), Paris (France), Hermes (February 2003)Google Scholar
  4. 4.
    Arévalo, G., Ducass, S., Nierstrasz, O.: Understanding classes using x-ray views. In: MASPEGHI 2003, MAnaging SPEcialization/Generalization HIerarchies (MASPEGHI) Workshop at ASE 2003, Montreal, Canada (2003); Preliminary Version Google Scholar
  5. 5.
    Ball, T.: The concept of dynamic analysis. In: Proceedings of ACM SIGSOFT Symposium on the Foundations of Software Engineering, September 1999, pp. 216–234 (1999)Google Scholar
  6. 6.
    Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)Google Scholar
  7. 7.
    Becker, P., Hereth Correia, J.: The ToscanaJ suite for implementing conceptual information systems. In: Ganter, B., Stumme, G., Wille, R. (eds.) Formal Concept Analysis. LNCS (LNAI), vol. 3626, pp. 324–348. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Boehm, B.W.: A spiral model of software development and enhancement. In: Thayer, R.H. (ed.) Tutorial: Software Engineering Project Management, pp. 128–142. IEEE Computer Society, Washington (1987)Google Scholar
  9. 9.
    Bojic, D., Velasevic, D.: Reverse engineering of use case realizations in UML. In: Symposium on Applied Computing - SAC 2000, ACM, New York (2000)Google Scholar
  10. 10.
    Böttger, K., Schwitter, R., Richards, D., Aguilera, O., Mollá, D.: Reconciling use cases via controlled language and graphical models. In: Bartenstein, O., Geske, U., Hannebauer, M., Yoshie, O. (eds.) INAP 2001. LNCS (LNAI), vol. 2543, pp. 20–22. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  11. 11.
    Canfora, G., Cimitile, A., De Lucia, A., Di Lucca, G.A.: A case study of applying an eclectic approach to identify objects in code. In: Workshop on Program Comprehension, pp. 136–143. IEEE, Los Alamitos (1999)CrossRefGoogle Scholar
  12. 12.
    Cole, R., Tilley, T.: Conceptual analysis of software structure. In: Proceedings of Fifteenth International Conference on Software Engineering and Knowledge Engineering, SEKE 2003, USA, June 2003, pp. 726–733. Knowledge Systems Institute (2003)Google Scholar
  13. 13.
    Dekel, U.: Applications of concept lattices to code inspection and review. In: The IsraeliWorkshop on Programming Languages and Development Environments, IBM Haifa Research Lab, IBM HRL, Haifa University, Israel, ch. 6 (July 2002)Google Scholar
  14. 14.
    Dicky, H., Dony, C., Huchard, M., Libourel, T.: ARES, adding a class and restructuring inheritance hierarchy. In: BDA: Onzièmes Journées Bases de Données Avancées, pp. 25– 42 (1995)Google Scholar
  15. 15.
    Düwel, S.: Enhancing system analysis by means of formal concept analysis. In: Conference on Advanced Information Systems Engineering 6th Doctoral Consortium, Heidelberg, Germany (June 1999)Google Scholar
  16. 16.
    Düwel, S., Hesse, W.: Identifying candidate objects during system analysis. In: Proceedings of CAiSE 1998/IFIP 8.1 Third International Workshop on Evaluation of Modelling Methods in System Analysis and Design (EMMSAD 1998), Pisa (1998)Google Scholar
  17. 17.
    Düwel, S., Hesse, W.: Bridging the gap between use case analysis and class structure design by formal concept analysis. In: Ebert, J., Frank, U. (eds.) Modelle und Modellierungssprachen in Informatik und Wirtschaftsinformatik. Proceedings Modellierung 2000, Koblenz, pp. 27–40. Fölbach-Verlag (2000)Google Scholar
  18. 18.
    Eisenbarth, T., Koschke, R., Simon, D.: Aiding program comprehension by static and dynamic feature analysis. In: Proceedings of ICSM 2001 - The International Conference on Software Maintenance, pp. 602–611. IEEE Computer Society Press, Los Alamitos (2001)CrossRefGoogle Scholar
  19. 19.
    Eisenbarth, T., Koschke, R., Simon, D.: Feature-driven program understanding using concept analysis of execution traces. In: 9th Int’l Workshop on Program Comprehension, pp. 300–309. IEEE, Los Alamitos (2001)CrossRefGoogle Scholar
  20. 20.
    Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Transactions on Software Engineering 29(3), 195–209 (2003)CrossRefGoogle Scholar
  21. 21.
    Fischer, B.: Specification-based browsing of software component libraries. In: Automated Software Engineering, pp. 74–83 (1998)Google Scholar
  22. 22.
    Fowler, M.: Refactoring, Improving the Design of Existing Code. Addison-Wesley, Reading (1999)Google Scholar
  23. 23.
    Funk, P., Lewien, A., Snelting, G.: Algorithms for concept lattice decomposition and their applications. Technical Report 95-09, TU Braunschweig (December 1995)Google Scholar
  24. 24.
    Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Berlin (1999)zbMATHGoogle Scholar
  25. 25.
    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 (TAPOS) 4(2), 117–134 (1998)CrossRefGoogle Scholar
  26. 26.
    Godin, R., Mineau, G., Missaoui, R., St-Germain, M., Faraj, N.: Applying concept formation methods to software reuse. International Journal of Knowledge Engineering and. Software Engineering 5(1), 119–142 (1995)Google Scholar
  27. 27.
    Godin, R., Mili, H.: Building and maintaining analysis-level class hierarchies using Galois lattices. In: Proceedings of the OOPSLA 1993 Conference on Object-oriented Programming Systems, Languages and Applications, pp. 394–410 (1993)Google Scholar
  28. 28.
    Huchard, M., Leblanc, H.: From Java classes to Java interfaces through galois lattices. In: Actes de ORDAL 1999: 3rd International Conference on Orders, Algorithms and Applications, Montpellier, pp. 211–216 (1999)Google Scholar
  29. 29.
    Huchard, M., Roume, C., Valtchev, P.: When concepts point at other concepts: the case of UML diagram reconstruction. In: Advances in Formal Concept Analysis for Knowledge Discovery in Databases, FCAKDD 2002, pp. 32–43 (2002)Google Scholar
  30. 30.
    IEEE. IEEE Std 610.12-1990 — IEEE Standard Glossary of Software Engineering Terminology. IEEE, New York (September 1990)Google Scholar
  31. 31.
    IEEE. IEEE/EIA 12207.0-1996 — Standard for Information Technology – Software life cycle processes. IEEE, New York (March 1998)Google Scholar
  32. 32.
    ISO. ISO/IEC 12207:1995 — Standard for Information Technology – Software life cycle processes. ISO, New York (March 1995) Google Scholar
  33. 33.
    Krone, M., Snelting, G.: On the inference of configuration structures from source code. In: Proceedings of the International Conference on Software Engineering (ICSE 1994), pp. 49–57 (1994)Google Scholar
  34. 34.
    Kuipers, T., Moonen, L.: Types and concept analysis for legacy systems. Technical Report SEN-R0017, Centrum voor Wiskunde en Informatica (July 2000)Google Scholar
  35. 35.
    Leblanc, H., Dony, C., Huchard, M., Libourel, T.: An environment for building and maintaining class hierarchies. In: Moreira, A.M.D., Demeyer, S. (eds.) ECOOP 1999 Workshops. LNCS, vol. 1743, Springer, Heidelberg (1999)Google Scholar
  36. 36.
    Lindig, C.: Concept-based component retrieval. In: Köhler, J., Giunchiglia, F., Green, C., Walther, C. (eds.) Working Notes of the IJCAI 1995 Workshop: Formal Approaches to the Reuse of Plans, Proofs, and Programs, August 1995, pp. 21–25 (1995)Google Scholar
  37. 37.
    Lindig, C., Snelting, G.: Assessing modular structure of legacy code based on mathematical concept analysis. In: Proceedings of the International Conference on Software Engineering (ICSE 1997), Boston, pp. 349–359 (1997)Google Scholar
  38. 38.
    Richards, D., Boettger, K.: Representing requirements in natural language as concept lattices. In: 22nd Annual International Conference of the British Computer Society’s Specialist Group on Artificial Intelligence (SGES) (ES 2002), Cambridge (December 2002)Google Scholar
  39. 39.
    Richards, D., Boettger, K.: Using RECOCASE to compare use cases from multiple viewpoints. In: Proceedings of ACIS 2002 (2002)Google Scholar
  40. 40.
    Richards, D., Boettger, K., Aguilera, O.: A controlled language to assist conversion of use case descriptions into concept lattices. In: Proceedings of 15th Australian Joint Conference on Artificial Intelligence (2002)Google Scholar
  41. 41.
    Richards, D., Boettger, K., Fure, A.: RECOCASE-tool: A CASE tool for RECOnciling requirements viewpoints. In: Proceedings of the 7th Australian Workshop on Requirements Engineering, AWRE 2002 (2002)Google Scholar
  42. 42.
    Richards, D., Boettger, K., Fure, A.: Using RECOCASE to compare use cases from multiple viewpoints. In: Proceedings of the 13th Australasian Conference on Information Systems ACIS 2002, Melbourne (December 2002)Google Scholar
  43. 43.
    Richards, D., Compton, P.: Combining formal concept analysis and ripple down rules to support reuse. In: Proceedings of Software Engineering Knowledge Engineering SEKE 1997, Madrid, June 1997, Springer, Heidelberg (1997)Google Scholar
  44. 44.
    Rock, T., Wille, R.: Ein TOSCANA-Erkundungssystem zur Literatursuche. In: Stumme, G., Wille, R. (eds.) Begriffliche Wissensverabeitung: Methoden und Anwendungen, pp. 239–253. Springer, Berlin (2000)Google Scholar
  45. 45.
    Rook, P.: Controlling software projects. Software Engineering Journal 1(1), 7–16 (1996)CrossRefGoogle Scholar
  46. 46.
    Royce, W.W.: Managing the development of large software systems. In: Thayer, R.H. (ed.) Tutorial: Software Engineering Project Management, pp. 118–127. IEEE Computer Society, Washington (1987); Originally published in Proceedings of WESCON 1997 (1997)Google Scholar
  47. 47.
    Sahraoui, H.A., Melo, W., Lounis, H., Dumont, F.: Applying concept formation methods to object identification in procedural code. In: Proceedings of International Conference on Automated Software Engineering (ASE 1997), November 1997, pp. 210–218. IEEE, Los Alamitos (1997)CrossRefGoogle Scholar
  48. 48.
    Schmitt, I., Conrad, S.: Restructuring object-oriented database schemata by concept analysis. In: Polle, T., Ripke, T., Schewe, K.-D. (eds.) Fundamentals of Information Systems (Post-Proceedings 7th International Workshop on Foundations of Models and Languages for Data and Objects FoMLaDO 1998), Boston, pp. 177–185. Kluwer Academic Publishers, Dordrecht (1999)Google Scholar
  49. 49.
    Schmitt, I., Saake, G.: Merging inheritance hierarchies for database integration. In: Proceedings of the 3rd International Conference on Cooperative Information Systems (CoopIS 1998), New York (August 1998)Google Scholar
  50. 50.
    Schupp, S., Krishnamoorthy, M., Zalewski, M., Kilbride, J.: The “right” level of abstraction - assessing reusable software with formal concept analysis. In: Angelova, G., Corbett, D., Priss, U. (eds.) Foundations and Applications of Conceptual Structures - Contributions to ICCS 2002, pp. 74–91. Bulgarian Academy of Sciences (2002)Google Scholar
  51. 51.
    Siff, M., Reps, T.: Identifying modules via concept analysis. In: Proceedings of the International Conference on Software Maintenance, pp. 170–179. IEEE Computer Society Press, Los Alamitos (1997)CrossRefGoogle Scholar
  52. 52.
    Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Transactions on Software Engineering and Methodology 5(2), 146–189 (1996)CrossRefGoogle Scholar
  53. 53.
    Snelting, G.: Concept analysis — a new framework for program understanding. In: SIGPLAN/ SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE), Montreal, Canada, June 1998, pp. 1–10 (1998)Google Scholar
  54. 54.
    Snelting, G.: Software reengineering based on concept lattices. In: Proceedings 4th European Conference on Software Maintenance and Reengineeering, pp. 3–12. IEEE, Los Alamitos (2000)CrossRefGoogle Scholar
  55. 55.
    Snelting, G., Tip, F.: Reengineering class hierarchies using concept analysis. Technical Report RC 21164(94592)24APR97, IBM T.J. Watson Research Center, IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY 10598, USA (1997)Google Scholar
  56. 56.
    Snelting, G., Tip, F.: Reengineering class hierarchies using concept analysis. In: Proceedings of ACMSIGSOFT Symposium on the Foundations of Software Engineering, pp. 99– 110 (November 1998)Google Scholar
  57. 57.
    Snelting, G., Tip, F.: Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems, 540–582 (May 2000)Google Scholar
  58. 58.
    Spivey, J.M.: An introduction to Z and formal specifications. Software Engineering Journal 4(1), 40–50 (1989)CrossRefGoogle Scholar
  59. 59.
    Streckenbach, M., Snelting, G.: Understanding class hierarchies with KABA. In: Workshop on Object-Oriented Reengineering - WOOR 1999, Toulouse, France (September 1999)Google Scholar
  60. 60.
    Sun, J., Dong, J.S., Lui, J., Wang, H.: Object-Z web environment and projections to UML. In: WWW10 10th International World Wide Web Conference, pp. 725–734. ACM, New York (2001)CrossRefGoogle Scholar
  61. 61.
    Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International, pp. 492–497. IEEE Computer Society Press, Los Alamitos (1976)Google Scholar
  62. 62.
    Tilley, T.: Towards an FCA based tool for visualising formal specifications. In: Ganter, B., de Moor, A. (eds.) Using Conceptual Structures: Contributions to ICCS 2003, pp. 227–240. Shaker Verlag (2003)Google Scholar
  63. 63.
    Tilley, T., Hesse, W., Duke, R.: A software modelling exercise using FCA. In: Ganter, B., de Moor, A. (eds.) Using Conceptual Structures: Contributions to ICCS 2003, pp. 213–226. Shaker Verlag (2003)Google Scholar
  64. 64.
    Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)CrossRefGoogle Scholar
  65. 65.
    Tonella, P., Antoniol, G.: Object-oriented design pattern inference. In: Proceedings of CSM 1999, pp. 230–240 (1999)Google Scholar
  66. 66.
    van Deursen, A., Kuipers, T.: Identifying objects using cluster and concept analysis. In: Proceedings of the 21st International Conference on Software Engineering, ICSE 1999, pp. 246–255. ACM, New York (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Thomas Tilley
    • 1
  • Richard Cole
    • 1
  • Peter Becker
    • 1
  • Peter Eklund
    • 2
  1. 1.School of Information Technology and Electrical EngineeringUniversity of QueenslandBrisbaneAustralia
  2. 2.School of Information Technology and Computer ScienceThe University of WollongongWollongongAustralia

Personalised recommendations