标签:jks 方法 测试文件 结果 rac 运行时 数据 文件 面向
1.JML语言的理论基础,应用工具链情况
JML 预言是一种能够用于约束 Java 模块行为的行为接口规范语言。它以特殊格式的注释块形式写在java代码中,描述java类中各方法模块的行为,实现对java程序进行规格化设计的目的。
契约式设计(Design by Contract)要求软件设计者为软件组件定义正式的,精确的并且可验证的接口。为传统的抽象数据类型又增加了先验条件、后验条件和不变式。Eiffel语言首先提供了按契约设计的概念,它关注的是用程序规定软件模块的权利和责任,以确保程序正确性。
JML语言具有以下特点:
·JML语言以注释的形式存在,对java程序的编译与运行没有影响。
·JML语言是逻辑语言,无二义性,便于团队之间交流和理解模块的功能。
·JML语言通过验证运行结果描述模块的功能,而不必描述中间过程的具体实现,为描述模块功能提供便利。
由于JML语言的无二义性和验证结果的功能,可以通过程序解释JML语言并在运行过程中检测程序模块的正确性。
常用的JML工具有:
2、三次作业的架构分析
第一次作业:
uml类图:
第二次作业:
uml类图:
第三次作业:
Uml类图:
3.按照作业分析代码实现的bug和修复情况
4.心得体会
通过本单元的作业,我学习了jml的规格化表示,理解了规格化的概念,并深刻体会到了jml在程序设计方面的重要性。
但另一方面,jml也存在着一些问题,如表达过于繁琐,有些语句较难理解,有时候为了实现一个较为复杂的方法需要额外描述好几个简单一些的方法,同时还要为这些方法分别写jml语句,在复杂度和效率方面都不如自然语言,前两次的作业我仅仅通过jml就能很好的完成,但到了第三次,部分方法的jml实在难以理解,只能通过指导书,理解了该方法所要实现的功能,再结合jml才加以实现。
在这一单元的学习中,我深刻体会到了程序架构的重要性。对于相同的jml,不同人写出来的程序在性能和正确性方面都有着很大的区别,因此我认为jml的实现应该与程序架构的设计相结合,这样才能编写出更好的程序
标签:jks 方法 测试文件 结果 rac 运行时 数据 文件 面向
原文地址:https://www.cnblogs.com/shensuanzi/p/10908749.html