P. Antonellis
等人
/
理论计算机科学电子笔记
233
(
2009
)
43
相关文献见[31]。该解决方案的范围是评估提供动态依赖关系作为软件集群租赁的
输入的有用性。此外,模块依赖图(MDG)[20]上的聚类使用了一系列算法,这些
算法有助于从其源代码中自动恢复软件系统的模块结构。该方法基于源代码中可以
检测到的组件和组件之间的关系,将
此外,[19]提出了一种方法,可以检查存储在源代码控制存储库中的代码的演
变。这种技术识别变更集群,可以帮助管理人员将不同的代码变更活动分类为维护
或新开发。另一方面,[29]分析了源代码实体之间的一些变化耦合是否很重要,或
者只有微小的文本调整被检入;以反映源代码实体的变化。开发了一种基于代码修订
的变更类型分析和分类方法。此外,Beyer和Noack [13]提出了一种基于软件工件聚
类的方法,以便将软件系统组织成子系统,并通过这种方式使更改成本更低,更不
易出 错。 为了 通过 创建 软件 系统 结构 的抽 象来 理解 大型 软件 系统 ,Mitchell和
Mancorn [16]提出了Bunch聚类系统。在这项工作中,聚类是通过搜索技术来实现
的,并在表示系统结构的图上执行。子系统是通过划分实体和关系图来生成的。另
一种在软件集群上下文中的方法是Limbo算法,由Tzerpos和Andritsos [8]引入。这
种可扩展的分层算法的重点是最大限度地减少信息的损失时,聚类系统,通过应用
加权方案,每个组件的重要性
聚类算法也被Mancorn等人使用。[21]为了支持从其源代码中自动恢复软件系统
的模块化结构。在这种情况下选择的算法是传统的爬山和遗传算法。为了理解程
序,关键的一步是检测系统的重要类,因为它们实现了最基本和最高级的操作。
Zaidman等人[32]介绍了四种静态Web挖掘和耦合度量,以识别此类类并通常分析软
件系统。
本文的工作与上述文献不同,通过对软件度量数据进行聚类,旨在对软件系统进
行组合,并评估其可维护性。更具体地说,我们不是在图上或直接在源代码上应用
聚类算法,而是在反映软件系统质量和可维护性的最重要设计方面的指标上使用k-
吸引子聚类算法。我们采用了两步聚类分析,以提供一个快速和粗略的把握软件系
统,并描绘其从版本到版本的演变