【问题标题】:calculating coupling and cohesion metrics from XML class diagrm从 XML 类图中计算耦合和内聚度量
【发布时间】:2017-01-04 13:37:03
【问题描述】:

我正在尝试创建一个项目,以使用粒子群优化为班级责任分配问题提供决策支持。考虑耦合和内聚等各种参数,导出适应度函数,并进行粒子群优化。程序的输入将是 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) 紧密的类内聚 - 是方法对,m1 和 m2,属于 c∈C 类,常用用法。

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

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

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

【问题讨论】:

    标签: oop class-diagram coupling cohesion


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多