论述测试与正确性论证的效果差别java
单元测试利用测试者构造的测试用例来检查类或方法的正确性,通常来讲所须要测试的用例是无穷多的,经过人为构造表明性的测试用例来尽可能测试全部代码。测试的优势在于不易出错,只要能正确肯定测试结果就好了,可是缺点在于难以考虑到全部的表明性用例,在复杂工程中,彻底周密的测试是几乎不存在的,测试者不能保证没有不被考虑到的用例。算法
而正确性论证是逻辑论证,从代码层面出发,用天然语言来描述程序的运行正确性。优势是逻辑论证能够彻底覆盖类或方法的运行过程,可是缺点是天然语言论证自己就是不能保证正确的,没法与单元测试的机器运行相媲美。编程
OCL与JSF的比较多线程
OCL是对象约束语言,能够应用与任何实现方式的非正规语言。对象约束语言对UML中图形或其余组件都没有控制权,他只是在使用时返回值。OCL、并不能修改对象的状态,而是用来指示对状态的修改什么时候发生。而JSF更增强调对代码功能的说明,OCL是形式化语言,JSF是半形式化语言,可使用天然语言;OCL表达式的值能够有不一样的类型,JSF表达式的类型都是布尔型。共同点在于OCL和JSF均可用于描述规格的前置条件和后置条件。ide
UML图单元测试
整理总结测试
阐述四个单元模块知识点之间的关系:第一个单元应该是整个java编程的基础,初步了解面向对象编程的过程,帮助你们熟悉Java语言的使用状况。第二单元和第三单元都着重于多线程编程,先利用电梯做业体验简单的多线程编写,只限于三个电梯和楼层间信息交换,开始设计进程同步等知识,而到了第三单元将多线程复杂化为更多的出租车和地图,加大多线程编程的难度。第四单元着重于规范化代码的编写,对JSF、规格文档、正确性论证进行训练。线程
梳理本身所设计实现的程序:以第十四次做业为例,我彻底重写了第三次做业的代码,第三次做业的类图以下:设计
第三次做业的数据管理很是很是混乱,共享的数据分布在各个类中都有定义,其中还AskDisposeOverride的长度达到了四百多行,可读性基本为0。而在第十四次做业中,我将共享数据集中在一个类中进行管理,每一个方法的长度都控制在五十行之内,代码的规范度有了质的提高。同时重写后的方法使用了彻底不一样的调度方法,更加贴合多线程运行的实际状况,请求管理也使用了ArrayList,代码更加方便维护。代码规范
阐述本身对工程化开发的理解:而在企业项目中,代码的规格化尤其重要,一个项目大多都是由一个团队来完成,若是没有统一的代码规范,那么每一个人的代码一定会风格迥异。且不说会存在多我的同时开发同一模块的状况,即便是分工十分明晰的,等到要整合代码的时候也有够头疼的了。大多数状况下,并不是程序中有复杂的算法或是复杂的逻辑,而是去读别人的代码实在是一件痛苦的事情。统一的风格使得代码可读性大大提升了,人们看到任何一段代码都会以为异常熟悉。显然的,规格化的代码在团队的合做开发中是很是有益并且必要的。
对课程的任何指望或建议:强烈建议对于部分测试删除互测阶段,对于JSF、规格检查,互测其实无可厚非,这些内容有些时候就是用来给别人看的,可是第1、2、三单元彻底能够依靠公测进行测试,指导书统一输入方式和输出结果就好了。课程组可能对于匿名后的学生素质指望太高,乱扣bug是一个低风险的行为,除了一些明显无理由的bug外,大部分互测争端是助教难以评判的,并且工做量巨大。因此强烈建议前一二三单元使用公测进行测试,这三个单元的做业更加注重结果的正确性而非规范性。