Generation of High Level Views in Reverse Engineering Using Formal Concept Analysis G. Nagendra Kumar School of Information Technology and Engineering VIT University Vellore, Tamilnadu 632-014 gnagendra.kumar2012@vit.ac.in Ch. Aswani Kumar School of Information Technology and Engineering VIT University Vellore, Tamilnadu 632-014 cherukuri@acm.org Abstract—Object oriented systems are hard to comprehend because of different dependencies existing at different stages in the system. Inferring these dependencies among the components of object oriented systems is an essential requirement before performing any modifications in the system. So the maintenance of object oriented systems is a difficult process for software maintainers in software re-engineering. Here we present an approach for finding these dependencies by applying the conceptual clustering technique known as Formal Concept Analysis (FCA). In this paper, we show the results which are obtained by applying the approach. We generate the formal concepts and views at two different stages namely class and class hierarchy which shows different dependencies existed in the Java systems. Finally we present the experimental results of three Java applications on which we have tested our proposed approach. Index Terms— Formal Concept Analysis, Object Oriented Systems, Formal Concept, Formal Context. I. INTRODUCTIN Formal Concept Analysis is a mathematical model for knowledge discovery and processing tasks in various fields including software engineering [1]. FCA has been implemented at different stages of activities in the software engineering such as Feature location, identifying class entities, reengineering process, refactoring code etc as discussed by Tonella [2]. FCA provides a mathematical technique for detecting the elements having the similar characteristics [3-5]. Dekel and Gill [4] visualized the Java class code using FCA. Arevalo et al. [5] applied FCA to reveal traits in inheritance hierarchies. Snelting and Tip [6] propose a model for finding and fixing design problems in a class hierarchy. FCA is also used to find the existence of bad smells and design patterns and to propose suitable refactorings to rectify certain design defects [7]. In our paper we try to use the concept of FCA in reverse engineering process to analyze the class and class hierarchy structures and to find the unnecessary dependencies in object oriented systems. Reverse Engineering (RE) is the first step in software re-engineering process. RE can be defined as the operation of examining the system to ascertain its components and to discover how these components works internally. The key objective of reverse engineering is to understand completely the subject system requirements and its implementation. Here our subject system is object oriented system that is Java application. This is well known fact that fifty to seventy five percent of the entire budget of the software system is dedicated to maintenance process. This is approximated that software professionals investing 50% of their time for interpretation and analyzing the subject system in order to understand the software during the time of maintenance. So it is clearly indicates that understanding the source code of object oriented system is a fundamental process during the maintenance process as per the previous data. The FCA acts as a concept tool for building the views to analyze the object oriented system [8]. In our approach we linked the FCA and reverse engineering process of object oriented systems in order to find the indirect and direct dependencies existed in object oriented system. We implement the approach for finding the dependencies by generating the high level views. High level views are the way of representing the dependencies and collaborations of the analyzing system. The objective of this paper is to achieve overview of the system structure by identifying the dependencies at class and class hierarchy levels. The paper is represented as, in section 2 we explain about FCA in section 3 present the proposed approach and in section 4 explain the approach in depth then finally in section 5 conclude the paper. II. OVERVIEW OF FCA FCA is an unsupervised learning technique and generally a method of data analysis [9]. FCA gets a matrix as input denoting a set of objects (elements) and properties (attributes). FCA detects the natural clusters of elements and properties. For understanding the concept analysis, we illustrate the example which exhibits the relationships between the elements and properties in table I. We need some definitions for better understanding the basics of formal concept analysis. A. Formal Context: The fundamental idea of FCA includes formal context, formal concept and concept lattice [1]. A formal context is a triplet: C 334 978-1-4799-3486-7/14/$31.00 c 2014 IEEE