0

我正在尝试创建一个项目,以使用粒子群优化为班级责任分配问题提供决策支持。考虑耦合和内聚等各种参数,导出适应度函数,并进行粒子群优化。程序的输入将是 XML 格式的 UML 类图。如何从 XML 格式的 UML 类图中计算以下参数:

MAC(c) - 类 c 与其他类之间的方法-属性耦合 - 一个类 (c) 的方法与同一类图中其他类的属性之间的交互总数 MMC(c) - 类之间的方法-方法耦合c 和其他类——一个类 (c) 的方法与同一类图中其他类的方法之间的交互总数 MGC(c) 方法泛化耦合——这仅适用于应用泛化的类图中。

RCI(c) c 类内聚相互作用的比率:RCI(c) = |CI(c)| / |CImax(c)|。

CImax(c) 是类 c 中最大可能的内聚相互作用。CI(c) 是类 c 中现有内聚交互的数量。

TCC(c) 紧密类内聚 - 是常用的类 c∈C 的方法对 m1 和 m2。

DMA (m,a) 方法 m 和属性 a 之间的直接方法属性依赖关系。

DMM (m1,m) m1 和 m2 之间的直接方法-方法依赖关系。

如何从 XML 格式的 UML 类图中计算这些参数?

4

1 回答 1

1

您需要弄清楚如何将该文件反序列化为对象表示,您可以根据该表示编写算法来做您的事情。

如果没有更多信息,很难提供帮助。您拥有的文件是 XMI 文件吗?您可以通过打开它并搜索xmlns:xmi="http://www.omg.org/XMI"来回答这个问题;如果找到,那么是的。该文件是 Ecore 的实例吗?您可以通过搜索ecore:来回答这个问题:如果找到,那么是的。

如果该文件是类图的 XMI 表示形式,并且是 Ecore 的一个实例,那么您必须使用Eclipse Modeling Tools打开它。如果您设法以这种方式打开它,那么您的下一步就是在编写可以遍历类图的算法之前熟悉Eclipse 建模框架 (EMF),就好像它是任何其他类似图形的数据结构一样。

我知道我的回答是一个远大的目标;即使错了,我更愿意将其保留在这里以供其他人偶然发现,即那些试图打开类图的 XML 表示的人。

于 2017-01-11T19:10:12.610 回答