测试是通过一系列的数据输入,通过对比程序跑出的结果和预期结果的异同来判断程序的执行正确。
测试的优点:操作简单,易于理解;容易直接定位bug;
测试的缺点:只能判断有问题,而不能确定程序没有问题,通过测试是无法完全确定程序是正确的;同时如果程序的代码数量巨大,构造测试程序也是非常困难的;
正确性论证是通过严密的逻辑来论证程序的正确性。
正确性论证的优点:正确性论证文档可以做到几乎全覆盖程序,同时也可以发现自己原来规格中写的不怎么全面的地方,而且还可以找到了程序结构以及逻辑上的一些不合理的地方。
正确性论证的缺点:耗时费力,代价很大,容易发生论证的错误;
OCL对象约束语言,用来进行约束定义,形式化无二义的语言。它包含的基本语言要素:类型,操作,表达式,语句。
相似点:
(1)均是约束语言,OCL和JSF均有不变式,前置条件和后置条件;
(2)都会使用一些数学逻辑表达式;
不同点:
(1)JSF有MODIFIED,而OCL没有;
(2)OCL定义了高级数据结构:群,集合,袋和序列;
(3)OCL不必要完全遵循布尔表达式,但遵循一定特定规则,有点类似与一种编程语言;
UML类图
UML顺序图
UML状态图
四个单元模块之间的知识是循序渐进的,在第一单元的学习让我们初步认识到面向对象的思想,为后面的苦战打下坚实的基础。第二单元就之间进入了多线程,说实话跨度还是有点大,尤其是之前没有没有多线程编程基础的我来说,从基础的编程直接进入多线程,很容易弄晕。前两个单元教会我们写程序,那么第三单元教会了我们如何规范的书写程序。而第四单元就是对前三单元的总结与反思,同时还要学会如何进行正确性论证。
设计上还是有一些进步的,最开始的时候我的设计非常的复杂,代码的功能是正确的,但经常会出现一个类或者一个方法里面有好几百行的代码(hhhhh),随着学习的深入,就很少出现这种冗余的类或方法了。
测试上肯定有进步啦~,不去测试是不可能啦~,这辈子都不可能不去测试,自己公测不行,互测还被扣很多,只能勉强测试别人的代码扣一些bug来维持一下生活;测试不仅能加分还很有趣,我非常喜欢测试~~~~~
质量上的进步?????????这是啥??????? 哦哦哦哦哦,经过一学期的OO课,我瘦啦。。。。。。。。
工程化开发应该要做到让别人通俗的理解你的代码,这应该是最重要的事情,因为工程化开发时是多个人互相协作开发的,所以需要让别人通俗的理解,这样还能更容易进行程序的融合和对接,这也就是规格的重要性哈。
建议开一个第二课堂类的一个缓冲期,就像计组一样有5周的缓冲期,OO的节奏有点快。。。。。
我来预测一波吧,互测得建议可能是最多的。。。。。。。。。。。。。。hhhhhhhhhhhhhhhhhh,我也建议互测改进改进。
原文:https://www.cnblogs.com/yangfenghaha/p/9216726.html