A Survey of Formal Concept Analysis Support for Software Engineering Activities Thomas Tilley 1 , Richard Cole 1 , Peter Becker 1 and Peter Eklund 2 1 School of Information Technology and Electrical Engineering University of Queensland Brisbane, Australia 2 School of Information Technology and Computer Science The University of Wollongong Wollongong, Australia {{tilley, rcole, pbecker}@itee.uq,peklund@uow}.edu.au 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 classifi- cation 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. 1 Introduction In the domain of software engineering, Formal Concept Analysis (FCA) has typically been applied to support software maintenance activities — the refactoring or modifi- cation of existing code — and to the identification of object-oriented (OO) structures. There is also a body of literature reporting the application of FCA to the identification and maintenance of class hierarchies in database schemata [49,48,14]. While a database system typically forms the backbone of most Computer Assisted Software Engineering (CASE) tools the discussion of database related applications is beyond the scope of this paper. Beyond the identification of classes, FCA has also been applied to other areas of software engineering including requirements analysis and component retrieval. The aim of this paper is to provide a broad overview of the area by describing and classifying academic papers that report the application of FCA to a range of software engineering activities. These papers are classified using a framework based on the activities de- fined in the ISO12207 Software Engineering standard [31]. Two alternate classification schemes based on the programming language applicability and target application size are also presented along with a brief analysis of authorship and citation patterns within the survey literature. The next section of the paper introduces the framework used to classify the different reported approaches based on their applicability to well-defined software engineering