首页 > 技术文章 > OO第四次总结

buaaguzhanpeng 2018-06-24 23:39 原文

测试与正确性论证的效果差异

  • 测试就是利用正确的数据集去对比自己程序的输出,我们写程序,大部分时间都是用测试来验证自己程序的正确性,测试简单方便,直接就能很快地构造出一两组测试数据来进行相应地测试。一般能够直接找到程序中存在的低级错误,但是测试需要用大量的数据来达到覆盖率等保证程序不出错。
  • 正确性论证能够保证论证程序的正确,通过逻辑来对程序进行相应的论证,可信度高而且严密度好。但是需要在正确性论证上花费较多的时间,论证起来难度较大。

OCL语言与JSF规格的比较

  • OCL是基于数学的,但没有使用数学符号,OCL是强类型的,声明式的语言,所以与JSF语言相比较,OCL更加规范,更容易判断正确与否
  • OCL的类型与框架与JSF相似
    • 1)不变量是在属性的生命期内一直保持为真的规则。
    • 2)前置条件是在一个操作被调用时必须为真的约束。它是一个断言,不是可执行语句。
    • 3)后置条件就是在操作完成时必须为真的约束。它不是可执行语句而是断言,必须为真。
    • 4)监护规则是在对象能够从一种状态转变为另一种状态前其值必须为真的约束。

类图

时序图

状态图

整理

  • 四个单元模块之间的关系
    • 第一个单元介绍了面向对象的基础如继承,多态等,为之后构建复杂的系统打下基础
    • 第二单元为复杂的多线程程序设计,在第一个单元之上加深了对编码的要求
    • 第三单元引入规格化设计,为规范编码打下基础
    • 第四单元为正确性论证,让我们加深了对程序正确性的理解
  • 工程化开发,加深了对作业进行模块化设计,对各个模块进行模块化测试等相关内容的认识
  • 课程建议,建议减轻同学的负担,学到的东西可能没有老师们想象得那么多

推荐阅读