1.论述测试与正确性论证的效果差别,比较其优缺点。多线程
测试与正确性论证的差别是,测试是从实践角度进行的,以大量的各类不一样的数据来验证代码的正确性或是发现bug。而正确性论证是从逻辑推理角度进行的,相对于测试即便有大量数据也可能没法覆盖各个分支的状况,正确性论证能够彻底覆盖代码全部的可能性。只要正确性论证的过程没有错误,也就能够证实程序是正确的。可是从难度来讲,正确性论证的难度是要远远大于测试的。由于能够进行黑盒测试,无需了解代码内容。而正确性论证则是须要测试者须要深刻代码的实现,去逐个论证代码实现是否严格遵照规格内容。在繁琐的过程当中出现了一步错误都不能得出最后正确的结论。两者各有优缺点,在使用时应该是相互辅助的关系。在完整一份正确代码的工做中,两者缺一不可。学习
2.调研OCL语言,并比较其与课程所介绍的JSF规格之间的类似和不一样之处。测试
同:两者都是形式化,声明,约束性语言,本质都是前置条件向后置条件的一个导向,对过程规格的关心程度有限。同时,两者都使用了数理化的逻辑,可是出于天然语言的转化困境,两者也都创立了一部分数理逻辑语言以外的,便于规范的新语法。spa
异:OCL语言有JSF语言所没有的监控条件部分,使得做为一种约束语言的约束真值表达性更为强大,同时,OCL的语法结构相较于JSF更为复杂,这使得他更便于规格的书写,但难于对于规格的验证。JSF语言比较于OCL语言多了Modifies域,更好的可以让书写者完成变量监控,同时JSF语言对布尔表达式的数理逻辑依赖性更强,这对书写者提高了抽象性的难度,可是在验证正确性和进行迁移的时候更为方便。线程
3.UML类图:设计
4.时序图:3d
5.状态图:对象
6.四个单元模块知识点之间的关系blog
这一学期咱们学习了四个单元的知识。系统的了解了面向对象程序设计的过程以及工程化的开发过程。第一单元做为基础入门单元,介绍了面向对象程序的特色及描述方法等,让咱们对面向对象有了初步的了解;第二单元开始,咱们开始写多线程程序。这一部分介绍了多线程的实现机制、线程同步、冲突问题等,将多线程这个概念带入到了个人脑海中;第三单元则在多线程程序的基础上添加了规格描述的过程,主要介绍了JSF的规范书写和程序的规格化设计,这一部分重点就开始从写程序转移到设计与规范了;最后,第四单元着重介绍测试,包括JUNIT测试和正确性论证,重点又从规格转移到了测试。开发
7.心得体会
这一学期,这门学科,给我留下了太多回忆了。基本上人能够有的情绪在这门课中都已经出现过了。有完成做业,正确性颇高时的喜;有被莫名扣掉不少bug的怒;有还没完整完成就提交的忧;有期盼本身每次成绩的思;有由于本身能力不足而无效的悲;有到了最后ddl时还在猛赶做业的恐;还有得知本身应该不用去补给站的惊。种种复杂的情感,一周一周的在我心中呼啸而过,周而复始。要是比喻的话,说oo是献给当心脏的过山车应该不过度吧,并且一坐就是一个学期。我水平很低,只能经常为本身会不会进补给站而挣扎。不过在一次次挣扎中,也确实学到了不少知识。更重要的是,oo教会了我面对各类各样的需求时该如何思考,而不仅仅是上来就埋头傻干。我认为这才是最宝贵的东西。