Mr.Z  

 OO第四次博客总结

一、测试与正确性论证

两者都旨在发现程序中的BUG,同时更深刻的理解程序的执行过程;但是其效果对比各有优缺点。

测试:

  优点:可以更加具体的理解程序的执行过程,对于一些不易通过单纯思考得出结论的情况,测试可以直观的看出其存在的问题或者可能疏漏的情况;

  缺点:很可能无法涵盖全部的情况,对于某部分代码,可能由于分支太多仅能通过大部分情况而不是全部情况来判断其正确性。

正确性论证:

  优点:可以比较全面的分析到所有的情况;

  缺点:过于理想化,从某种程度上来说,正确性论证就相当于通过看代码的方式来debug,这种方式很多时候仅仅能发现比较明显的错误,但是在实际情况中可能大部分人的情况是看似代码已经没有问题,但是进行测试时却无法出现预期的结果,只能通过调试的方法发现具体问题所在,所以正确性论证在某些时候可能无法发挥其作用起到事倍功半的效果。

二、OCL语言调研

OCL(Object Constraint Language)语言,即对象约束语言,作为图形符号(UML)的补充,由于UML图一般缺乏与规范相关的描述,导致使用自然语言产生歧义。由此发明OCL语言,对建模元素的有关细节进行说明,它是一种用于施加在指定的模型元素上约束的语言。

相同点:

(1)都有不变式,前置条件,后置条件;

(2)都只关心方法或对象在运行前后的属性状态,不关心具体的实现过程。

不同:

1)OCL语言可以对类,类的属性和操作等等任意的进行约束,而JSF仅针对类和方法。

2)JSF是一种轻量化的语言,但是描述能力尚显不足;OCL结构较为复杂,但是描述能力较强;

三、UML类图

四、顺序图

 

五、状态图

六、学期总结

  四个单元模块:Java基础、多线程和线程安全设计、抽象与规格、测试与论证。四个模块相互关联循序渐进,最开始由于很多同学基础较弱,所以先进行Java基础模块的学习;有了一定的基础之后通过多线程的学习进一步熟悉java编程和多线程的概念;然后为了让大家理解和掌握工程化编程的方法引入规格;最后是测试测试和论证的系统学习。

  一个学习的OO学习总算是结束,从一开始的java编程小白一步步走到现在,付出了很多,也收获了很多,过程中有惊喜有沮丧,当然也少不了一些埋怨,对于课程体系的看法,虽说其中缺陷不少,效率不高,同学花费了太多的精力和时间但是总感觉事倍功半,但是实事求是的说,可能目前暂时无法发现更加合适的方法来替代这样的规则,互测的一些要求可能确实带来一些负面的影响,但是我们也还是需要肯定这其中我们所收获的技能。更加乐观的来说,有时当大家因为互测愤怒或是埋怨的时候,是不是也可能换一个角度,这样的事经历一遍,以后在其他情况碰壁的时候,是不是也可以慢慢学会淡然处之了。当然这是比较乐观的说法,

  还是希望课程组能对互测做出一些实质的改进,我觉得最重要的一点是:一门课尽管辛苦,但是它应该让人在付出之后感觉到自己的付出是值得,在获悉结果的时候,达到预期的同学感到欣喜,能有成就感,没有达到预期的同学尽管沮丧却会觉得自己仍然需要努力。然而很可惜,OO课目前的现状却完全不满足这一点,概括一下就是负能量满满,我觉得对一门课程来说这一点是很可悲的,所以希望互测环节可以有更高的信服力,更高的效率,不至于让同学感觉收获完全无法匹配付出,结果无法给出一个让人信服的标准。

  仍然感谢老师和助教的付出,祝OO课越来越完善优秀。

posted on 2018-06-25 15:57  J.J.Z  阅读(110)  评论(0编辑  收藏  举报