Skip to main content

A Survey of Formal Concept Analysis Support for Software Engineering Activities

  • Chapter
Formal Concept Analysis

Part of the book series: Lecture Notes in Computer Science ((LNAI,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.

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 69.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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. 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. Andelfinger, U.: Diskursive Anforderungsanalyse. Ein Beitrag zum Reduktionsproblem bei Systementwicklungen in der Informatik. Peter Lang, Frankfurt (1997)

    Google Scholar 

  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. 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. 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. Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)

    Google Scholar 

  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)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  20. Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Transactions on Software Engineering 29(3), 195–209 (2003)

    Article  Google Scholar 

  21. Fischer, B.: Specification-based browsing of software component libraries. In: Automated Software Engineering, pp. 74–83 (1998)

    Google Scholar 

  22. Fowler, M.: Refactoring, Improving the Design of Existing Code. Addison-Wesley, Reading (1999)

    Google Scholar 

  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. Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Berlin (1999)

    MATH  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. 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. 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. IEEE. IEEE Std 610.12-1990 — IEEE Standard Glossary of Software Engineering Terminology. IEEE, New York (September 1990)

    Google Scholar 

  31. IEEE. IEEE/EIA 12207.0-1996 — Standard for Information Technology – Software life cycle processes. IEEE, New York (March 1998)

    Google Scholar 

  32. ISO. ISO/IEC 12207:1995 — Standard for Information Technology – Software life cycle processes. ISO, New York (March 1995)

    Google Scholar 

  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. 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. 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. 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. 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. 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. Richards, D., Boettger, K.: Using RECOCASE to compare use cases from multiple viewpoints. In: Proceedings of ACIS 2002 (2002)

    Google Scholar 

  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. 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. 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. 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. 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. Rook, P.: Controlling software projects. Software Engineering Journal 1(1), 7–16 (1996)

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  52. Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Transactions on Software Engineering and Methodology 5(2), 146–189 (1996)

    Article  Google Scholar 

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

    Chapter  Google Scholar 

  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. 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. Snelting, G., Tip, F.: Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems, 540–582 (May 2000)

    Google Scholar 

  58. Spivey, J.M.: An introduction to Z and formal specifications. Software Engineering Journal 4(1), 40–50 (1989)

    Article  Google Scholar 

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

    Chapter  Google Scholar 

  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. 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. 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. Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)

    Article  Google Scholar 

  65. Tonella, P., Antoniol, G.: Object-oriented design pattern inference. In: Proceedings of CSM 1999, pp. 230–240 (1999)

    Google Scholar 

  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)

    Chapter  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 chapter

Cite this chapter

Tilley, T., Cole, R., Becker, P., Eklund, P. (2005). A Survey of Formal Concept Analysis Support for Software Engineering Activities. In: Ganter, B., Stumme, G., Wille, R. (eds) Formal Concept Analysis. Lecture Notes in Computer Science(), vol 3626. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11528784_13

Download citation

  • DOI: https://doi.org/10.1007/11528784_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-27891-7

  • Online ISBN: 978-3-540-31881-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics