我开始学习Alloy并且非常喜欢我所见过的。
在鼓励我的同事加入我学习和使用Alloy之前,我需要了解Alloy和UML之间的关系。
一般情况下,您可以告诉我有关Alloy和UML之间关系(或缺乏关系)的任何内容都将非常感激。
谢谢。
答案 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等人的工作中修复过的东西。