合金和UML之间的关系?

Rog*_*llo 2 alloy

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

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

  1. Alloy是UML的替代品吗?如果使用Alloy,那么不需要使用UML吗?
  2. Alloy是UML的补充吗?是推荐的做法是使用这两种合金和UML?
  3. Alloy是否与UML正交?Alloy和UML有完全不同的用途?
  4. 在功能方面,Alloy是UML的超集吗?从我的阅读中我了解到,使用Alloy语言可以表达许多约束,然后Alloy中的SAT工具可以检查模型的约束(使用Alloy创建).我"认为"UML工具(例如MagicDraw)没有表达约束和根据约束评估UML模型的等效功能 - 这是正确的吗?

一般来说,任何你能告诉我关于Alloy和UML之间关系(或缺乏关系)的信息都会非常感激.

谢谢.

Dan*_*son 5

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

我建议使用Alloy来建模数据和高级建模行为.例如,请参阅Alloy网站.您始终可以将Alloy模型转换为UML图表.

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

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

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

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

如果你搜索"合金和UML",你会发现一堆有关从UML到合金自动翻译和比较的论文,如纸这一块.我们还写了一篇关于OCL和Alloy的论文,可能批评OCL已经在Richters等人的工作中修复过的东西.