-
BUAA_OO_2022 第三单元总结
BUAA_OO_2022 第三单元总结 (1) 分析在本单元自测过程中如何利用JML规格来准备测试数据 第三单元的一个特征就是指令的条数非常多,并且指令之间的联系与最后显示结果有很密切的关系,为了支持较多的指令,类的种类和属性以及具有的方法也达到了一个新的高度,因此相比于以往一二单元的手动构造数据就 -
OO第三单元总结
#一、总述 第三单元的主要内容为学习编写符合JML规格的代码,同时学习异常的处理和抛出。从某种意义上来说,本单元几乎没有难度:JML规格虽然像是给我们编写程序带上了镣铐,但它却是舒适的镣铐——我们编写代码只要简单地遵守contract即可(当然,前提是不能错误理解contract)。然而,镣铐始终是 -
OO2022第三单元个人总结
OO2022第三单元个人总结 本单元作业的目标是是实现一个社交关系模拟系统,可以通过输入指令的形式来实现一个以用户为节点的社交森林,训练目的主要为深入理解JML并实现具有一定复杂度的JML方法。 设计策略 关于JML实现的过程,大致分为四个部分,一是根据JML判断该段代码块中可能出现的函数行为,并 -
BUAA_OO第三单元总结
BUAA_OO第三单元总结 (1) 分析在本单元自测过程中如何利用JML规格来准备测试数据 与之前的作业不同,本单元的作业在测试环节有较大变化。一方面,类及相应的属性和方法数量较多,功能复杂,且各个方法相对独立,想测试不同的方法需要输入不同的数据,这意味着之前手动构造数据或随即生成大量数据的方法不能 -
BUAA-OO-Unit3总结
BUAA-OO-Unit3总结 本单元的主要内容是契约式编程,只需要根据官方提供的jml来实现对应的接口来完成接口中定义的函数,而不需要花费精力在架构的设计上。 jml语言是利用前置条件、后置条件、不变式等语法描述Java程序的数据、方法、类的规格。jml只关注方法的执行效果和对其他产生的影响而不需 -
面向对象第三单元博客作业
Unit 3 - JML - Java Modeling Language -
OO_Unit3_JML
OO_Unit3_JML JML认识 JML 介绍 JML (Java Modeling Language),Java 建模语言,指在消灭自然语言中的二义性,比如一个著名的程序员的梗: 请求: 去买一个西瓜,如果看到西红柿,那就买两个 普通人:一个西瓜,两个西红柿 程序员:两个西瓜 那就买两个,这就 -
OO_U3总结
OO_U3总结 一、简介 本单元学习了JML进行规格化设计。JML通过前置条件、后置条件、副作用等对方法与类进行约束,而编程者只需要保证自己的代码实现符合JML规约,便可以保证程序的正确性。这大大化简了代码编写过程中的思考,降低了出错的概率,防止方法或者类之间过度耦合,也改善了一边架构一边写,想到哪 -
OO第三单元总结
测试方法 这一单元课程组鼓励我们使用JUnit进行测试,但是在简单的使用之后,我发现JUnit比较适合自己构造一些边界数据来测试自己的程序是否满足自己的逻辑。他的优点很明显,某个方法如果没有按照自己的预期设想完成相应的功能我们都可以通过测试发现。但是他的缺点也同样明显:如果我对JML的理解有误或者无 -
面向对象第三单元总结
面向对象第三单元总结 第三单元的任务是根据官方给出的JML规格实现代码、完成社交网络模型。由于方法的前置条件、后置条件等信息已由JML给出,本单元的功能实现较之前简单了不少,而算法优化则成为了不可回避的问题,毕竟完全按照JML实现代码只保证结果正确而不保证性能。 一、结构分析 各类的基本结构已由JM