标签:记录 表达式 图片 常用 doc 类成员 require ams 关键词
原子表达式:
\result
: 表示返回值.
\old(
expr)
: 用来表示一个表达式expr
在相应方法执行前的取值.
\not_assigned(x,y,...)
表达式:用来表示括号中的变量是否在方法执行过程中被赋值。
量化表达式(谓词逻辑):
\forall x;P(x);Q(x)
,对于所有的x,P(x)为真则Q(x)为真,
\exits x;P(x);Q(x)
,存在x,P(x)为真则Q(x)为真,
\sum i; 求和范围 ;累加值
, 类似于数学中的求和
\prodoct i ;求积范围 ;累乘值
, 类似于数学的求积
集合表达式 没用到
操作符: 等价 <==>
蕴含 ==>
异常:
public normal_behavior
正常行为
public exceptional_behavior
要抛出异常的行为
signals (***Exception e) b_expr;
当满足表达式时,抛出异常e
signals_only Exception e
当满足前置条件时抛出异常e
类型规格:
invariant
可见状态下满足,可见状态一般指函数运行前后
constraint
状态变化约束对前序可见状态和当前可见状态的关系进行约束
OPENJML
OpenJML is a tool for working with logical annotations in Java programs. It enables static or run-time checking of the validity of the annotations, with other features underway.
失败案例
JMLunitNG 自动生成测试用例
都跑不起来了,建议大佬写个教程....
本单元的作业基本按照规格来实现即可,在模型构建上也没有过多的思考过.
写规格真的不是一件容易的事情,感觉写规格要比写代码还要复杂,现实生活中应该不会有哪个团队写代码前先写一份规格吧.规格是站在更高的角度,使得对代码的测试更加遍历,那么你对规格的正确性的测试我自己感觉是远大于直接进行代码的测试,所以在这块感觉是很没有必要去搞这个规格的.如果规格就写错了,那实现者岂不是很尴尬.
标签:记录 表达式 图片 常用 doc 类成员 require ams 关键词
原文地址:https://www.cnblogs.com/donsome/p/12923118.html