合金和UML之间的关系?

时间:2016-08-27 14:06:38

标签: alloy

我开始学习Alloy并且非常喜欢我所见过的。

在鼓励我的同事加入我学习和使用Alloy之前,我需要了解Alloy和UML之间的关系。

  1. Alloy是UML的替代品吗?如果使用Alloy,那么就不需要使用UML了吗?
  2. Alloy是否与UML互补?推荐的做法是使用 Alloy和UML吗?
  3. 合金是否与UML正交? Alloy和UML有完全不同的用途吗?
  4. 在功能方面,Alloy是UML的超集吗?从我的阅读中我了解到,使用Alloy语言可以表达许多约束,然后Alloy中的SAT工具可以检查模型的约束(使用Alloy创建)。我“认为”UML工具,例如MagicDraw,具有表达约束和根据约束评估UML模型的等效功能 - 这是正确的吗?
  5. 一般情况下,您可以告诉我有关Alloy和UML之间关系(或缺乏关系)的任何内容都将非常感激。

    谢谢。

1 个答案:

答案 0 :(得分:5)

Alloy与使用UML的约束语言OCL扩充的UML类图相当。它不会取代UML的其他图表。

我建议使用Alloy来建模数据和高级建模行为。有关示例,请参阅Alloy website。您始终可以将Alloy模型转换为UML图表。

合金旨在提供 - 精确,简洁的数据丰富设计模型 - 全自动分析

UML图表对于详细建模不够具有表现力。 UML约束语言OCL确实涵盖了与Alloy相同的细节,但没有相同程度的自动支持。

Alloy中的约束不是用于检查图表的结构,而是用于实际建模系统并表达其属性(然后您可以检查系统是否满足属性)。合金在表达性方面与OCL无法比拟:OCL在算术处理方面更具表现力,但它缺乏传递闭包,例如。

我对UML / OCL研究不是很了解,所以也许该领域的某些人可能会参与其中,但我可以建议您从更多信息开始,先从Martin Gogolla小组的工作开始,例如Mark Richters关于OCL语义的论文。

如果您搜索" Alloy和UML"你会找到一堆关于从UML到Alloy的自动翻译的论文,以及this one等比较论文。我们还写了一篇关于OCL和Alloy的paper方法,它可能批评了OCL在Richters等人的工作中修复过的东西。