程序聚类通过将与同一个需求或设计元素相关的代码单元聚集在一起来辅助程序理解及系统结构分析。其中,形式概念分析(FCA)是一类被广泛采用的程序聚类技术。然而现有基于FCA的程序聚类方法都是基于二值属性构建的,无法处理模糊信息。提出将模糊概念分析用于基于文本分析的程序聚类,提出了一种支持模糊信息的程序聚类方法。该方法包括模糊属性的采集过程以及相应的模糊概念格的构造算法。在此基础上,开发了一个半自动化的程序分析工具,并将其应用到一个商业软件分析中。初步的实验结果表明该方法能够有效地支持基于模糊特征的程序聚类,对于提高遗留系统的维护效率有明显的帮助。
Program comprehension is very important for sottware 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.