基于模糊形式概念分析的程序聚类及演化分析

被引:0
作者
许佳卿
机构
[1] 复旦大学
关键词
模糊形式概念分析; 程序聚类; 代码分析; 树匹配; 版本差异比较; 软件演化; 程序理解;
D O I
暂无
年度学位
2009
学位类型
硕士
导师
摘要
软件系统的演化分析是程序分析和程序理解的一个重要方面。通过演化分析可以了解系统需求和设计的演化趋势,从而更好地理解系统的需求和设计决策。针对不同版本代码的系统演化分析首先要求获取每个版本的高层结构信息,然后建立不同版本结构之间的映射,并据此得到版本之间的差异,从而发掘系统高层需求或设计上的演化信息。 为了实现演化分析,本文首先通过程序聚类方法逆向恢复各个版本的高层结构。程序聚类通过将与特定需求或设计元素相关的程序单元进行聚类以形成高层结构,从而辅助进行程序理解和可复用资产抽取。基于代码的程序聚类在软件逆向工程中有着大量的应用,对于需求和体系结构模型逆向恢复以及构件抽取都有着重要的作用。其中,传统的形式概念分析——Formal Concept Analysis(FCA)是一种广泛使用的聚类方法,分析对象包括语法结构、程序运行轨迹以及代码中的文本信息等。传统的FCA都是基于二值布尔属性(具有或不具有)进行分析的,然而实际的程序分析经常存在对于高层结构恢复具有重要意义的多值甚至模糊属性。针对这一问题,本文提出使用模糊FCA来进行基于文本分析的程序聚类,并设计了一个基于模糊FCA的程序聚类方法。该方法包括模糊属性的采集过程以及一个完备、无冗余的模糊概念格构造算法。 在针对各个版本得到的模糊概念格基础上,本文进一步提出了一种基于树匹配的软件演化分析方法。该方法利用基于概念相似度度量的松弛树匹配的方法建立不同版本概念格中概念和概念子格之间的映射关系,在此基础上通过结构差异分析来发现各种演化类型。 最后在一个商业软件——书店管理系统上应用文章提出的程序聚类及演化分析方法。实验表明,该方法能够有效地发现不同版本之间的高层演化信息,有助于开发人员理解系统的演化历史以及相关的设计决策。
引用
收藏
页数:63
共 9 条
[1]
基于自动机模型的构件集成软件测试要素的提取 [J].
张毅坤 ;
刘伟 .
计算机应用, 2007, (04) :857-859
[2]
一种基于功能需求层次凝聚的程序聚类方法 [J].
赵伟 ;
张路 ;
梅宏 ;
孙家骕 .
软件学报, 2006, (08) :1661-1668
[3]
软件体系结构研究进展 [J].
梅宏 ;
申峻嵘 .
软件学报, 2006, (06) :1257-1275
[4]
ABC:基于体系结构、面向构件的软件开发方法 [J].
梅宏 ;
陈锋 ;
冯耀东 ;
杨杰 .
软件学报, 2003, (04) :721-732
[5]
扩充CDL支持基于构件的系统组装与演化 [J].
钟林辉 ;
谢冰 ;
邵维忠 .
计算机研究与发展, 2002, (10) :1361-1365
[6]
软件变化管理系统研究 [J].
陈兆琪 ;
钟林辉 ;
张路 ;
谢冰 .
小型微型计算机系统, 2002, (01) :29-31
[7]
程序理解 [J].
李莹 ;
张琴燕 .
计算机应用研究, 2001, (06) :40-43
[8]
程序理解研究与进展 [J].
李必信 ;
李宣东 ;
郑国梁 .
计算机科学, 1999, (05) :84-90
[9]
模糊逻辑控制技术及其应用.[M].窦振中编著;.北京航空航天大学出版社.1995,