我今天和一位教授讨论了 OCL。他认为在定义的函数上下文中允许使用不变量、后置条件和前置条件。
我内心的软件开发人员让我相信 OCL 将允许对模型施加一般约束。像这个模型中 Person 类的所有对象的性别都是男性,或者 car 类的所有对象都有四个轮子这样的约束看起来非常有用,并且对我的模型使用声明性范式感觉是正确的。
我有点像物理世界一样看待它。如果我们将螺母拧在螺栓上,则允许螺母以一种方式安装。无论我们采取什么行动,例如将螺母拧到螺栓上,这些都是物理约束,并且不能违反,否则我们已经从根本上使我们的模型无效。
他的观点是,在 OCL 中,我们只能在提供上下文的函数中定义约束(前置条件和后置条件/不变量)。
有人可以帮我解决这个问题吗?