将OCL用于Date属性

时间:2015-02-18 14:32:23

标签: eclipse emf ocl ecore

我有一些带有日期属性的模型,我想要包含ocl进行验证和派生。

在互联网上搜索我发现了一些引用date.isBefore(date)date.before(date)方法的文章和论文,但这些方法在OCL中无法识别。

此外,我想定义派生,例如derivation: endDate + 10;

我是否必须使用我需要的所有方法重新定义Date类?

欢迎任何与之相关的材料或链接。

1 个答案:

答案 0 :(得分:0)

鉴于OCL没有定义Date,作者应该已经走了很长一段路才能正式定义isBefore(页面是学术写作中的稀缺资源;)

  

预定义了一些包括数字和字符串的“原始类型”   在UML [RJB98 *,p。 394]。其他类型的可用性,如日期和   钱是“系统依赖的”。无论如何,原语的语义   类型必须在UML之外定义。   (Richters Mark。A Precise Approach to Validating UML Models and OCL Constraints,UniversitätBremen,p.33,86)

[RJB98] Rumbaugh,Jacobson和Booch。统一建模 语言参考手册。 Addison-Wesley,1998年。

虽然我不熟悉EMF,但根据this link,任何Java数据类型都可以在模型中使用,方法是将其声明为 您的Ecore模型的EDataType的实例类型。 (另见this reference