oo第四次博客
Posted fakeboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oo第四次博客相关的知识,希望对你有一定的参考价值。
一、测试与正确性论证的区别
测试:在之前的编程学习中,我们验证程序是否正确的方法一般就是测试,自己先埋头写一通,写的差不多了输入一个测试样例,如果能够成功输出就算自己的程序正确,如果没有正确输出就debug,改对为止。这种测试的方法在一开始的学习过程中并没有什么问题,因为一开始接触编程的时候都是一些比较简单的问题,简单的测试样例也有很高的测试价值。但是随着我们编程学习的深入,代码规模的不断增加,通过测试进行代码调试的弊端就凸显出来了。尤其是在计算机组成这门课中的感受特别深刻,十几条指令的组合通过手动生成测试样例很难完全覆盖到,然而这些没覆盖到的bug可能导致程序出现大问题。在面向对象中对于测试的弊端有了进一步的了解,因为不光有公测的测试点,还有各种仅凭自己难以测试到的情况,所以在前几次作业中不管怎么测试别人还都是能够找到bug。
所以总结一下,测试的优点就是比较简单方便,缺点是很难测试全面,而且通过测试debug也比较困难。
正确性论证:其实最开始接触正确性论证的时候,很多同学包括我不理解为什么我们要学习这个无比麻烦的东西,仿佛这个方法的存在就是让别的测试者多扣自己的bug。但是随着学习的深入我才渐渐理解了正确性论证的有用之处。
首先是jsf,对于这个东西一开始的反应是,不知道怎么写,最后发现自己觉得没法写jsf的类都是自己写的不够好的地方,大多都是那些巨无霸类,分工不够明确,所以自己也很难讲清楚这个类的作用是什么,往往bug出现在这种类的时候最难调试,不是找不到就是没法改,所以最后发现如果能写出jsf就说明这部分的代码写的思路很清晰,也不容易出错。
其次是repOK(),这个部分主要是保证任何时候抽象出来的对象都是有意义的正确的,以前我们总是觉得自己的程序写的只要自己知道怎么用就好了,进行学习后我们有了“别人也许对程序的使用方法不正确”的认识,所以任何时候对于程序的正确性都不能想当然。
最后是代码覆盖率和分支覆盖率,其实对于这个部分的我的感受是最深的,因为就我自己来说,在完成一些有挑战性的有一些难度的编程任务时,往往写到最后只求测试能跑正确,根本不在意自己修改的增添的部分是否是有意义的,这样修修补补写出来的代码往往很不可靠,在进行覆盖率检验的时候我们能够确保自己的每一句代码都是有意义的。
总之,正确性论证可以通过一系列有逻辑的论证保证我们写出来的代码是可靠的,同时在这个过程中我们也能对自己的代码有更深刻的了解和认识。
二、
OCL起源于1997年BIM公司为响应OMG的"面向对象分析和设计标准"征求稿所提交的"对象时间限制提议",OCL是该提议的部分内容。 用OCL可以描述四类约束,分别是不变量、前置条件、后置条件和监护条件。
jsf和OCL都是用来描述约束条件的,区别是两者描述条件的区分不同,都能起到描述的作用。
三、
四、总结
4.1、四个模块分别是学习java、使用多线程、线程安全、规格论证正确性。四个阶段由难到易,循序渐进让我从一个学期前的对java一无所知的小白到现在的了解了如何正确规范地写java程序。虽然四个模块的东西加在一块量有些多,在学习的过程中还是有些吃不消的,但是后面的模块也是对以前模块的巩固和提高,尤其是最后一个模块让我们对自己以前写的代码进行再次回顾,有很多的体会和收获。
4.2 、一开始的程序设计,面向对象的思想都不是很明显,还是在按照c语言的面向过程编程,也不能很好地划分类和方法,经常有很杂乱的长方法,测试方面也经常忽略一些错误的输入和操作,造成程序的crash。
经过这学期的面向对象学习,首先在设计上,在进行编写代码之前能预先完成对各个类的划分和分工,已经理解了面向对象的意义,在处理多线程时也更加得心应手,最大的收获是能够理解和运用生产者消费者模型,用这个模型来解决各类多线程问题。在测试上从以前的只知道测试正确输入下的程序运行情况到现在有意识地通过测试来预防一些错误使用造成的情况。程序质量上,代码的书写变得更加规范有更高的可读性,crash的情况也变少。
4.3、工程化开发,我觉得工程化开发指的是多名程序员对一项工程的共同编写,在开发的过程中要求每个人都遵守一定的书写规范,程式化地编写代码,同时要求代码具有一定的可扩展性。
4.4、对课程的建议、因为我是因为个人信息被无效过的,经历过那种绝望,辛苦写的程序就没有任何收获,所以我建议把个人信息的暴露列为一个互测中的可以申报的bug类型,并且这个bug的占分项可以相当高,因为个人信息被无效真的是有苦说不出。还有因为这个作业的分数是根据排名来的,所以我建议把互测可以扣的分数设置一个上限,公测得分不能被互测扣掉,这样就能避免因为某些测试者恶意扣分导致一次作业的分数可以被扣光,这种情况对与同学们的积极性打击都是相当大的。
最后我想说一学期的oo学习我们终于风风雨雨地度过了,虽然有很多不愉快的经历但是不可否认的是我们确实收获了很多,感谢老师和助教的辛苦工作和帮助。
以上是关于oo第四次博客的主要内容,如果未能解决你的问题,请参考以下文章