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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Andelfinger, U.: Diskursive Anforderungsanalyse. Ein Beitrag zum Reduktionsproblem bei Systementwicklungen in der Informatik. Peter Lang, Frankfurt (1997)
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)
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
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)
Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)
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)
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)
Bojic, D., Velasevic, D.: Reverse engineering of use case realizations in UML. In: Symposium on Applied Computing - SAC 2000, ACM, New York (2000)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Transactions on Software Engineering 29(3), 195–209 (2003)
Fischer, B.: Specification-based browsing of software component libraries. In: Automated Software Engineering, pp. 74–83 (1998)
Fowler, M.: Refactoring, Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
Funk, P., Lewien, A., Snelting, G.: Algorithms for concept lattice decomposition and their applications. Technical Report 95-09, TU Braunschweig (December 1995)
Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Berlin (1999)
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)
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)
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)
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)
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)
IEEE. IEEE Std 610.12-1990 — IEEE Standard Glossary of Software Engineering Terminology. IEEE, New York (September 1990)
IEEE. IEEE/EIA 12207.0-1996 — Standard for Information Technology – Software life cycle processes. IEEE, New York (March 1998)
ISO. ISO/IEC 12207:1995 — Standard for Information Technology – Software life cycle processes. ISO, New York (March 1995)
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)
Kuipers, T., Moonen, L.: Types and concept analysis for legacy systems. Technical Report SEN-R0017, Centrum voor Wiskunde en Informatica (July 2000)
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)
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)
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)
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)
Richards, D., Boettger, K.: Using RECOCASE to compare use cases from multiple viewpoints. In: Proceedings of ACIS 2002 (2002)
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)
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)
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)
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)
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)
Rook, P.: Controlling software projects. Software Engineering Journal 1(1), 7–16 (1996)
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)
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)
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)
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)
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)
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)
Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Transactions on Software Engineering and Methodology 5(2), 146–189 (1996)
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)
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)
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)
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)
Snelting, G., Tip, F.: Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems, 540–582 (May 2000)
Spivey, J.M.: An introduction to Z and formal specifications. Software Engineering Journal 4(1), 40–50 (1989)
Streckenbach, M., Snelting, G.: Understanding class hierarchies with KABA. In: Workshop on Object-Oriented Reengineering - WOOR 1999, Toulouse, France (September 1999)
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)
Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International, pp. 492–497. IEEE Computer Society Press, Los Alamitos (1976)
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)
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)
Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)
Tonella, P., Antoniol, G.: Object-oriented design pattern inference. In: Proceedings of CSM 1999, pp. 230–240 (1999)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)