问题标签 [ocl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
431 浏览

collections - 如何在 OCL 中使用计数相关实例而不是属性

例如,如果我有一个图书馆,并且向借阅者发行一本书的前提条件是它只能在它不是仅供参考并且尚未借给其他人的情况下才能发行,我可以说:

但这将使用 onLoan 属性作为书籍副本。相反,我想用收集方法来计算相关实体?

0 投票
1 回答
748 浏览

uml - 具有本机 UML 类型的模板类和模板类的 OCL 约束

我有两个关于同一个 UML 类图的问题。第一个是关于如何使用 UML 原生类型对模板类建模。第二个是关于如何处理 OCL 约束中的模板类。

问题一:模板类

我想为间隔使用模板类并使用 UML 标准表示它。间隔必须可用于整数和浮点数。到目前为止,我发现的最佳方法如下:

迄今为止找到的最佳解决方案

这里的想法是有一个模板类,参数T是类的超IntegerFloat

我看到的问题是我需要重新定义 UML 的基本类型以便对它们进行分组。我想知道是否有一种干净的方法来定义模板类并说它T是类型integerfloat(这里是 UML 的原语)。

问题 2:模板类的 OCL 约束

我的问题的第二个方面是我希望能够添加 OCL 约束来说明我的间隔必须包含至少 2 个元素。问题是规则必须根据T前面类图中的绑定不同而不同。

对于花车:

对于整数:

So I need to find a way in OCL to say that some rules only apply when T is bound to Integer, and others when it is bound to Float. I am not an expert in OCL, and I couldn't find any helpful information, so I'm asking for some help.

Thanks in advance,

Bastien.

0 投票
2 回答
107 浏览

constraints - 德累斯顿 OCL 负载约束

我正在努力学习德累斯顿 Ocl。当我尝试生成 AspectJ 约束代码时。我收到以下错误

所选模型不包含任何约束。请先加载约束。

请让我知道这里有什么问题。另外,如果你能指出我一步一步的教程,它会演练“生成 AspectJ 约束代码”,那也很棒。

谢谢

0 投票
1 回答
2305 浏览

uml - 强制字符串不为空的 OCL 约束

我有一个包含许多类的类图,其中一些包含 type 的属性string。我希望我的所有字符串的长度至少为 1。

简单(但丑陋)的解决方案如下:

您是否知道为匹配模板的所有属性定义 OCL 约束的方法?就像是:

0 投票
1 回答
230 浏览

ocl - 跟随 OCL 中的链表

我将 Bold 用于具有OCL实现的 Delphi 。OCL 擅长过滤列表等。但是我还没有找到一个好的、通用的遍历链表的方法。

假设我有一堂课PlanMission。它包含一个PlanMission.previous指向自身的链接。它还有一个布尔属性isDummy

我想遍历一个列表,PlanMissions直到我有一个isDummy.

我可以

我真正想要的是这样的:

traverseList不存在,但它应该有 2 个参数。

  • previous: 要关注的链接
  • isDummy: 一个布尔条件,所以我知道什么时候停止

如何实现?

编辑说明 我不想要任何 Delphi 代码。我想要OCL中的代码。那些使用Bold的人知道我的意思。OCL 是一种具有查询对象、属性等的查询语言。它没有副作用,所以它是只读的。可以在此处找到 OCL 简介。

0 投票
2 回答
1528 浏览

eclipse-emf - 如何强制 Acceleo 在每次模板执行时以相同的顺序迭代集合?

我正在使用基于 Modisco KDM 元模型的 EMF 模型。在我的 Acceleo 模板的某个时刻,我需要遍历一个集合,例如:

[for (e: AbstractCodeElement | action.codeElement) 分隔符(', ')][e.generateCode() /]

action.codeElement 是一个集合,modisco 的 kdm.ecore 元模型将其定义为无序的。

每次我运行生成器时,都会以不同的顺序生成输出。显然,序列化模型 xmi 强制执行特定顺序,并且我打开模型的每个模型编辑器(emf 默认编辑器、modisco 编辑器)始终显示相同的顺序(匹配元素序列化到 xmi 文件的顺序)。

由于我无法更改 kdm.ecore 元模型以使集合有序,是否有一种解决方法可以让 Acceleo 始终以相同的顺序进行迭代?

提前致谢

0 投票
1 回答
86 浏览

ocl - Importing eclipse MDT/OCL APIs in qvt-o code

In a model transformation I have native OCL query as string and I need to parse that OCL string and execute it in order to identify and select specific model element in the source model.

Is it possible to import eclipse MDT/OCL API in qvt-o code? like in java

In other word , can we follow the following example but directly in qvt by importing API to qvt code without using java and black-box?

(http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.ocl.doc%2Fhelp%2FPivotEvaluatingConstraints.html&cp=38_6_5 )

Thanks

0 投票
1 回答
422 浏览

ocl - 以编程方式对 UML 模型执行 OCL 查询

谁能提供一个示例,说明如何使用 Eclipse MDT/OCL 实现以编程方式在 UML 模型上执行 OCL 查询。我阅读了 Eclipse 文档,但仍然找不到工作示例,并且不断收到不同的异常和错误。

谢谢你的帮助。

0 投票
1 回答
472 浏览

uml - OCL 函数操作

我需要 OCL 操作方面的帮助才能通过我的硕士课程之一。我对OCL语言了解不多。

接下来我要做的是:

实现操作:

当且仅当存在一个游戏,该游戏有一个名为 playerName 的玩家,该玩家的属性 hasTurn 为 true,并且游戏板在调用一个操作 validMovement(movement) 时返回 true,此操作才返回 true。

假设该操作Board:validMovement(g:Game):bool存在,并且没有必要在 OCL 中记录它。

0 投票
1 回答
294 浏览

uml - OCL 中的 *package* 是什么?

我知道如何在OCL中编写一个,但是这个构造的确切含义是什么?为什么以及何时必须使用包?


作为我脚本中一个包的示例,他们编写

但是如果我只写有什么区别