oo第四次博客总结

1.论述测试与正确性论证的效果差异,比较其优缺点

  测试:通过大量测试样例覆盖测试代码,来检测代码功能的实现是否确是否完善。测试一个程序的正常输入比较容易,但难点就在于大量的非法输入,测试只能发现bug,却不能保证程序正确。正确性论证:通过对代码规格和逻辑的严密分析,推论和证明,来验证代码实现的正确性。所以如果分析论证正确的话,就能保证程序的正确性,但由于正确性论证是形式论证和自然语言层次逻辑的结合,而自然语言的正确性也难以保证,这就导致正确性论证也会出现错误,而无法保证程序正确性。所以在工程中,这两者通常是结合使用的。

2.调研OCL语言,并比较其与课程所介绍的JSF规格之间的相似和不同之处

  OCL(object constraint language)是对象约束语言,它是一种用于施加在指定的模型元素上约束的语言。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。

  OCL具有如下特点: 

      1、OCL是一种精确的,无二义性的语言 

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

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

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

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

  相同点:都是形式化的约束语言,在程序中进行无二义的逻辑约束。都有同样的前置条件,后置条件和不变式。

  不同点:约束的时间不同:OCL主要是在写程序前理论建模的时候,对每个类进行约束,JSF则主要在代码功能实现前,对每个类进行约束。表达的不同:JSF主要使用逻辑表达式,自然语言使用的少。OCL的表达式和数据都有基本类型。

3.根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和 请求,至少整理出 一幅UML类图、一幅顺序图和一幅状态图,并使用 图(graph)来表示出模型

  第十四次作业没有提交,所以不做整理。

4.整理总结一个学期所学所练

  4.1阐述四个单元模块知识点之间的关系

          第一单元 Java和面向对象基本概念入门

          第二单元 多线程程序设计入门

          第三单元 规格化设计

          第四单元 测试与论证

  4.2梳理自己所设计实现的程序,分析自己在设计、测试和质量上的进步

    可能最大的进步便是弄明白了多线程,以及了解到了一个好的代码风格和代码注释有多么重要吧,如果一个代码只是一次作业,我可能就不会很重视代码风格,但如果一个程序需要很多次完善与维护,那么代码风格以及注释就很有必要了,因为你可能需要几星        期后还是能一眼看懂自己的代码,以及修改过代码后会产生什么样的问题。

  4.3阐述自己对工程化开发的理解

          规格化设计很重要,一个方法或者一个类,如果你能确保其正确,那么在维护以及修改代码时将轻松很多。此外在多人的工程式开发中,每个人相互协调也会因为这种规格化而轻松许多。

  4.4对课程的任何期望或建议

       我觉得课程挺好的,就是有点累。

posted on 2018-06-25 17:33  16061008  阅读(132)  评论(0编辑  收藏  举报

导航