Program Clustering for Comprehension Based on Fuzzy Formal Concept Analysis
-
Graphical Abstract
-
Abstract
Program comprehension is very important for software developers, especially when a software system is a complex one, or a legacy one, or lack necessary documentations. There are lots of techniques available to do program comprehension, among which program clustering is a very popular one. Program clustering can help program comprehension and architecture analysis by clustering program units relevant to certain requirement or design element. Software developers can then gain a high-level and more comprehensive view of a software system. Formal concept analysis (FCA) has been widely adopted in text-analysis-based program clustering. However, existing FCA-based methods are based on one-valued attributes (with or without), and cannot deal with the fuzzy information in program clustering. In this paper, a text-analysis-based program clustering method using fuzzy FCA is proposed. The method includes a process of fuzzy attribute computation and a construction algorithm for fuzzy concept lattice, which can ensure a complete and non-redundant lattice. A semi-automatic analysis tool has been developed for the method and applied in a case study of a commercial bookstore management system. Results of the experiment show that the method can help obtain clusters with sound fuzzy features for program comprehension, which are also recognized by former developers of the system.
-
-