首页 > 其他 > 详细

OO第四次作业总结

时间:2018-06-25 00:45:26      阅读:189      评论:0      收藏:0      [点我收藏+]

一、测试与正确性论证效果差异

测试主要是为了检测出程序存在的bug,在此过程中,测试者通过将特意选出的一批数据输入到程序中运行,检查每个输入的数据所对应的输出是否符合预期要求。

而正确性论证是论证程序设计达到预期目标的陈述,这种论证与特殊的输入数据无关,而是关心不同输入的类型,可以视为穷举性测试。

因此,测试不需要关心程序的内部逻辑,仅关心程序是否对输入给出之前的输出结果,属于“黑盒测试”;而正确性论证则是从代码逻辑层面进行分析,可以达到测试所达不到的穷举性测试,偏向“白盒测试”。

二、OCL语言

OCL指对象约束语言,它是一种形式化语言,主要用于表示UML模型中施加于模型上的约束。OCL具有以下的几个特点:

1)      OCL是一种精确的、无二义性的语言。

2)      OCL是规范说明性语言,所有有关实现的问题都不能用OCL表达。

3)      OCL是一种纯表达式语言,是具有没有任何副作用的申明性语言。

4)      OCL是一种类型化语言,即OCL每个表达式都是具有类型的。

5)      OCL不是程序设计语言,不能用OCL编写程序逻辑和控制流程。

 

与JSF的共同点:

1)      都具有不变式概念。

2)      都有前置与后置条件的声明。

3)      都能通过布尔表达式形式表达。

 

与JSF的不同点:

1)      JSF前置条件、后置条件的声明关键字分别是REQUIRES、EFFECTS,OCL 前置、后置条件的声明关键字分别是pre、post。

2)      相比JSF规格,OCL具有监护条件这一约束,其指的是在对象能从一种状态转变为另一种状态前其值必须为真的约束。

三、UML图

类图

技术分享图片

 

顺序图

技术分享图片

状态图

技术分享图片

四、总结

4.1 四个单元模块知识点关系

第一单元的作业分别是多项式和两次电梯调度,这一单元的作业主要目的是为了让我们能先适应下java的面向对象思想以及基础语法,为后面的作业打下一定的基础。

第二单元的作业是多线程电梯、ifttt和出租车作业。这个单元训练的是线程设计,让我们对于程序设计中线程的概念有着更加深刻的理解,同时当然也是最痛苦难熬的一个单元。

第三单元是三次出租车作业,均是不断的在前几次出租车作业中加入新的功能,并且完成程序规格的撰写。这个单元的作业中,每次增加的功能实现不会太难,但是规格的撰写方面开始时却总是会由于不熟悉而使用自然语言描述。

最后一个单元是针对程序的测试展开,用不同的方式对自己程序的正确性进行测试以及论证。

从上可以看出,四个单元主要是从程序的基础编写、线程机制的引入、规格化设计、测试的顺序展开的,展现出一个设计出一个正确的、符合规格的程序的必要基础。

 

4.2 设计、测试、质量上的进步

从刚开始接触java时将所有方法全塞在一个Main方法,到将方法分开但却仍然塞在一个java文件中,且大部分代码仍然集中在某个或某几个方法中,最后到能较好将程序各部分功能分配给各个类、各个方法,确实从课程中学到了(当然也可能与课程的高压训练有关系,毕竟有互测)。对于面向对象编程、多线程编程这种以前未接触过的编程思想,也更为熟悉。

 

4.3 工程化开发

根据这一学期的OO课程来看,工程化开发应该主要是以下步骤:

1.需求分析:在OO课程中就是了解指导书的内容,分析其中对于作业各方面的要求与规定,不过这个过程也是会经常发生理解出现歧义的情况。

2.设计:在了解了指导书对于程序的具体要求后,需要对自己的程序进行设计,比如程序的运行流程、需要实现的类、每个类需要实现的方法以及调用的数据结构等。

3. 编程:最主要的部分当然还是编程了。对于自己之前完成的设计方案,编写出一个符合自己设计的程序、

4.测试:程序的编写往往都不可能一次成功,必然会出现这样那样的bug,而这时候需要的就是测试。而互测最糟心的也是这一点了,所以你必须最大程度的保证自己程序的正确性,因此往往都需要反复的进行测试这一步骤。

5.软件完成:当你最终完成了测试并提交你心目中的无bug代码前,还需要进行最后一步:写readme。这一步骤是为了让你的用户(互测者)明白你的程序有什么功能,运行时对输入有什么要求,输出信息包含什么内容等等信息,避免用户不了解程序约束或者使用方法的情况出现。

OO第四次作业总结

原文:https://www.cnblogs.com/98-0901/p/9222174.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!