论文部分内容阅读
社区结构是许多实际复杂网络的一个重要特征,寻找和分析社区结构有助于更好地了解网络的结构。近年来,随着复杂网络研究的兴起,研究者发现软件网络中存在复杂网络特性,为软件中社区结构的研究开辟了一条新道路,同时也为软件工程研究提供了一种新的视角。针对上述问题,本文以多个学科交叉为背景,努力寻找软件中最优的社区结构。“高内聚、低耦合”是面向对象软件的设计原则,它要么是针对程序代码进行设计的,要么就是针对设计模式来进行设计的,而缺乏在较高层次对面向对象软件进行结构的分析。因此,本文提出一种快速启发式算法(LCDA局域社区发现算法)来发现软件网络中的社区结构,并使用模块化度量指标来衡量社区发现算法划分结果的合理与否,实验表明该算法可以很好地划分社区结构。本文采集了253个面向对象软件作为样本,利用LCDA算法对它们进行社区划分,并利用统计学方法对社区划分后的结果进行分析,主要对软件中社区结构与软件规模之间的相关性进行分析,另外,还对软件演化中社区结构的演变规律进行分析。社区发现的结果实际上是从模块化的角度得到软件系统的理想结构,这个结果可以为软件开发和设计人员提高软件模块化程度提供参考,同时可以帮助软件开发人员增加对软件系统的理解,对了解软件体系结构与测试具有极为重要的意义。