|
|
1
5
有趣的问题。 对象约束语言的“圣杯”是提供一个框架,当与UML结合时,它允许一个工具将其转换为一个具体的对象图/元模型,即一组已经连接了基本结构和约束的类,因此开发人员所要做的就是实现业务方法(所有这些都以独立于语言的方式进行) Borland的JBuilder尝试在他们的企业版中支持这一点,Delphi和ECO也通过支持查询功能以一种实用的方式使用OCL(尽管不是作为转换输入)。事实上,来自Borland/BoldSoft的andersinver和ECO团队的一位成员,在OCL圣经,对象约束语言,第二版(addison-wesley)上写了这篇文章
至于它的价值,我还没有看到在实际项目中实际使用OCL的模型驱动开发(除了作为概念证明之外)最近在现实世界中似乎起作用的是敏捷过程、Scrum等,以及使用标准IDE和标准语言和用户情景(可能是白板或故事板上的一些UML)的间接开发。 |
|
|
2
2
在您的模型上定义OCL约束的好处是可以指定您的领域的所有业务规则,这些规则不能用UML的图形结构来表示(例如,多重性是可以图形化地表示为关联定义的一部分的约束,类C的属性A必须大于5也是一个约束,但在这种情况下必须在OCL中定义,因为UML没有为此提供图形语法)
不幸的是,提供此功能的工具并不多(请参阅以下列表: http://modeling-languages.com/content/list-ocl-tools )但情况正在慢慢好转 |
|
|
3
1
作为我的学士论文的一小部分,我研究过OCL约束。Borland(现在的Microfocus)有一个有趣的方法,可以从OCL约束中生成Java代码。您定义了变量X应为>=0或不为空,并一起创建assert命令以自动验证它。 |
|
|
4
1
UML2.5使用Eclipse OCL工具来修复UML2.0…2.4嵌入式OCL中的众多错误。
eclipseocl提供了更强大的UI和OCL2Java代码生成器,因此嵌入Ecore/UML的OCL提供了更多可接受/可执行的代码。
嵌入在UML中的OCL从未被认真执行过。 OCL对OCL本身的定义是可悲的。 |