OO博客作业3:第9-11周作业总结】的更多相关文章

OO博客总结--OO落下帷幕 凡此过往,皆为序章. 不知不觉OO课程即将落下帷幕,一路坎坎坷坷磕磕绊绊,可算是要结束了,心里终于松了一口气,也有小小的不甘和遗憾.凡此过往,皆为序章.特殊的线上OO课程结束了,但面向对象的旅程才刚刚开始! 一.第四单元架构设计 第一次作业 本次作业是完成类图的解析器,对类图进行一些基本的分析,如对类图中类\操作\属性\关联\实现\继承等查询. 我认为第四单元作业第一步要解决的是对UML的几种主要视图,特别是类图,状态图,顺序图的结构和mdj文件结构的分析.如果将U…
OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程领域如航空航天领域有广泛应用. 1.1 JML语言理论基础 本单元我们学习了一些语言理论基础,梳理如下: 1.requires 该子句定义了方法的前置条件 2.assignable子句,列出方法修改的类成员属性.\nothing则表示方法不改变任何成员属性,是一个pure的方法 3.ensure子句…
(1)基于度量来分析自己的程序结构 注:UML图中每个划分了的圆角矩形代表一个类或接口,箭头可代表创建.访问数据等行为.类的图形内部分为3个部分,从上到下依次是类的名称.类包含的实例变量(属性).类实现的方法.接口图形内部只分2个部分,上方为接口名,下方为接口定义的抽象方法.箭头上的注释进一步解释了类之间的关系. 作业1:多项式运算 两处红色的问题都出自checkformat方法.该方法圈复杂度高,块嵌套深度高.原因在于自己的格式检查没有使用推荐的正则表达式,依然使用了传统的有限状态机.这就容易…
这次的系列作业是写一个电梯调度,主要目的是让我们熟悉多线程. 第一次作业是一个傻瓜电梯的调度问题,要求也很简单,即每次接一个人就行了.我只用了两个线程,一个是输入线程,一个是电梯线程,输入线程负责从标准输入中读入请求并加入到请求队列中,电梯线程负责从请求队列中取出请求并执行,思路非常简单,每次取一个请求,把人送到后,再取下一个,直到取完并且输入停止. 第二次作业没有什么本质区别,只不过修改了调度算法,在电梯运行时进行捎带,我这里的思路是,先找到一个主请求,然后在去接主请求和送主请求去目的地的路上…
(1)从多线程的协同和同步控制方面,分析和总结自己三次作业来的设计策略及其变化. 第5次作业:多线程电梯 基本照搬了课件上“生产者-消费者”模型的设计策略,将InputHandler设计为生产者线程,将Scheduler设计为消费者线程,将RequestQueue设计为托盘.生产者与消费者的工作并发,提高效率.同时,每部电梯设计为一个线程,因为每部电梯的运行彼此不干扰.InputHandler, Scheduler由主线程创建,三部电梯由Scheduler负责创建,这样使得调度器可以获取电梯的状…
规格化设计历史 规格化设计的历史目前网上的资料并不多,百度谷歌必应也表示无能为力...... 在这里结合现实情况讲一讲自己对程序规格化的理解,首先代码规格化对代码的影响是间接的,或许它不能让你代码里面的bug直接消失,或许它也不能让电梯之间不相互阻塞,但是它能让OO实验拿到更多分啊//笑.玩笑归玩笑,下面具体分析一下规格化设计(JSF为例)的作用: 在代码实现过程中,人们往往不能从一开始对整个项目的每个细节都面面俱到地思考一遍,规格化设计在开发初期可以将项目中的细节隐去,工程师只需要考虑类or包…
.测试与JSF正确性论证 测试和JSF正确性论证是对一个程序进行检验的两种方式.测试是来的最直接的,输入合法的输入给出正确的提示,输入非法的输入给出错误信息反馈,直接就能很容易的了解程序的运行情况.但是,每次测试只是在程序涉及的整个问题空间取一个元素进行测试,一次测试只能确保程序对于测试中的样例和同类样例是正确的,并不能确保全局正确性.而为了追求全局覆盖性,就需要大规模的测试样例轰炸了,但是这时测试的最致命缺陷就出现了,一是如何构造如此大量且属于不同类别的测试样例,二是如何确保构造的测试样例能够…
一.总结介绍规格化设计的大致发展历史和为什么得到了人们的重视 1.规格化设计的大致发展历史 规格化设计,又称契约式设计,最早由Bertrand Meyer于1986年提出,出自于<面向对象软件构造>.其基础是形式验证.形式规格和Hoare logic. 2.规格化设计得到重视的原因 在大型软件工程开发中,协同工作能力的重要性日益凸显.“对于一个大型系统来说,光保证它的各组成成分的质量是不够的.而最有价值的是确保在任何两个组成部分的交接处设计明晰的彼此义务和权利规范,即所谓契约.”(<面向…
一.论述测试与正确性论证的效果差异,比较其优缺点 测试是设计若干组测试用例,运行程序并检验其是否完成预期功能.测试是一种直接发现BUG的方法,可以准确断定什么样的BUG会发生,并通过辅助调试进一步确定发生BUG的代码位置.测试效果取决于测试者设计测试用例的覆盖面和针对性. 正确性论证是根据规格化设计原则,逐个检查每个类的属性.方法代码是否有违设计规格和数据保护原则,从而确定程序的正确性和错误发生的位置.这种方法相对测试,其随机性会小一些,效果主要取决于规格是否真实反映了客户端需求以及论证者的逻辑…
(1)本单元是撰写UML数据分析器,架构大致如下,在指导书要求的函数外,对于UmlClass类,Umlinterface类,以及状态机,顺序图这四个类重现构造一个类,这个类里有他们所需要的全部信息,另外还有三个check类和操作类,一遍提高代码的可读性. (2)第一个单元,我根本不知道何为架构,我每次代码都用的一个poly类(行数不够就分一个类出去,分担一下好引用的函数),第二次作业是电梯,电梯作业其实还是架构很清晰的,但是我在那个时候不是很会哟用继承,导致出现了一些bug,因此从第三次作业开始…