不变式有标准或者语法吗
此去经年 2022-5-19 11:35
看了公众号的不变式文章,想向老师请教怎么添加不变式,是不是在类的旁边加一个说明?老师文章里写的是文字“年龄不超过25岁则重量不得超过50公斤”,格式方面有标准或者语法吗?
UMLChina潘加宇
类的属性框里如果有约束一栏,加在该栏中。约束太占地方,一般不显示,如果想显示,就设置一下。例如EA:


OMG提供了OCL(对象约束语言),语法类似于上面的图。不变式(严格来说,应该是各种约束和集合运算,存在同样需要的还有前置后置套件、警戒条件等,见下图)可以用OCL表示。

不过,用你熟悉的编程语言的语法就可以。OCL主要是提供导航和集合运算,现在主流面向对象编程语言的“高阶特性”基本都覆盖了,像C#的LINQ和扩展方法。除非你打算结合OMG MDA工具来开发,否则不用再专门花时间学一遍OCL语法。
