【问题标题】:Using OCL for Date attributes将 OCL 用于日期属性
【发布时间】:2015-04-19 14:28:47
【问题描述】:

我有一些具有日期属性的模型,我想包含 ocl 以进行验证和推导。

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

另外我想定义推导,例如derivation: endDate + 10;

我必须用我需要的所有方法重新定义一个 Date 类吗?

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

【问题讨论】:

    标签: eclipse emf ocl ecore


    【解决方案1】:

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

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

    [RJB98] Rumbaugh、Jacobson 和 Booch。统一建模 语言参考手册。艾迪生-韦斯利,1998 年。

    虽然我不精通 EMF,但根据 this link,任何 Java 数据类型都可以通过将其声明为 Ecore 模型的 EDataType 的实例类型。 (另见this reference

    【讨论】:

    • 我已经遇到过这些参考资料,但它并没有说明问题。虽然我已经使用java.util.Date 声明了新的EDataType,但在OCL 中,诸如>=< 之类的操作或data.before(old_data) 之类的方法无法识别。无论如何,我真的很感谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多