测试与正确性论证的效果差别及各自的优缺点:java
测试针对一些典型的输入状况进行方法验证,可操做性更强,结果直观。但不能彻底覆盖全部的输入状况。编程
正确性论证则是根据代码逻辑从全部的方面对方法进行论证,可操做性不好,工程量大,不过验证出来的结果更加可信。多线程
OCL语言与JSF规格:框架
OCL语言具备以下特色:模块化
1.OCL是一种精确的,无二义性的语言测试
2.OCL是一种规范说明性语言,全部有关实现的问题都不能用OCL来表达线程
3.OCL是一种纯表达式语言,具备没有任何反作用的申明性语言设计
4.OCL是一种类型化语言,每个表达式都是有类型的对象
5.OCL是一种程序设计语言,不能用OCL编写程序逻辑和控制流程blog
jsf是以命题逻辑为主,利用蕴含表达式将代码逻辑与结果表达清楚,主要用于描述方法规格,但在实际操做中,很难将复杂的逻辑表达式简单地用蕴含表达式表示清楚,表达能力有限,但这二者都是约束型的方法或者规格。
整理总结四个学期所学所练:
1.阐述四个单元模块知识点之间的关系:
第一单元是简单的java面向对象程序,其中第一次做业的感觉就是程序对输入处理的重要性,二三次做业是简单的电梯调度的实现,第一单元是一个过渡单元,从过程编程到面向对象编程的过渡,另外就是熟悉java语言。
第二单元是多线程编程,通过了第一单元的洗礼,对面向对象有了一丝理解,java也有了必定的编程基础,接下来就是深刻多线程编程,多线程编程也是由浅入深,从最开始三个多线程电梯,而后文件监控系统和100辆出租车,加深对多线程的理解和运用掌握。
第三单元是多线程编程的续写,100辆出租车的各类要求增长,难度系数提高,从红绿灯暂停,初始化文件,道路开闭等等,都是对多线程编程的进一步考验。
前三单元主要是对编程能力的提高,第四单元则重视程序规格,代码的质量。第四单元经过jsf测试和正确性验证等方法让咱们对代码的设计更加剧视,不断提高本身的代码质量,更合理地构造代码框架。
2.梳理本身所设计实现的程序,分析本身在设计、测试和质量上的进步
第一次做业入门级别,学会了正则表达,输入的处理重要性。电梯的调度程序,代码比较散乱,复杂。在程序处理方面没有大局观,想到一种状况就添加一种状况,彻底没有考虑是遗漏了仍是重复了;程序实现的方式不是最优。第二次多电梯重构了一次,代码明显减小。程序的质量不断提升,冗余代码明显减小。在出租车阶段,程序的输出处理变得更加友好。
3.对工程化开发的理解
看到有同窗都提到了计算机组成,我想说我也是这样。仔细想来,要是本身没有经历过计组的洗礼,面对OO这门课的时候估计会不知所措,毕竟OO每周的程序做业均可以看做是一个系统,而不是一个简单的过程化程序,要想完成这样一个系统化程序,就必须有一个系统的观念。在我看来,工程化开发是对一个系统的开发模式,要有一个总体的观念,另外要懂得将各部分细化,再整合,也就是模块化。
4.指望与建议
这门课学起来是有意思,每次完成做业就像是本身作完了一个小系统,有成就感。另外本身的编程能力获得了锻炼,不论是代码质量,仍是编程思想。但愿老师和助教们继续加油,完善这门课内容和评测机制。