首页 > 其他 > 详细

OO第十五次作业

时间:2018-06-24 20:18:00      阅读:183      评论:0      收藏:0      [点我收藏+]

测试与正确性论证

效果差异

测试是通过构造可能的数据集输入然后对程序的运行结果进行比较,而正确性论证是通过对代码的逻辑分析来判断是否存在异常。

优缺点

测试

优点:

  • 自由度高
  • 能通过测试很好的定位bug
  • 结果客观
  • 操作相对简单

缺点:

  • 难以对应所有的情况,数据集的构造代价很大
  • 测试难以保证整个程序的正确性,只能说明程序的一部分情况没有bug

正确性论证

优点:

  • 覆盖情况完整

缺点:

  • 操作实践较为繁琐
  • 抽象时可能会出现论证和实现所需代价相当的情况

比较

测试是黑盒而正确性论证是白盒。测试的自由度高但覆盖的情况相对较少,而正确性论证覆盖的情况全面但自由度较差。

测试和正确性论证的选择主要还是和代码的规模有关,代码量小,测试比较好,代码量大,正确性论证比较好。

OCL(Object Constraint Language)

与 JSF规格 的异同

相同

  • 均是一种约束语言。均包含不变量(不变式),前置条件(Requires),后置条件(Effects)
  • 均可与具体实现无关

不同

  • JSF中多了一个Modifies,OCL中没有对应的部分
  • JSF和OCL具体的语法(例如一些具体的符号、单词等)不同
  • OCL比JSF更完备,标准更容易实现解析

第十四次作业

类图

 

技术分享图片

技术分享图片

顺序图

 技术分享图片

 

状态图

技术分享图片

总结

四个单元模块

首先从多项式计算到傻瓜电梯,让编程从面向过程改变为面向对象。然后扩展电梯功能,引入了多线程。这一部分除了线程的操作外,还有线程的安全。除了完成规定的任务,还要考虑数据的安全。之后引入规格化设计,在程序功能逐渐完善同时,也要考虑到我们的代码能否被他人看懂,能否便于移植,所以我们更要考虑程序实现中规格的规范,通过前置条件,后置条件对调用方法进行规范,对正确性进行统一的验证。最后引入了很多自动化测试,在代码规模提升后引入程序来进行自动化的覆盖全面的测试,抽象全面的论证程序的正确性。

梳理

从第一次的面向对象的尝试开始,能够准确地设计每个模块,区分各个模块的功能。后面的自动化测试也让我了解到之前的代码有太多冗余的地方,能够进行精简。同时工程化能力也得到了提升。

工程化开发

工程化开发在一个程序代码量较大时是有必要的,对个人或是团队都有所助力。保证了统一性,能更好的维护和管理。

课程

在学习代码规格时需填写自己之前的代码这一点个人认为不太好,最好是一开始就能了解到,再按规格去编写代码。

OO第十五次作业

原文:https://www.cnblogs.com/rasalghul/p/9220995.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!