问题标签 [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 回答
709 浏览

uml - UML 和 OCL 可以用于形式规范吗?

我之所以问,是因为 UML 用于非正式规范,并且在语义上有一些歧义。然而,我认为 OCL 可用于非常有效地指定前置/后置条件、不变量和其他约束。

我最近遇到了 Z 表示法和代数规范。我的问题是,UML 和 OCL 的组合足以满足正式规范吗?

0 投票
3 回答
695 浏览

sql - 将 SQL 转换为 OCL?

我有一段要翻译成 OCL 的 SQL。我不擅长 SQL,所以我想通过这个来提高可维护性。我们正在使用带有 Bold 和模型驱动开发的 Interbase 2009、Delphi 2007。现在我希望这里有人会说好的 SQL 和 OCL :-) 原始 SQL:

稍作简化后:

注意:MessageType 有 2 种情况,“IFTMBP”和“IFTMBF”。

所以要列出的表是 ScaniaEdiSolMessage。它具有以下属性:

  • 消息类型:字符串
  • 底盘编号:字符串
  • ShipFromFinland:布尔值
  • 无效:布尔值

它还有一个指向名为 ReceivingOwner 的表 Parcel 的链接,其中 BoldId 作为键。

所以它似乎列出了 ScaniaEdiSolMessage 的所有行,然后有一个子查询也列出了 ScaniaEdiSolMessage 的所有行并将其命名为 EdiSolMsg。然后它几乎排除了所有行。事实上,上面的查询从 28000 条记录中获得了一次命中。

在 OCL 中很容易列出所有实例:

也很容易通过选择过滤行,例如:

但我不明白我应该如何制作一个 OCL 来匹配上面的 SQL。

0 投票
4 回答
1786 浏览

uml - 有人用过 UML 和 OCL 吗?程序员使用它还是只使用不编码的分析师?

我试图弄清楚为什么我们首先解决设计问题并决定使用可视化方法 (UML),而不是从碰巧也可以执行的正式规范(RAD 原型设计)开始,我们从可以'的图表开始'不容易证明有效。所以当需要证明模型的属性时,我们发现我们需要在设计中定义约束,因此我们设计了一种形式语法(OCL)来定义模型上的约束。我很难理解这种回到我们开始的地方的飞跃。我发现 OCL 阻碍的 UML 设计(甚至是小册子中显示的示例)不可读,甚至比无数 UML 符号和约定更难以理解。所以我想知道的是:OCL 在当今工作软件开发世界中使用的关键领域是什么,它对谁有意义或值得学习?你的工作角色是什么样的?从不编写代码的架构师会使用 UML 和 OCL,还是与实现它的团队一起设计和架构系统的程序员也使用它?

[更新:其次,在我看来,敏捷开发似乎有点反对“重量级”程序,并且像 OCL 这样的设计图约束的领域特定语言似乎不是很敏捷。UML+OCL 是否在任何“敏捷”商店中使用,还是被 Scrummers 普遍回避?]

0 投票
2 回答
1344 浏览

uml - Rational Software Architect 8 中 UML 配置文件的 OCL 约束

我是 Rational Software Architect 8 和 OCL 的新手。我定义了一个包含两个原型的配置文件,一个应用于类,另一个应用于关联。更多细节请参见图。

替代文字

现在,我想使用 OCL 表达一个约束:如果一个类具有 <> 构造型,那么我希望连接到该类的所有关联都具有RPAssignment 构造型。值得注意的是,使用Permission 构造型的类将没有属性或操作。

我创建了一个小示例来测试我的 OCL 约束。这是由 RSA 生成的图表以及相应 xmi 文件的相关位。

模型

在我看来,关联结束,当它被标记为可导航时,是一个属性,就像一个属性。我在Permission -stereotyped 类(和一些变体)上尝试了以下约束,但它似乎无法正常工作。您可能已经注意到,在我创建的示例中,关联没有所需的构造型,因此验证应该失败。然而,它成功了。

我在这里错过了一些微不足道的事情吗?

0 投票
3 回答
722 浏览

design-patterns - 将 OCL 和 UML 与设计模式结合使用

有没有人尝试为具有原型和 OCL 约束的设计模式创建 UML 配置文件?我正在尝试为单例模式创建一个,但不确定如何以及从哪里开始......

0 投票
1 回答
2801 浏览

ocl - OCL - 迭代每个项目

我有一个 A 类和其他类 (B) 的集合。

我如何在 OCL 中表示对于集合中的每个类 (B) 都有一个字段约束?

我想是这样的:

0 投票
3 回答
281 浏览

eclipse-emf - OCL 到 Ecore 的转换

我正在尝试为 OCL 找到一个可以生成 Ecore 模型文件的解析器,以便我可以使用模型对方法进行建模,以便将 OCL 语句转换为其他语言模型,例如 OCL 到 SQL(但不仅仅是 SQL)。

有谁知道如何将 OCL 转换为 Ecore 转换器?

0 投票
1 回答
349 浏览

uml - 通过 OCL 在 Eclipse 建模框架模型中反转 OrderedSet

我有一个 UML 模型(它实际上是无关紧要的,因为它可以是任何 MOF 模型),我需要从最后一个元素到第一个元素访问一个有序集。因此,我需要通过 OCL 将其反转。我已经看到有一个 sortedBy 方法需要 OCLExpression 用作排序标准,但我不知道如何使用它。

任何的想法?

0 投票
4 回答
3021 浏览

ocl - OCL - 需要一些关于不变量的说明?

我今天和一位教授讨论了 OCL。他认为在定义的函数上下文中允许使用不变量、后置条件和前置条件。

我内心的软件开发人员让我相信 OCL 将允许对模型施加一般约束。像这个模型中 Person 类的所有对象的性别都是男性,或者 car 类的所有对象都有四个轮子这样的约束看起来非常有用,并且对我的模型使用声明性范式感觉是正确的。

我有点像物理世界一样看待它。如果我们将螺母拧在螺栓上,则允许螺母以一种方式安装。无论我们采取什么行动,例如将螺母拧到螺栓上,这些都是物理约束,并且不能违反,否则我们已经从根本上使我们的模型无效。

他的观点是,在 OCL 中,我们只能在提供上下文的函数中定义约束(前置条件和后置条件/不变量)。

有人可以帮我解决这个问题吗?

0 投票
3 回答
559 浏览

ocl - 是否可以使用 Dresden OCL Toolkit 生成真正的 Java 代码?

我尝试使用 Dresden OCL 来描述 UML 类图的约束。看起来它可以很好地生成 AspectJ 代码,但我找不到生成表示建模类(及其属性和方法)的 Java 代码的方法。Dresden OCL Toolkit 提供的示例还展示了在 Java 代码已经存在后如何生成 AspectJ 代码(OCL22Java 教程)。

是否可以生成嵌入了约束的 Java(不是 AspectJ)代码?如果是,那么它是如何完成的?