OO第四阶段总结

一、测试与正确性论证

理想情况下测试将覆盖所有可能的情况,并测试这些情况下的结果是否符合预期。这样做全面但工程量很大。

而正确性论证相较而言可以说是检测结果是否在预期的范围内,是一种笼统的测试但实现容易。

二、OCL与JSF

对象约束语言简称OCL,是一种指示用户建模系统中的限制方式。

OCL是一种精确的、无二义性的语言,易于使用和掌握。

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

OCL是一种纯表达式语言,它是具有没有任何副作用的声明性语言。

对OCL表达式的计算将返回一个值,计算不会改变系统的状态。

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

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

OCL与JSF都是形式化语言,用于约束对象。但OCL有变量类型还有操作,JSF仅由布尔表达式组成。

三、电梯图

类图:

流程图:

状态图:

四、总结

第一单元是单线程,主要考察面向对象的基本思想和基础语法。

第二单元着重于多线程的处理。

第三单元则是考察综合能力。

第四单元主要是代码的测试和规范化。

回过头看我这一个学期的代码,从用面向过程的思想写java到基本掌握面向对象;从一开始的一个方法100多行,有的类几乎没内容有的类上百行到最后一个方法基本控制在30行,各个类较为平均;从随缘测试到运用程序批量测试再到写测试类。

对于工程化开发与现在最大不同不仅在于代码量,最终要的是需要团队协同开发,那么这个学期所学的JSF等各种标准化方式就显得尤为重要。

对于这门课的建议,有一点我非常想提出,就是希望助教不要去对指导书的规则进行补充,可以说到后来代码都不敢早写,生怕助教发话说哪哪哪必须这么写,然后又得改。而且整个学期的代码写下来让我感觉最难受的一点就是readme和代码本身发挥的空间太少了。绝对的统一确实能减少公测与互测中可能出现的纠纷,但程序毕竟是用来给用户使用的,我认为写出易懂易用的程序(以及readme)同样是程序员需要掌握的能力之一。当然相应的就不得不简化公测,但另一方面这也可以给同学们更多互测的空间。

原文地址:https://www.cnblogs.com/mengziyu/p/9225380.html