oo最后阶段总结

 

oo最后一次总结~

一、测试&正确性论证

    测试是从代码的执行结果的层面去考量代码的正确性,而正确性论证是从逻辑层面来检测方法使用的正确性。测试不关注于每个方法执行的逻辑正确性,更注重结果的正确性,正确性论证恰恰相反,这两点(逻辑正确性和结果正确性)在大多数时候是等同的,但是并不完全相等。

    测试的优点:能够直观的衡量代码的执行结果,从最终结果的角度修改代码,以达到代码完善性。缺点:需要构造大量测试集以涵盖所有的测试点,有时候很多方法叠加在一起,经过排列组合会有很多种情况需要考虑,这些情况都需要构造不同的测试集,较为麻烦,且极易出现疏漏。

    正确性论证的缺点:能够从方法的逻辑角度细致的验证每个方法的正确性,再上升到整个类的正确性,能够确保整个流程的正确性。缺点:通过自然语言对其进行逻辑推理论证,篇幅过大,难免也会出现错误,较难确保逻辑推理的严谨性。

二、OCL语言&JSF规格

    OCL语言:OCL语言即对象约束语言(Object Constraint Language),它是一种施加在指定的模型元素上的约束语言。OCL表达式以附加在模型元素上的条件和限制来表现该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在方法上的前置条件和后置条件等。 对象约束语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。OCL具有如下特点:
    1、OCL是一种精确的,无二义性的语言
    2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达
    3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。
    4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类型的。
    5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。

    OCL预定义的标准类型定义了一组基本类型和集合类型。OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。这些标准型是OCL表达式的组成部分。

OCL表达式对于一个OCL类型求值。OCL表达式有以下特点:
    1、OCL表达式可以附加在模型元素上,模型元素的所有实例都应该满足表达式的条件。
    2、OCL表达式可以附加在操作上。
    3、OCL表达式可以指定附加在模型元素上的监护条件。
    4、OCL表达式的计算顺序是从左到右。
    5、OCL表达式既可以使用基本类型又可以使用集合类型。

   与JSF的相似:都是对象约束语言,都有前置条件(OCL里的pre,JSF里的REQUIRES)和后置条件(OCL里的post,JSF里的EFFECTS),都是无二义性的规范说明性语言,不是程序设计语言。

   与JSF的不同:OCL具有严谨的语法结构和标准表达式,而JSF语言较放松,有时甚至可以使用自然语言进行描述。

三、基于单电梯系统的设计

类图:

时序图:

 

 

猜你喜欢

转载自www.cnblogs.com/luluzhang/p/9224378.html