JML语言的理论基础和应用工具链情况
The java modeling language,是用于对java程序进行规格化设计的语言。在语法上,JML表达式包括原子表达式,量化表达式,集合表达式和操作符。方法规格方面,有前置条件requires,后置条件ensures,和副作用assignable or modifiable。
openjml是主要的应用工具链,包括语法检查,静态检查,运行时检查三个功能。
parsing and type-checking:
openjml -check <source files>
static checking:
openjml -esc <source files>
runtime-assertion checking:
openjml -rac <source fils>
JMLUnitNG/JMLUnit
jmluniting生成测试文件并编译后可以进行测试,测试能很好地覆盖一些边界。
扫描二维码关注公众号,回复:
6265069 查看本文章
对本单元的体会
在本单元阅读规格、根据规格编写程序、撰写规格的训练下,我更明确地认识到了程序的质量是设计出来的,而不是编程调试出来的,这样一种规格设计的思想也使我在写程序时会首先考虑各个单元的返回结果,并设计测试,而不是考虑具体实现方式立刻上手去做。另外,在实际通过JML体会了这种开发模式后,我认为尽管JML描述严谨,但快速准确理解仍有难度,尤其在描述的功能比较复杂的时候,或许非大规模团队开发依然是自然语言描述规格更加方便高效。