OO Summary Ⅳ

测试与正确性论证的效果差别

        测试,或者说用断言进行黑箱测试,用大量的数据进行“覆盖性测试”,目的是当分支覆盖率达到100%也就是理论上来讲全部可能的输入都已经测试过了,而输出结果均是正确的,那么咱们理论上能够说这部分程序是没有问题的。这种测试方法的好处就是,问题暴露得十分明显,某一组数据错了,就知道问题发生的状况是什么了,复现性也很强。其实平时咱们本身debug的时候用的就是这种方法,只不过那时咱们测试量比较小,并无作到全覆盖,而是向着咱们感受可能会出错的方向进行测试,致使测试之后仍然感到不安,惧怕仍然存在着某些bug本身没有发现。如今有了全覆盖的测试,这种方法比较好实现,效率也比较高,只是不能够彻底验证程序逻辑的正确性。编程

        正确性验证,就是经过分析需求写出正确的规格,而后论证程序在规格的任意划分下,都符合规格所要求的过程。这种验证方法偏向于验证程序的思路、逻辑是否正确。严格按照这种方法执行,能够验证程序是否有按照咱们所但愿的那样执行,但因为是理论上的分析,因此须要严谨细致的推论,所以可能会比较耗费时间。安全

        不管是这两种哪种测试方法,都让我学会了如何准确性较高的测试本身的程序(发现更多的bug),都使我受益不浅。多线程


 OCL语言和JSF规格的对比

        对象约束语言,即OCL语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。OCL具备以下特色:学习

一、OCL是一种精确的,无二义性的语言。测试

二、OCL是一种规范说明性语言,全部有关实现的问题都不能用OCL来表达。spa

三、OCL是一种纯表达式语言,它是具备没有任何反作用的申明性语言。线程

四、OCL是一种类型化语言,即OCL中的每个表达式都是具备类的。debug

五、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。设计

        它和JSF规格的相同点在于它们都是形式化的约束语言,在程序中唔二义性,结构上也具备类似性,OCL主要包括的不变量,前置条件,后置条件,监护规则分别对应JSF对应着repOK()REQUIRESEFFECTSMODIFIES对象

        他们的不一样点在于做用的时间不一样,OCL主要是在编写程序前,理论建模时刻对每一个类进行明确的约束,而JSF主要在功能实现前进行约束以确保程序逻辑实现正确。


 第十四次做业模型图

1. 类图

2. UML时序图

3. 状态图


课程总结

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

        第一章的多项式计算和傻瓜电梯,主要是为了使咱们从面向过程编程转变到面向对象编程,在写代码的过程当中体会面向对象的思想。

        第二章主要是线程安全的学习,引入线程的概念,运用多线程来提升工做效率,同时也就引入了线程安全的问题,如何保证进程互斥和资源共享是咱们本章须要思考的问题。

        第三章主要是抽象和规格化设计,经过写规格来加强代码的可读性、可移植性,让咱们写的代码能够为他人所用。

        第四章是测试与论证,随着程序规模的逐渐增大,人工测试难以保证程序的正确性(其实哪怕程序规模小人工测试也很难彻底覆盖),因此不管是自动化测试仍是正确性论证,都是为了经过理论层面论证程序的正确性。

2. 梳理与进步

        程序确定是写得比之前好不少,不管是在程序结构仍是可读性上,从一开始的数量少但功能贼多的类(GOD类)到一点点每一个类的功能相对均衡,各个类可扩展的空间也多了很多。可读性上,命名风格向大佬们学习基本也能作到精简且明晰,同时也按照课程要求写了详细的JSF(虽然有些仍是很长很长很长很长),可读性改观了许多。

        测试方面,从一开始的只能靠乱想例子,寝室共享一波数据,到如今的覆盖性测试,还有正确性论证,使得测试的过程更加有条理,结果更加可信。

3. 对工程化开发的理解

         emmmm工程化开发就是不少不少不少人一块儿写代码,因此本身写的代码就会被本身的队友所使用,所以本着“以人为本”的思想,咱们就要让本身的程序能够很方便的被别人使用,就像一个很标准的、契合的齿轮,能够帮助整台机器运转,与其它部件共同合做完成各项功能,而不是由于本身的不契合而致使整个团队延缓开发速度甚至项目失败。

4.  指望与建议

        首先感谢老师与助教这一学期以来的辛勤付出,使我在编程能力和思想上都有了很大的提高。指望的话,但愿能够明确一下教学目标,感受有些要求自己就相悖,好比说,一方面指导书并为对全部状况进行详细的要求说明,是为了锻炼你们理解自行设计的能力;而另外一方面,因为互测这种竞争机制,同窗又会在issue或是助教群中对每一种详细的状况应该如何处理进行询问,但愿获得官方的回答,以此来规范本身或是挑别人的bug。窃觉得,若是真的为了提高自行设计的能力,不如就不要在指导书已经发出之后,再进行各类要求,不然这和一开始就规定好有什么区别?还大大增长了学生与助教、助教与老师之间交流的时间成本。若是说须要进行某些硬性要求,就在一开始的时候将指导书写清楚,毕竟指导书永流传,一次修改福泽学弟学妹。

相关文章
相关标签/搜索