- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始学习合金并且非常喜欢我所看到的。
在鼓励同事和我一起学习和使用 Alloy 之前,我需要了解 Alloy 和 UML 之间的关系。
总的来说,如果您能告诉我有关 Alloy 和 UML 之间的关系(或缺乏关系)的任何信息,我将不胜感激。
谢谢。
最佳答案
Alloy 与使用 UML 约束语言 OCL 增强的 UML 类图相当。它不会取代 UML 的其他图。
我建议使用 Alloy 进行数据建模和高级别行为建模。例如,请参阅Alloy website 。您始终可以将 Alloy 模型转换为 UML 图。
合金旨在提供— 数据丰富的设计的精确、简洁的模型— 全自动分析
UML 图对于详细建模来说表达力不够。 UML 约束语言 OCL 确实涵盖了与 Alloy 相同类型的细节,但没有达到相同程度的自动化支持。
Alloy 中的约束不是为了检查图的结构,而是为了实际对系统进行建模并表达其属性(然后您可以检查系统是否满足属性)。 Alloy 在表达能力上与 OCL 无法相比:例如,OCL 在算术处理方面更具表达能力,但缺乏传递闭包。
我不太了解 UML/OCL 研究,所以也许该领域的人可以插话,但我可以建议您从 Martin Gogolla 小组的工作开始,了解更多信息,例如 Mark Richters 的论文关于OCL的语义。
如果您搜索“Alloy and UML”,您会发现一堆有关从 UML 到 Alloy 自动翻译的论文,以及比较论文,例如 this one 。我们还写了一个paper回溯到 OCL 和 Alloy,它们可能批评 OCL 的问题,而这些问题已在 Richters 等人的工作中得到解决。
关于alloy - 合金和UML之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182029/
是否可以在 Alloy 中模拟随机故障? 例如,我目前有一个连通图,它在不同的时间步将数据传递给它的邻居。我想做的是找出一些允许模型随机终止链接的方法,并且在这样做的过程中,仍然设法实现其目标(确保所
来自 this question 的跟进... 我有一个完全连接的图,这很棒。我还添加了时间的概念。我现在正在为围绕我的图表传递数据的概念而苦苦挣扎。 我正在建模一个系统,该系统的任务是确保每个节点都
我正在关注 Daniel Jackson 的优秀著作 (Software Abstractions)) 中的一个示例,特别是他设置 token 环以选举领导者的示例。 我正在尝试扩展此示例( Ring
我正在使用 # 运算符来获取笛卡尔积 (A->B) 和并集 (A+B) 的基数。但它返回奇怪的负数,我不知道它们是什么!? 请查看下面的快照,其中显示了我的模型的 A->B 和 A+B 内容以及 Al
在 Alloy 书籍第 4.7.2 节的以下代码中, 是什么意思?这个关键字指的是? module library/list [t] sig List {} sig NonEmptyList exte
我对使用 Alloy 的 String 类型很感兴趣(特别是因为它允许使用特殊字符)。我注意到,为了将给定的字符串添加到实例中,将其包含在表达式中就足够了。例如 fact stringInsert{
我在学习 Alloy 时获得了很多乐趣,并且很高兴将它应用到我正在从事的一些软件项目中。 过去,我曾非正式地使用轻量级形式化方法(如果是的话),以一阶逻辑编写我期望系统具有的一些不变量。我从来没有用它
这里的任何人都可以解释传递闭包运算符如何根据矩阵在 Alloy 中工作。我的意思是将闭包运算符转换为实际矩阵运算的转换规则是什么。 最佳答案 为了计算传递闭包,Kodkod 使用迭代平方。 简而言之,
我开始学习合金并且非常喜欢我所看到的。 在鼓励同事和我一起学习和使用 Alloy 之前,我需要了解 Alloy 和 UML 之间的关系。 Alloy 是 UML 的替代品吗?如果用Alloy,那就不用
我想知道是否有人在 Alloy 中完整指定了 Alloy 语言。 如果存在这样的元模型,它是否公开可用? 最佳答案 您的意思是您想要像 http://docs.appcelerator.com/tit
我在 avlTree.als 中有一个合金模型。该模型使用整数算术,特别是加号和减号函数。该模型中有一些断言,我可以使用合金分析器 GUI 很好地运行这些断言。 我在 test.als 中有另一个合金
下面是两个桌面的 Alloy 表示。在 fact 中,我指定第一个桌面包含两个图标 A 和 B,第二个桌面包含一个图标 A。我想指定正好有两个桌面,所以我将事实上: #Desktop = 2 当我执行
我想引用可以在这个地址找到的问题: Running alloy analyzers in parallel 是否有关于合金模型分解的持续研究或结论,以便对模型进行更优化的分析? 这让我很感兴趣。 最佳
假设我有以下签名: sig A {} sig B {} sig P { a: A, b: B } 我如何编写一个函数 f,例如,f 返回 P 的集合,其中每个成员的值为 x: A 表示
CompUtil.parseOneExpression_fromString 方法给出以下错误:无法找到名称“Atom$0” 当解析的字符串包含表达式时直接包含原子的标签。 这是可以理解的,因为单独的
在 the Alloy grammar spec在 Alloy 网站上,我发现自己对方括号的使用感到困惑。 在如下所示的制作中,事情似乎很清楚。 specification ::= [module]
假设我的模块中有一个与 sig B 相关的 sig A。 想象一下,现在我们有几个实例: A$1 -> B$1 , A$2 -> B$2 和 A$1 -> B$2 , A$2 -> B$1 我
合金中是否有异或运算,如果没有,我该如何定义它: 我想要一个名为 xor 的谓词,它以两个谓词作为参数,并且当它们的 xor 为真时它也为真。 更详细地说,如果我有 P1 和 P2,我知道我可以将 P
这是家庭作业,我遇到了很多麻烦。我正在使用 Alloy为图书馆建模。下面是对象的定义: sig Library { patrons : set Person, on_shelves :
我有一个合金模型,它有 2 个签名,它们有一个同名的关系。 sig Model { components : set Component } sig Port extends Element
我是一名优秀的程序员,十分优秀!