OO——JML作业总结】的更多相关文章

目录 第三单元博客作业 JML语言理论基础 1.注释结构 2.JML表达式 3.方法规格 4.类型规格 应用工具链 JMLUnitNG使用实例 作业架构设计 第一次作业 第二次作业 第三次作业 BUG与修复 规格撰写和理解上的心得体会 第三单元博客作业 JML语言理论基础 1.注释结构 JML以javadoc注释的方式来表示规格,每行都以@起头.有两种注释方式,和普通的java语言的注释类似,分为行注释和块注释. 行注释://@abbitation 块注释:/*@ annotation @*/…
OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是ComputePoly,用于验证格式.提取以及传递多项式参数:还有一个是Poly类,用以多项式的存储与计算. 从下图可以看到,程序总共有94行,而main方法有47行,占了一半的行数,说明该程序的总体思路仍是停留在写C代码时的面向过程思想上,将大部分的处理操作在main中逐步实现,而不是分摊到类中,从而导致ma…
前言: 这是一篇面向对象作业总结,作业内容是对多项式进行求导,一共有三个阶段,具体要求不详述,第一阶段只要求’+’连接coeff*x^pow的形式,第二次支持*连接的幂函数及三角函数,第三次则需要支持括号表达式的嵌套.本想不用编译原理所述表达式树,最后发现做成一团乱麻. 第一次作业 类图如下: 说明:第一次作业比较简易,主要是对新版eclipse和checkstyle的安装和熟悉.词法分析器为Token,可以考虑将其单例化,因为只有一个词法分析器.用Poly存储多项式的系数和幂次,在PolyDi…
写在最前面: 我是一个这学期之前从未接触过java的小白,对面向对象的理解可能也只是停留在大一python讲过几节课的面向对象.幸运的是,可能由于前三次作业难度还是较低,并未给我造成太大的困难,接下来我就三次作业,从程序以及个人体会谈谈我的分析与感悟. 第一次作业: 度量结果以及UML图: 度量结果: UML: 分析: 这次作业是我人生中的第一个像点样子的java程序,刚拿到指导书真是一脸懵逼.由于我还什么都不太懂,于是我就采用了“照猫画虎”的策略,直接模仿老师ppt中给出的代码框架,然后自己填…
目录 电梯作业总结 程序结构与复杂度的分析 第一次作业 第二次作业 第三次作业 程序BUG的分析 互测 自动评测 有效性 总结 电梯作业总结 程序结构与复杂度的分析 第一次作业 1.设计思路 第一次作业是电梯作业的第一次,也是我多线程变成的第一次实践.任务是编写一个多线程实时电梯系统,采用FAFS的调度方式.由于第一次作业中没有涉及到多部电梯以及捎带的情况,因此来说是比较简单的.我采用的是指导书提示部分中的模式,即生产者消费者模式 主线程进行输入的管理,使用ElevatorInput,负责接收请…
第五次作业:         设计策略: 本次作业设计的基本思路是按照指导书所给的推荐方法来完成的,即共用对象为队列盘,线程有电梯.调度器.以及扫描器,扫描器将控制台输入的有效指令加入到队列盘中,调度器依据指导书的原则分配任务给电梯,然后电梯将其一条条执行.在电梯的类中,加入了一个小队列,即电梯依次需要完成的任务.在同步控制中,对队列盘对象加锁,在某一线程使用时,其他线程无法更改,但是可以访问.这样存在一些时间上不同步的问题,导致了一些bug的出现. 度量: 类图: 本次的类图较为简单,由于实际…
(一)第五次作业 一.设计思路 生产消费者模型,输入接口是producer,调度器是tray,电梯是customer.由于只有一架电梯,所以生产消费模型满足以下条件: 一个生产者,一个消费者 托盘不为空时,消费者可以取走请求.任何时候,生产者可以添加请求.(托盘无容量限制) 互斥:生产者--生产者,消费者--消费者. 同步:生产者至少生产一次,消费者才能消费. 互斥问题我给get和put函数加了方法锁. 二.调度策略:FAFS傻瓜电梯 遵循先到先服务,所以调度器作用很小,只是完成托盘的功能.调度…
在我开始写这次博客作业的时候,窗外响起了希望之花,由此联想到乘坐自己写的电梯FROM-3-TO--1下楼洗澡,然后······ 开个玩笑,这么辣鸡的电梯肯定不会投入实际使用的,何况只是一次作业.还是从中认真分析一下经验和不足吧. 作业一:FIFO单电梯 现在看起来,作业一的难度在整个单元真的仅仅相当于热身.使用线程安全的集合类ConcurrentLinkedQueue存储线程,再用while(true)轮询的方法实现电梯的获取请求,获得请求后运行电梯,运行结束后等待下一个请求即可.整个程序甚至不…
OO电梯作业总结 这三周的作业和课堂内容以及OS的课上内容都相同,都是关于多线程方面的知识.在这次作业中由浅入深布置了三项多线程电梯方面的作业,让我们在实践中感受了多线程的工作原理以及各项需要注意的要素. 一.第一次作业 第一次作业是典型的生产者消费者问题,只不过生产者不必考虑容器装满的特殊情况.在这次电梯作业中电梯只需要将乘客送往目标楼层,不需要解决沿路搭顺风车等其他需要解决的特殊情况.当负责输入的生产者停止时,设置一个共享的结束变量结束整个电梯的运行,整个电梯的运行结构如下图所示: 如图所示…
Part1 本单元三次作业架构设计总结 1.组织结构 由于官方代码中已经给我们提供了许多零散的类元素,如UmlClass``UmlAssociation``UmlParameter等,因此我首先将某些类按照我们平常的理解去进行组装,如UmlAttribute``UmlOperation等封装在MyClass内部,然后再将组装的类进行分级,层层调用.组装结果如下: 这样进行组装后可以将这些不便于直接使用的零散元素进行抽象,然后内部提供我们所需要的方法,从而更加便捷的去进行访问. 最外层的类MyUm…