OO学期总结
一、测试与正确性论证差异对比
测试,顾名思义,就是用一些有意义或无意义的输入去检测程序的正确性或鲁棒性,因其直观明了所以在写简单的程序时我们能迅速找出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学期总结的更多相关文章
- 2019年北航OO第四单元(UML任务)及学期总结
第四单元两次作业总结 第十三次作业 需求分析 本次作业需要完成一个UML类图解析器,所需要解析的只有符合UML标准和能够在Java 8中复现的UML类图.查询指令存在两种:仅与所查对象有关的指令,以及 ...
- UML系列——OO Unit4分析和学期总结
一.本单元的架构设计 1.类图 第一次 第二次 2.关键方法和架构简述 总体而言是读取图的时候就完成大部分计算(完成缓存),调用查询方法时只是展示计算的结果,少部分直接计算.主要是设计了各种自己定义的 ...
- 返璞归真——OO第四单元总结暨学期总结
本次作业是第四单元的最后一次作业,也是本学期面向对象的最后一次作业,在此我将分别对第四单元和整个学期进行总结. 一.本单元的两次作业 第四单元的作业是关于UML的一些处理.UML语言是一种区别于具体语 ...
- OO第四单元总结暨学期总结
一.第四单元作业架构设计 我们第四单元围绕UML图展开,在第四单元开始之前,本来以为我们的工作是学习如何使用UML工具,开始后才意识到我们要做的是解析UML类图.顺序图和状态图.当然,让我们解析的只是 ...
- OO第四单元总结及学期总结
目录 OO第四单元总结及学期总结 第四单元三次作业架构设计 第十三次作业 第十四次作业 第十五次作业 四个单元中架构设计及OO方法理解的演进 第一单元 第二单元 第三单元 第四单元 四个单元中测试理解 ...
- OO第四单元总结 and 学期总结
第四次单元总结 本单元架构设计总结 第一次作业:类图解析 本次作业仅仅需要实现官方的UmlInteraction接口,通过反射机制在Runner中实例化一个我们实现的类,来进行类图元素的分类解析,从而 ...
- 北航OO(2020)第四单元博客作业暨学期总结
一.第四单元架构设计 1.第一次作业 我在本次作业中设置了多个储存结构:Directory,ElementsInName,ElementsInId,Cache. Directory: 顾名思义,这是个 ...
- oo第四次博客-UML暨学期总结
一. 本单元两次作业架构设计 这两次作业实际上难度不大,不存在算法上的难题,大部分时间都是用在处理UML图中各个元素的关系上. 第一次UML主要处理UML类图.有UMLclass,UMLinterfa ...
- OO第四单元及学期总结
OO第四单元及学期总结 第四单元两次作业的架构设计 第一次作业 类图: 树形结构:使用Operation类管理UMLOperation以及parent为该UMLOperation的参数(UMLpara ...
随机推荐
- 稀疏矩阵 part 2
▶ 各种稀疏矩阵数据结构之间的转化 ● MAT ←→ CSR CSR * MATToCSR(const MAT *in) // MAT 转 CSR { checkNULL(in); CSR * out ...
- php把网络图片转Base64编码。
/** 把网络图片图片转成base64 * @param string $img 图片地址 * @return string */ /*网络图片转为base64编码*/ function imgtob ...
- Spring Boot实现文件下载功能
我们只需要创建一个控制器(Controler)文件,即Controller目录下的File_Download.java,其完整目录如下: @Controller public class File_D ...
- python大法好——Python XML解析
Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...
- java枚举变量反解析用法
最近常常有一些项目需要给枚举设值一个int值,以及对int值进行反解析出枚举类型,代码如下: public enum MatchResultEnum { /** * 赢 */ WIN(0), /** ...
- ----Androd 系统开机显示白条提示 “there is internal problem with your device, Contact your manufacture ... ”
ref: https://www.theandroidsoul.com/how-to-fix-theres-an-internal-problem-with-your-device-error-on- ...
- 让anujs支持rc-select
git clone git@github.com:react-component/select.git cd select npm i babel-plugin-antd --save-dev npm ...
- UE4 Creating 3D Widget Interaction
https://docs.unrealengine.com/en-us/Engine/UMG/HowTo/InWorldWidgetInteraction
- JSP/Servlet基础
动态网页的技术 html+css javascript(弱语言) jquery(改造) jsp(java的html) servlet(核心) S2SH:structs2 (springmvc) spr ...
- 20175213 2018-2019-2 《Java程序设计》第4周学习总结
## 教材学习内容总结 在第四周的学习过程中,我学习了第五章的内容. 第五章内容总结: 1.子类继承的方法只能操作子类继承和隐藏的成员变量. 2.子类和父类在同一包的继承性 子类自然继承了其父类中不是 ...