导航

OO第四次博客

Posted on 2018-06-24 20:38  shawnco  阅读(102)  评论(0编辑  收藏  举报

测试与正确性论证比较

 

  测试是通过考虑多种情况构造尽可能全面的测试用例,对程序的执行结果进行检查,自由度较高,但是难以保证全面覆盖。

  正确性论证则是从代码逻辑的角度检查实现逻辑和规格的一致性,抽象程度高,具有一定难度,但是可以保证较高的覆盖率。

OCL语言调研以及比较

 

  对象约束语言OCL(object constraint language)是一种用来进行约束定义的,形式化的无二义的语言。OCL于1995年有Wamer等人在IBM设计成功并开始使用,它作为图形符号的补充,能够说明建模元素的有关细节,比如约束、前置条件、后置条件等。作为申明性语言,它不会改变模型中的内容,作为形式化语言,其基本语言要素包括类型、操作、表达式、语句,其中类型又分为基本类型和高级类型。

  OCL和JSF相似之处:

    1.都是形式语言,不会改变模型的内容。

    2.都是不具有二义性的精确语言。

    3.都是程序设计上的约束。

  OCL和JSF不同之处:

    1.OCL约束范围更大,表达能力更强,但是不如JSF轻便。

    2.JSF表达能力不如OCL,但是更加轻量化。

第十四次作业UML图

 

  1)UML类图

  

 

  2)顺序图

  

  3)状态图

  

 

学期总结

   1)从单线程到多线程,从规格设计到正确性论证,四个单元的学习是循序渐进的。

   2)由于对java程序设计完全没有了解,前几次的作业都是沿用了C语言的过程式程序设计思想,把所有代码写在一个public类中,不符合面向对象的程序设计思想,未能封装数据,随着后来的学习,我能够根据功能进行类的划分并封装好各个类的数据,并掌握了通过自动化测试以及正确性论证对程序进行测试的能力,代码也从一开始的多层分支语句嵌套变得更加思路清晰,总之,在这一学期的学习过程中,我受益颇多,编程能力得到了很大的锻炼。

   3)在工程开发中,由于涉及团队内多人的协作,规范性就显得十分重要,只有团队内开发者拥有了统一的标准,才能保证代码的易读性和降低维护的难度。

   4)在互测中,恶意测试者的存在给大家都带来了困扰,希望课程组提供举报恶意测试者的功能并对恶意测试者进行一定的惩罚,尽量维护一个健康的互测环境。