一、测试与正确性论证差异对比

测试,顾名思义,就是用一些有意义或无意义的输入去检测程序的正确性或鲁棒性,因其直观明了所以在写简单的程序时我们能迅速找出bug并加以解决。并且,这种方式是绝对客观的,只要和正确结果不匹配那么程序就一定存在一些问题。测试最大的缺点便是无法完全覆盖所有情况,即使很大的测试数据也可能跑不出来某些细微的bug,但这种bug有可能是致命的。

正确性论证则是从代码逻辑角度去分析代码,它的好处便是可以完全覆盖程序的所有情况并加以分析,只要分析不出错就能保证程序不出错,但这种方法的缺点也比较明显,需要耗费大量时间和精力去完成这一工作,并且这种方法的正确性是建立在规格正确的基础之上的,一旦规格不完善也将导致该方法出现纰漏。

总之,两种方法各有利弊,在面对复杂程序时两种方法都显得比较吃力,但若只考虑正确性,那正确性论证无疑要比测试来的可靠。但如果程序本身实现的功能不多,那么靠测试用例轰炸一番基本就不会遗留bug了。

二、OCL与JSF的异同

  OCL(对象约束语言)是一种形式化语言,它用于对设计对象进行约束,主要是在UML模型中施加于模型上的约束。OCL是一种精确的,无二义性的语言。其只是一种规范说明性语言,所有有关实现的问题都不能通过OCL来进行表达。另外,它是一种类型化语言,OCL中的每一个表达式都是具有类的。但是,不能用OCL编写程序逻辑和控制流程。

  与JSF的对比

  相似的点:

  (1) 都是一种约束语言,用于对程序的设计进行约束。

  (2) 都具有统一的标准。

  不同点:

  (1) OCL语言是精确的,没有二义性,而对于同一个程序不同人可能会写出不同的JSF。即JSF具有更大的开放性。

  (2) OCL主要是对对象进行约束,JSF的则是对类和方法进行约束。

  同样的,两者各有优缺点,没有明显的优劣之分。

三、 类图、顺序图、状态图

类图

时序图

状态图:

四.学期总结

(1).

  第一章介绍了一些JAVA语言的基本知识和简单的面向对象思想,相对后面的课程来说可以算作一个小小的过渡(虽然相比计组的初始阶段还是难上不少)。

  第二章开始了噩梦一样的多线程程序设计,从第五次作业的三电梯开始,生活对话中充斥着以“你三电梯会写吗”,“synchronized咋用”等开始的对话。正是在这一章的学习和多线程作业的编写中让我理解了多线程程序编写的困难之处(我不会再骂那些多核优化差的游戏了),但也正是这一阶段的训练加深了我对多线程和并行的理解,在程序的设计上有了很大的提高。

  第三章则在多线程程序的基础上添加了规格描述的过程,主要介绍了JSF的规范书写和程序的规格化设计,这一部分重点就开始从写程序转移到设计与规范了;

  最后,第四章着重介绍测试,包括JUNIT测试和正确性论证,重点又从规格转移到了测试。

(2).

  总体上是从0学习了一门全新的语音,刚开始的时候,是很困难,因为一点java的写法都不明白,所以第一次很吃力,但是后面慢慢适应了,感觉有些好转,多线程可以说是又一场灾难,又是一次从0开始的起步,所以第一次的多线程电梯写的很烂漏洞百出,但是后面多线程的出租车慢慢的不断优化,也算是有了一个很不错的结果,总体上是学习了一些新产品。后面就是在代码风格,规范性等等各方面的学习,了解了这些规范化的写法。

(3)

  首先是开发上的问题。开发者一定要对程序进行规格化描述,这样方便测试者对于代码的测试。另外,需要遵循一定的设计原则,使得代码的可移植性高,方便重构,否则会对之后的更新完善带来不小的麻烦。然后是测试的问题。如何对软件进行合理有效的测试也是工程化开发的重要问题。因为,一个软件的测试所需要花费的时间往往是开发的数倍。进行高效的测试便可以大大缩短工程的时间。

(4)

  oo总体上来说难度是很高的,尤其是第一次java作业和第一次多线程的作业,但是也很人性允许有几次的无效。所以若是肯花一些时间的话还是能够保证不被挂科的。若是能够在入门的时候讲的更加的详细,更加的平滑的提升难度可能会好一些吧。互测的话,可以加入一个类似隐藏分的东西吧,把那些乱胡扯的人的隐藏分降低(根据被申诉的次数判断或者别的什么)。可能现在的骂声会少一点吧。

