[toc] 前言 你以为你学的是JML,你以为你在学规格,你以为你上的课程叫OO。 哦,这些都没有错。 什么程序不能掺点算法题呢?\\ _ / 关于JML JML是什么 JML(java modeling language)是一种描述代码行为的语言,包括前置条件、副作用等等。JML是一种行为接口规格 ...
分类:
其他好文 时间:
2020-05-22 21:03:00
阅读次数:
60
BUAA_OO_2020_UNIT3_Summary ? 本单元在阅读并理解JML规格的基础上,完成一个简单社交网络系统的迭代开发,该系统为实时在线系统,输入给出指令,需要及时给出正确的输出。训练重点为对规格的理解,数据结构和算法的选择,程序复杂度和时间的控制。 一、JML理论基础与应用工具链梳理 ...
分类:
其他好文 时间:
2020-05-22 17:20:50
阅读次数:
42
第三单元总结 一、JML JML的语法课上讲的很清楚,我就谈谈自己阅读JML规格的体会。 requires和ensures成对出现,可以看作对应一个if块。requires就是if块的条件,ensures就是这个if块将要实现的功能。 单就阅读JML规格而言,体验不是很好,因为这个语言非常严谨,总是 ...
分类:
其他好文 时间:
2020-05-22 16:57:10
阅读次数:
43
OO第三单元——基于JML的社交网络总结 一、JML知识梳理 1)JML的语言基础以及基本语法 JML是用于java程序进行规格化设计的一种表示语言,是一种行为接口规格语言。其为严格的程序设计提供了一套行之有效的方法。通过JML以及其支持工具,不仅可以基于规格自动构造测试用例,并整合了SMT Sol ...
分类:
其他好文 时间:
2020-05-22 13:03:22
阅读次数:
46
那么JML(Java Modeling Language)到底是什么呢?“在面向对象编程中,一个重要原则就是尽可能地 推迟对于“过程”的思考 。”在每次编写程序后,想好了整体架构,搭建好了类和接口,之后面对的就是每一个方法。这个时候,我们思考的是这个方法能给我带来什么 预期结果 ,之后再考虑如何实现 ...
分类:
其他好文 时间:
2020-05-22 12:49:33
阅读次数:
57
BUAA OO Unit3 Summary——万物即可形式化 一. JML 语言的 理论基础 JML是对Java程序进行规格化设计的一种表示语言。通过规格化描述,精确地描述了代码的功能,并且为测试设计提供了严密的依据。尤其在多人协同开发的时候,相比可能带有内在模糊性的自然语言描述,JML能过更清晰地 ...
分类:
其他好文 时间:
2020-05-22 12:43:52
阅读次数:
55
第三单元我们对JML进行了学习,并加深了对形式化设计的理解。本单元通过给定的JML来实现了一个人际关系网,最后实现了一个人际关系管理网络,表示了人与人之间的关系,人所在群组,人与人之间的借贷关系,以及离散数学中的连通,强连通,最短通路等关系。 一、JML理论基础 JML是对java程序进行规格化设计 ...
分类:
其他好文 时间:
2020-05-22 11:17:54
阅读次数:
53
JML理论基础 基本概念 以下内容来自我~~瞎~~翻译的维基百科: JML是一种java的 规约语言 ,使用了Hoare风格的 前置,后置,和不变量 约束条件,用来遵守 契约式设计 的要求。 这里面指出了JML的几个特点: 是java使用的规约语言~~(递归查询Specification Langu ...
分类:
其他好文 时间:
2020-05-22 09:30:01
阅读次数:
61
[TOC] Part 1 JML 规格(specification) 规格既是一种描述,也是一种契约。一方面,规格描述了一个复杂的、具体的代码实现的行为逻辑。比如,使用 的用户并不需要知道该类解决哈希冲撞的具体方法,也不需要知道这个类会不会使用红黑树。这极大地方便了使用者。另一方面,规格是调用者和被 ...
分类:
其他好文 时间:
2020-05-21 21:10:01
阅读次数:
59
OO_Unit3——JML契约式编程 本单元任务的特点是,没有前两单元那样对程序进行功能性描述,而是将程序的所需要实现的方法框架提供给我们,配以JML规格形式化描述。我们所需要的做的是就是根据规格中的前置条件、后置条件和副作用等描述信息,理解方法的功能,并个性化的选取合适的容器以及合适的算法,在有限 ...
分类:
其他好文 时间:
2020-05-21 19:21:45
阅读次数:
48