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

测试是利用测试代码,通过编写测试用例来验证代码是否能正常完成所要求的功能,自动测试相较于正确性论证来说更加的直观,直接测试代码的功能,而正确性论证是在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. RT-SA-2019-004 Cisco RV320 Unauthenticated Diagnostic DataRetrieval

    Advisory: Cisco RV320 Unauthenticated Diagnostic Data Retrieval RedTeam Pentesting discovered that t ...

  2. 基于scrapy-redis分布式爬虫的部署

    redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls ...

  3. Windows 快捷键总结

    一.日常用法 1.Win + R 运行命令窗,cmd等必备,令人进入注册表,也需要通过运行命令窗,如注册表示运行 Regedit 命令,组策略使用 gpedit.msc 命令等. 2.Win + E ...

  4. 【原创】大叔问题定位分享(1)HBase RegionServer频繁挂掉

    最近hbase集群很多region server挂掉,查看其中一个RegionServer1日志发现,17:17:14挂的时候服务器压力很大,有大量的responseTooSlow,也有不少gc,但是 ...

  5. nginx+iis使用

    一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 Nginx相关地址 源码:http ...

  6. java中对象的创建过程

    public class Test1 { public static void main(String[] args) { new B(); System.out.println("---- ...

  7. Excel 恢复默认行高、列宽

    操作系统:Windows 10 x64 工具1:Excel 乱糟糟的! 选中需要调整的区域,选择菜单:开始 > 格式 > 自动调整行高 选中需要调整的区域,选择菜单:开始 > 格式 ...

  8. 金蝶k/3 现金流量表编制口诀

    现金流量表编制口诀 现金流量表是会计考试中十分令人头疼的内容,丢三落四是现金流量表编制中最容易出现的错误.下面的口诀基本上概括了现金流量表的全部编制过程.口诀的具体内容如何理解,我们在口诀后边详细阐述 ...

  9. spring boot vuejs

    项目介绍 Spring Boot 2.0 + VueJs 2.0 开发项目示例 GitHub: https://github.com/fqybzhangji/spring-boot-vue 码云: h ...

  10. 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...