OO学期总结的更多相关文章

  1. 2019年北航OO第四单元(UML任务)及学期总结

    第四单元两次作业总结 第十三次作业 需求分析 本次作业需要完成一个UML类图解析器,所需要解析的只有符合UML标准和能够在Java 8中复现的UML类图.查询指令存在两种:仅与所查对象有关的指令,以及 ...

  2. UML系列——OO Unit4分析和学期总结

    一.本单元的架构设计 1.类图 第一次 第二次 2.关键方法和架构简述 总体而言是读取图的时候就完成大部分计算(完成缓存),调用查询方法时只是展示计算的结果,少部分直接计算.主要是设计了各种自己定义的 ...

  3. 返璞归真——OO第四单元总结暨学期总结

    本次作业是第四单元的最后一次作业,也是本学期面向对象的最后一次作业,在此我将分别对第四单元和整个学期进行总结. 一.本单元的两次作业 第四单元的作业是关于UML的一些处理.UML语言是一种区别于具体语 ...

  4. OO第四单元总结暨学期总结

    一.第四单元作业架构设计 我们第四单元围绕UML图展开,在第四单元开始之前,本来以为我们的工作是学习如何使用UML工具,开始后才意识到我们要做的是解析UML类图.顺序图和状态图.当然,让我们解析的只是 ...

  5. OO第四单元总结及学期总结

    目录 OO第四单元总结及学期总结 第四单元三次作业架构设计 第十三次作业 第十四次作业 第十五次作业 四个单元中架构设计及OO方法理解的演进 第一单元 第二单元 第三单元 第四单元 四个单元中测试理解 ...

  6. OO第四单元总结 and 学期总结

    第四次单元总结 本单元架构设计总结 第一次作业:类图解析 本次作业仅仅需要实现官方的UmlInteraction接口,通过反射机制在Runner中实例化一个我们实现的类,来进行类图元素的分类解析,从而 ...

  7. 北航OO(2020)第四单元博客作业暨学期总结

    一.第四单元架构设计 1.第一次作业 我在本次作业中设置了多个储存结构:Directory,ElementsInName,ElementsInId,Cache. Directory: 顾名思义,这是个 ...

  8. oo第四次博客-UML暨学期总结

    一. 本单元两次作业架构设计 这两次作业实际上难度不大,不存在算法上的难题,大部分时间都是用在处理UML图中各个元素的关系上. 第一次UML主要处理UML类图.有UMLclass,UMLinterfa ...

  9. OO第四单元及学期总结

    OO第四单元及学期总结 第四单元两次作业的架构设计 第一次作业 类图: 树形结构:使用Operation类管理UMLOperation以及parent为该UMLOperation的参数(UMLpara ...

随机推荐

  1. Docker 容器操作命令

    容器是镜像的一个运行实例,镜像是静态的只读文件,而容器带有运行时需要的可写文件层.如果认为虚拟机是模拟运行的一整套操作系统(包括内核.应用运行态环境和其他系统环境)和跑在上面的应用,那么Docker容 ...

  2. 《Java开发学习大纲文档》V6.0(已经不公布了,请查看第七版)

    <Java开发大纲学习文档第六版>简介: 有需要的私聊作者QQ:253173641.

  3. MySql:SELECT 语句(六) CONCAT() 函数的使用

    一.计算字段 为什么要用计算字段? 1)想要在一个字段中既显示公司地址,又显示公司名称,但是往往这两个都不在一个字段中 2)列数据是大小写混合的,但是报表程序需要把他们全部按大写形式展示出来 3)需要 ...

  4. Jenkins+Git+Maven构建并部署springboot(构建多模块中的单个模块)

    主要思路:1.jenkins从git中拉取项目源码:jenkins使用maven构建并将生成的jar包通过shell脚本启动. 环境:环境:Centos7.Maven3.5.3.git(单机) 准备工 ...

  5. thymeleaf标签必须由匹配的结束标记终止

    问题描述 springboot使用Thymeleaf标签时会报元素类型必须由匹配的结果标记终止. 如下所示 如果我们一个个的给这些元素后面加上终止标记也是件很麻烦的事~~~~ 解决办法 方法一: 在p ...

  6. spring boot 2.0.4 Redis缓存配置

    spring boot 2 使用RedisTemplate操作redis存取对象时,需要先进行序列化操作 import org.springframework.cache.CacheManager; ...

  7. loading data into a table(亲测有效)

    一.实验要求 导入数据到数据库的表里    表内容如下: name owner species sex birth death Fluffy Harold cat f 1993-02-04   Cla ...

  8. wpf改变网格字体颜色

    1.创建个转换器 public class ColorConvertor : IValueConverter { public object Convert(object value, Type ta ...

  9. FPGA-VHDL课堂学习笔记*01

    FPGA-VHDL课堂学习笔记 记录说明:本文档主要记录大学期间,老师FPGA授课课堂笔记. 代码语言:VHDL 编程软件:MAX+plus II FPGA硬件:FLE-843 03月05日  理论课 ...

  10. Python设计模式 - UML - 组合结构图(Composite Structure Diagram)

    简介 组合结构图用来显示组合结构或部分系统的内部构造,包括类.接口.包.组件.端口和连接器等元素,是UML2.0的新增图. 组合结构图侧重复合元素的方式展示系统内部结构,包括与其他系统的交互接口和通信 ...