第四次OO博客作业

1. 论述测试与正确性论证的效果差异,比较其优缺点

软件测试是描述一种用来促进鉴定软件的正确性、完整性、安全性和品质的过程。它的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件品质,并对其是否能满足设计要求进行评估的过程。软件测试是一种实际输出与预期输出间的审核或者比较过程。

正确性论证指的是研究如何使用程序设计语言编制程序,以正确实现预定的目标。该方法从数学理论上去论证代码是否能实现给定功能。

测试的优点是能够方便快捷地判断程序在一定的数据范围内能否实现功能,但要想完完全全地保证程序的正确性则需要经过繁琐而庞大的测试环节。

正确性论证的优点是若能够论证其正确性,则可以保证程序的功能是完备的。但是想要彻底论证一个程序的正确性是非常困难的。

2. 调研OCL语言,并比较其与课程所介绍的JSF规格之间的相似和不同之处

对象约束语言简称OCL(Object Constraint Language)。

相似之处:都是在面向对象编程中有着重要地位的逻辑建模语言,具有抽象性,没有二义性。

不同之处:JSF支持更多的的运算方式,更加自由,方便撰写,而OCL相对而言要严谨一些。

3. 图

 4.1 四个单元模块知识点之间的关系

第一单元是基本的java程序编写以及面向对象的初步思想,第二单元主要是多线程编程以及并发的思想,第三单元主要是JSF规格的编写及应用,第四单元主要是对代码的测试以及正确性论证。这四个方面在面向对象编程中都是非常重要的,相辅相成的。这是一个循序渐进,由简入深的过程。

 4.2 自我总结

一开始极度缺乏面向对象思想,甚至都不把代码的各个部分写成分开的文件,全部揉成一坨,及其冗杂繁琐,难以编写与阅读。后来具备了基本的面向对象思想,将不同类的代码分开来,将代码的功能用不同的方法分开来,对多线程编程、规格描述、正确性论证和测试都有了心得,可以说有很大的进步了。

4.3 对工程化开发的理解

工程化开发在现代软件开发中是非常重要的。每个人负责自己所需要完成的那部分功能的代码,之后再将每个人完成的部分拼起来,成为最终的整体。这种方法对于加快代码的开发,进行代码的维护,保证代码的正确性有着巨大的帮助,是一种非常先进的开发方式。

4.4 对课程的希望与建议

建议是加大对学生工程能力的开发,不要仅仅局限于规格的描写,更应该的是教学生如何把代码写得更规范,更工程化。现在课程的内容过多地注重于写规格,而写规格对工程化能力的提升是没有帮助的。这门课应该教会学生用工程化的方法写代码,而不仅仅是写规格。

而且应该将评判标准定得更严谨一点,不要助教说什么就是什么,助教有时候今天这么说明天那么说,令人难以处理自己的代码。在指导书发布之前应该把要说的要做的规定全部囊括到指导书里去。

减少互测比例,加大公测比例。

祝OO越办越好了。

猜你喜欢

转载自www.cnblogs.com/necrolyte/p/9225520.html
今日推荐