测试与正确性论证的效果差异及其优缺点

测试是利用测试代码,通过编写测试用例来验证代码是否能正常完成所要求的功能,自动测试相较于正确性论证来说更加的直观,直接测试代码的功能,而正确性论证是在JSF的基础上用表达式和语言梳理代码的结构并论证其功能的正确实现。

测试的优点是直观明确,缺点是通过样例测试正确性,样例的编写若是有疏失不完善,那么,测试就有疏漏。

正确性论证虽然通过自然语言论证,比较复杂冗长,但是对代码实现的逻辑做一个完整的梳理比较不容易有疏漏,但缺点,也就是复杂带来的效率下降也是一定的。

OCL

OCL是对象约束语言(Object Constriant Language)的简称,它是一种指示用户建模系统中的限制方式。它是UML可选的附加内容,可以用来更好地定义对象的行为,并为任何类元指定约束。它和JSF同样都是声明式的语言,都有前置条件、后置条件和不变式,但它不像JSF一样完全用逻辑表达式,它是有许多基本的数据类型的,且每个表达式都是有类型的。

第十四次作业

1.类图

2.顺序图

3.状态图

总结

1.知识点

第一个单元主要是一些简单的任务让我们熟悉面向对象的思想和java的使用。

有了第一个单元作为基础,第二单元便开始加大难度,学习了多线程和线程安全相关的内容。

接着第三个单元便是规格化设计,训练我们在大型工程项目的规范化开发以及合作与沟通的技巧。

第四个部分是测试,包括单元化测试以及正确性论证。

2.我在前期刚起步的时候代码都很不完善,一直挣扎到了中后期才有所好转,在最后一次作业时我重构了大部分原来的代码,整体程序结构精简很多,总的来说还是有所进步的。

3.工程化开发有参与合作人员多、代码规模大、程序健壮性要求高等特点,其中有很多难点需要用规范化的方法来解决,平时个人单机编程,可能很难体会到这些规范和方法的重要性,但实际上这些条条框框保证了开发的效率和后续维护的方便性。

4.在后期的作业中训练重点是在测试和规范,但由于前几次作业留下来的习惯,很多同学仍然会很在意指导书新增的功能,而由于训练重点不在此,指导书中对新增功能的要求往往不够规范和详细,希望可以从中找到一个平衡点。

OO第四次博客作业的更多相关文章

  1. OO第四次博客作业!

    oo第四次博客作业 一.测试与正确性论证比较 测试只是单方面片面的证明对于当前的输入程序是正确的,测试只能证明程序有错误,不能说明程序是对的. 正确性论证是程序达到预期目的的一般性陈述,是通过规范化的 ...

  2. OO第四单元博客作业

    OO第四单元博客作业 BUAA_1706_HugeGun 目录 第四单元作业架构设计 四个单元架构设计及OO方法理解 四个单元测试理解与实践演进 课程收获 一点建议 第四单元作业架构设计 ### 第十 ...

  3. OO第四次博客作业(第四单元作业及期末总结)

    (注意:本文写作顺序与作业要求不完全一致,但涵盖了作业的所有要求) 一学期的BUAA特色OO课程结束了. PART 1  我想先写我这一学期的感想 从第一单元满怀期待地写完多项式求值到最后看着60分不 ...

  4. OO第四次博客作业--第四单元总结及课程总结

    一.总结第四单元两次作业的架构设计 1.1 第一次作业 类图如下: 为了突出类.接口.方法.属性.和参数之间的层次结构关系,我为 Class 和 Interface 和 Operation 分别建立了 ...

  5. oo第四篇博客作业

    测试与正确性论证的效果差异及各自的优缺点: 测试针对一些典型的输入情况进行方法验证,可操作性更强,结果直观.但不能完全覆盖所有的输入情况. 正确性论证则是根据代码逻辑从所有的方面对方法进行论证,可操作 ...

  6. [BUAA OO]第四次博客作业

      一.      测试与正确性论证的区别 在最后一个单元的OO作业中,我们主要进行了代码的测试与正确性论证工作.这俩者在作业中的体现分别是junit单元测试以及jsf论述语言.这两者在java代码开 ...

  7. OO第三次博客作业——规格

    OO第三次博客作业——规格 一.调研结果: 规格的历史: 引自博文链接:http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世 ...

  8. OO第4次博客作业

    OO第4次博客作业 一.第4单元设计 第四单元主要围绕UML图的结构进行JAVA代码编写,对JAVA的层次结构进行更多的认识.个人认为编程操作在实质上与上一章的PathContainer有许多的相同之 ...

  9. [BUAA OO]第三次博客作业

    OO第三次博客作业 1. 规格化设计的发展 我认为,规格化设计主要源自于软件设计的两次危机.第一次是由于大量存在的goto语句,让当时被广泛应用的面向过程式的编程语言臃肿不堪,在逻辑性上与工程规模上鱼 ...

随机推荐

  1. Chain TDNN/LSTM的拼帧索引、延时

    TDNN模型示例 TDNN拼帧: 层:(0,3) 层:(-9,0) 层:(0,3) 层:(-6,0) 层:(0,3) 层:(-3,0) 层:(0,3) 层:(-3,0)     输出依赖 帧,各层需要 ...

  2. word20161226

    1. condensed 英[kən'denst]美[kənˈdɛnst]v. (使) 变稠或变浓,浓缩( condense的过去式和过去分词 ); (使) 凝结; 简说,摘要,简述;[例句]The ...

  3. 【原创】大叔问题定位分享(12)Spark保存文本类型文件(text、csv、json等)到hdfs时为什么是压缩格式的

    问题重现 rdd.repartition(1).write.csv(outPath) 写文件之后发现文件是压缩过的 write时首先会获取hadoopConf,然后从中获取是否压缩以及压缩格式 org ...

  4. 从GitHub下载demo时遇到的依赖问题

    从GitHub上使用download zip下载时,经常遇到一些依赖工程没有一起下载,如果额外手动下载,配置起来也相当费事,其实,标准的方法是使用以下命令下载这样的demo. git clone -- ...

  5. C# .Net String字符串效率提高-字符串拼接

    字符串操作是编程中非常频繁的操作,特别是在拼接字符串的时候.下面来说说字符串拼接的效率提升. 1. 减少装箱 值类型与引用类型之间的转换存在装箱与拆箱操作:将值类型转换成引用类型的操作叫装箱,将引用类 ...

  6. Python目录:

    Python基础 python书写规范--消去提示波浪线 Python 列表(list) Python字符串 Python字典 Python文件操作 Python函数 Python函数-装饰器 Pyt ...

  7. (五)Knockout template模版渲染

    基础 template绑定通过模板将数据render到页面.模板绑定对于构建嵌套结构的页面非常方便.默认情况, Knockout用的是流行的jquery.tmpl模板引擎.使用它的话,需要在安装页面下 ...

  8. 会跳高的字体插件jquery.beattext.js

    插件描述:字体特效,会弹跳的字体插件jquery.beattext.js,兼容性如下: 使用方法 导入如下3个js文件: <script type="text/javascript&q ...

  9. 【转】win10哪个版本最好用,推荐win10企业版LTSC

    https://msdn.itellyou.cn/ win10企业版LTSC又被称为win10企业版2019长期服务版本,这个版本小编认为是目前最好用的win10版本,在win10企业版2016长期服 ...

  10. MNIST数字识别问题

    摘自<Tensorflow:实战Google深度学习框架> import tensorflow as tf from tensorflow.examples.tutorials.mnist ...