一、论述测试与正确性论证的差异

  我认为论述测试代表从理论的角度来进行运行正确性的判断,而正确性测试则是从实践的角度来看待程序的正确性问题。两者之间有着明显的差异。

正确性论证是仅仅从代码的逻辑结构方面来分析代码实现的正确性,这需要测试者对于被测试程序结构以及其要实现的功能的充分了解,这对于一个素昧平生的测试者来说可能是很难的。但是从另一方面来说,如果测试通过就能保证程序在逻辑方面是完全可靠的。

而论述测试更多的是从实际出发,有对整体功能实现的测试,也可以对单个方法测试,这种方法有相当大的灵活性,但是却不能保证代码实现的正确性。

二、JSF与OCL异同

  两者都是采用前置条件与后置条件,对于方法实现的过程不给予太多的关注。同时两者都是要求前置后置条件的描述必须使用数理化逻辑,这也出现了许多数理化逻辑难以描述的困难。

不同的是JSF还要求对于modified的描述,便于更好的对方法内部改变的成员变量的监控。

三、

状态图:

类图:

顺序图:

四、总结

  这个学期在我看来是非常充实的,OO这门课程让我学会了很多东西,首先java这门编程语言的使用自然是不用多说,最重要的是面向对象思想,以及如何将这种思想体现在自己的代码上,回顾自己第一次的代码,确实还是没有摆脱大一时候的面向过程编程思想,虽说也分了几个类,大不过是敷衍了事,并没有理解其中的奥秘,就好像一个裸身,没有任何的修饰。随着课程的深入,线程并发执行,程序的规格,正确性论证等等,也是为了能让我们养成良好的编程习惯,减少程序的错误,自己的程序也开始渐渐换上了衣裳,成员变量的保护,方法的缩减,逻辑的清晰,虽然还远远未及工程上的要求,但是不管怎么说还是有很大的进步,从一开始连java都不会,慢慢会写规格了,真开心!?

  课程的安排还是很合理的,第一单元讲设计,设计是一个程序实现的基础,良好的设计是后面所有过程能够完成执行的基础,第二单元开始线程并发,这几次作业难度还是很大的,不仅是类里面的良好设计,同样重要的是线程之间同步与互斥,做好了同步才能保证对于共享区域的读写不会出现问题。再到后面的规格,正确性论证,都是为了规范化我们的代码,为了能让他人更好的理解我们的代码。

  所谓工程化开发,我认为是一种在实际开发中经常用到方式,工程化开发有几个很明显的特点,包括代码的可读性,可延展性等等,这些都是为代码的合作做准备,因为工程化开发不可能所有的事情都由一个人来完成,所以当一个人在编写程序的时候,不仅仅只需要考虑自己代码的功能完整性,还需要考虑自己的代码的可读性,对其他程序员是否友好,合作与发展是当今社会的主题,这同样也体现在了工程化开发之中。

  对于课程组的建议就是是否能够将课业负担分配的都平均点,就是希望每次作业都像多线程电梯那么难,的工作量平均分配,对于前几个班他们周三要上课,碰巧前部分的作业更难,所以经常熬夜,对身体不好。

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

  1. 【OO学习】OO第四单元作业总结及OO课程总结

    [OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...

  2. oo第四单元作业总结暨课程总结

    oo第四单元作业总结暨课程总结 一.本单元作业架构设计 本单元需要构建一个UML解析器,通过对输入的UML类图/顺序图/状态图的相关信息进行解析以供查询,其中课程组已提供输入整体架构及输入解析部分,仅 ...

  3. OO第四单元作业总结以及课程总结

    第四单元总结--UML 第四单元作业架构分析 第一次作业其实是本单元三次作业中最难的一次.由于第一次是第一次作业,要考虑到搭建框架和设计架构,这次作业的思维性很强.在了解了各个类型元素(Element ...

  4. UML结构与解析——BUAA OO第四单元作业总结

    UML与解析架构 UML是什么 统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编 ...

  5. OO第四单元作业小结

    一.本单元两次作业的架构设计 1.第一次作业 整体思路:以class为核心,建立MyInterface.MyAttribute.MyOperation.MyAssociation四个类分别储存每个类的 ...

  6. 北航OO第四单元作业总结(4.1~4.3)及课程总结

    前言 在学习过JML规格描述语言之后,本单元进行了UML(Unified Modeling Language)的学习.和JML单纯用语言描述的形式不同,UML通过可视化的图形形式,对一系列有关类的元素 ...

  7. OO第四单元作业总结及课程总结

    一.本单元作业架构设计 1.第一次作业 本单元首次接触到UML以及相关概念,在面对第一次作业时首先花了很大功夫去阅读官方接口中各种UmlElement的代码,才理解了输入的模型元素中各属性的含义.总的 ...

  8. OO第四次作业总结

    一:测试与正确性论证的效果差异 首先,测试和正确性论证都是对程序的可靠与否,是否有误进行测试,从整体上来看,测试多偏向于实践,而正确性论证则大多偏向于理论. 测试:测试首先是构造一组测试样例,之后将程 ...

  9. oo第四单元作业总结

    一.本单元两次作业的架构: 本单元两次作业的架构基本是一致的,所以两次作业的架构就一起说了. 为了避免查询时出现同一个结果反复计算的情况(连续两次查询一个类的顶级父类,如果我们在查询的指令中来计算其父 ...

随机推荐

  1. c#格林治时间实现

    C#时间戳的简单实现   Introduction: 在项目开发中,我们都经常会用到时间戳来进行时间的存储和传递,最常用的Unix时间戳(TimeStamp)是指格林尼治时间1970年1月1日0时(北 ...

  2. 人脸识别-arcface损失函数

    参考博客: L-margin softmax loss:https://blog.csdn.net/u014380165/article/details/76864572 A-softmax loss ...

  3. CF #552(div3)G 最小lcm

    题目链接:http://codeforces.com/contest/1154/problem/G 题意:lcm是最小公倍数,本题就是给你一个数组(可能会重复),要求你判断出那两个数的最小公倍数最小, ...

  4. Cmake时 如何在windows命令行 选择vs版本

    本人电脑装了VS2017 和 VS2013版本.可能时VS2017安装的时间早,每次cmake文件时优先选择编译成VS2017的文件 可通过查看VS2013的版本,使用 cmake ../pcl-su ...

  5. php 根据输入的参数,获取上季度最后一个月的时间

    public function getTime( $time ='2017-06-01 00:00:00'){ $month = date('m',strtotime($time)); $season ...

  6. 为二级域名注册ssl证书,并强制使用https对http进行跳转

    服务器上仍然使用nginx进行代理 1.为二级域名申请ssl证书,如blog.yourdomain.com,见前文. 2.在域名解析服务中,为二级域名添加解析记录 3.nginx默认读取/etc/ng ...

  7. nodejs和mongodb常见的小错误

    1.直接使用nodejs会遇到以下问题: module.js:340    throw err;         ^Error: Cannot find module 'mongodb' 解决方式如下 ...

  8. Python OS模块常用

    python 读写.创建 文件 第二个:目录操作-增删改查 第三个:判断 第四个:PATH 第四个:os.mknod 创建文件(不是目录) import os os.chdir("/&quo ...

  9. 安装vue 教程

    安装教程:https://www.cnblogs.com/zhaomeizi/p/8483597.html

  10. .net core webapi 使用ValidationAttribute对比同一对象的多个参数

    众所周知,在使用DataAnnotations数据验证的时候,特别是针对同一个InputDto的多个属性进行对比的时候,例如起始日期不能大于结束日期,我们需要在Attribute中知道当前InputD ...