问题标签 [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 投票
2 回答
203 浏览

abstraction - 是否可以在不同的 OCL 包中使用相同的类?

我想使用 OCL 来链接两个在两个抽象级别上表示相同模型的类图。

为了说明这一点,考虑一个抽象模型 A,它包含一个类 Person,该类与其自身具有“父母”关联。还有一个更具体的模型 B,它具有 Person、Male 和 Female 类,其中 Male 和 Female 继承自 Person,以及两个关联,Person 和 Male 之间有一个“父亲”,Person 和女性之间有一个“Mother”。

我想使用 OCL 将两个模型链接在一起。也就是说,我想说具体模型中的“母亲”和“父亲”代表了抽象模型中的“父母”关联。

我知道可以将所有关联放在一个模型中,然后说类似

但我特别想分离模型。这个想法是具体模型不必明确地携带抽象。

我曾考虑使用包将每个模型放在单独的命名空间中,但据我所知,我最终得到了两个不同的 Person 类,每个包中都有一个。

有没有办法可以说不同包中的两个类名代表同一个类?那是同一组对象吗?例如,下面的表达式会实现这一点还是永远是假的?

0 投票
2 回答
141 浏览

ocl - 基于 OCL 的模型转换语言

哪些模型转换语言是基于 ocl 的?Epsilon 转换语言 (ETL) 是否基于 ocl?

0 投票
2 回答
783 浏览

constraints - 用约束定义属性的多重性

我在 UML 中有 2 个类,现在需要为这部分创建一个约束 - attribute1:String 在 class1 中,而 attribute2:int 在 class2 中,类之间的连接是泛化 - 可以更改为关联。

我需要以某种方式写这个

if attribute1 contains 'First year', then attribute2 have multiplicity [1..2], else if attribute1 contains 'Second year', then attribute2 have multiplicity [3..4], and so on.

我知道 attribute1 可以定义为枚举的所有值(12 个值,但如果需要条件则只有 4 个,因为每 3 个值在开始时都有相同的文本部分)。如果它很重要,我正在企业架构师中创建 UML。这是上课的照片

在此处输入图像描述

或者

在此处输入图像描述

0 投票
1 回答
118 浏览

java - 模型 OCL 评估与对象评估

我需要检查模型是否触发了一个或多个 OCL 约束。模型存储在 XMI 中,加载了 EMF。OCL 约束是自动生成的(字符串等)。

我找到了一种检查 EObject 约束的方法

o 然后包含结果:真或假。

我是否必须“手动”检查模型的每个对象,或者是否有方法、方法或类可以直接(并且可能更有效)?

请注意: - 没有建模信息是硬编码的:元模型、模型和 OCL 以最通用的方式进行操作, - 我在一个独立的软件上工作:所有 jar 都是专门添加的。我尝试过使用 DresdenOCL,但我不知道为什么包的注册很麻烦。

0 投票
1 回答
345 浏览

ocl - OCL 中的身体表达

我是 OCL 的新手,我刚刚遇到了这个表达式:

我现在想获取一个人的直系和直系后代,但是这里怎么写,每个句子都想说什么?

还有这个,

这是递归的吗?

0 投票
1 回答
390 浏览

uml - uml/ocl 获取父类名

我尝试编写 ocl 为子(动物)添加约束,但约束必须用户父类名(mamifere)。我认为第一个版本不起作用,我认为有一个比第二个示例更好的解决方案。请帮帮我 ?

图片例如动物:

在此处输入图像描述

0 投票
1 回答
57 浏览

eclipse - 在eclipse中创建模型实例提供者类

如何在 Eclipse 中创建模型实例提供程序类?

0 投票
1 回答
75 浏览

ocl - OCL - 调用规则

下面的代码有什么作用?当只有一个元素而不是元素时,如何编写此 OCL 表达式?

换句话说,我不明白代码收集了哪些元素?由于当我们有多个元素时使用“收集”,如果我有一个元素(而不是元素),那么该表达式的“->收集(s|thisModule.CreateMatchClass(s​​))”部分会发生什么变化?

在此处输入图像描述

0 投票
1 回答
475 浏览

ocl - OCL 资产如何工作?

根据asSet/ asBag/ asSequence/ asOrderedSet我有一个问题。我可以在收藏集上使用它吗?例如,我有(Sequence(Bag(Set(A)))),如果可能的话,我可以使用这些操作以及我将收到的结果。或者我需要使用flatten

0 投票
0 回答
56 浏览

ocl - OCL - 获取变量的值

如何获取变量的值而不是其名称?下面的代码返回“n”字符串,它是变量的名称。我需要n的值。

元模型