OO第四次博客作业

持续了一个学期的OO课程已经接近了尾声,写完这次博客作业。就算是彻底和OO说再见了,诚实的讲,虽然OO的课程设置存在这样那样的问题,但是我这学期还是有所收获。还是要感谢一下辛苦付出的老师与助教们。但是就像我说的那样,课程的设置还是存在一些小瑕疵的,我会在最后的总结环节简单写一下。下面先来完成博客任务。

一、测试与正确性论述

1、测试与正确性论述的效果差异

测试是测试者设计各种组合的输入,来尽可能覆盖到程序运行中的各种情况,再根据程序的实际输出与标准输出的差异判断程序中存在的问题;而正确性论证则是对程序整体代码之间的关系,逻辑的正确以及组件的齐全性做的全面性检测。

根据上文对两者的描述不难看出,在都掌握了基本的相关知识与技术的前提下,测试的正确性更与测试者的测试严密程度以及其设置测试用例的逻辑性有关。其所能达到的最好效果,也不一定可以将程序中所有的问题挑出。而正确性论述,因为其要求使用者按照相应的步骤准确完成,一般可以达到较好的效果。

2、测试与正确性论述的优缺点

测试

优点:

容易构造与进行;

能在较短的时间内,取得较好的效果;

缺点:

很难覆盖整个代码,将覆盖率提升到较高水平代价较大;

正确性论述

优点:

对程序的覆盖率较高;

缺点:

代码规模较大的程序,实现代价较高;

二、OCL语言

1、何为OCL语言

 

 

对象约束语言简称OCL,它是一种用于施加在指定的模型元素上约束的语言。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在元素模型上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。

2、与JSF异同

相同点:

两者都可以描述对象及行为的限制;

都使用数学的逻辑描述;

不同点:

OCL语言更加完善,比JSF使用更加广泛;

OCL介于自然语言与逻辑语言之间,比JSF表达性强;

三、第十四次作业分析

1、UML类图

2、顺序图

3、状态图

 四、学期总结

1、四个单元模块知识点之间的关系

个人感觉本学期的面向对象教程的四部分应该划分为:Java基础知识以及面向对象思想的初步介绍;多线程模块;规格与文档;测试与正确性论述。其间的关系不言而喻,就是前面就是在为后面打基础,不管是前面学到的知识还是前面的作业内容都是在为后面的进一步深入做准备。

2、梳理设计以及分析

梳理这学期所有面向对象课程中编写的程序可是个大工程,何况有些之前写的程序的细节已经遗忘了。但是分析自己在设计,测试和质量上的变化还是相对容易的。

设计当然是随着课程的推荐越来越好了,从一开始的面向过程式的设计到初步具有了面向对象的设计思路。课程初期的设计停留在程序的逻辑如何实现,而到之后的先分析需要那些类,把程序的功能划分成块。尽可能的不重叠,减少每个方法的当量以及整个程序类的数量。设计上的进步还是明显的。

测试上也有长足的进步,从一开始的简单分类然后就构建用例测试。到后来的在编写是就想好那里容易出问题,提前设计测试用例。虽然不知道这是否是最科学的设计测试用例的方法,但是测试效果上的提升是可以看到的。

代码质量,随着知识摄入的增加,代码的风格和质量当然会提高。但是我本人还是有一个需要修改的问题的,就是当进行到最后几次作业的时候,代码的简洁程度与质量似乎停滞不前,可能是设计思想没有提升到较高的水准吧。而且还要反思一下,后面的有一、两次作业因为心态有些放松的原因,没有将代码质量完善的特别完美,也是一个小小的遗憾。

3、工程化开发的理解

个人感觉工程化开发就是一种系统的、标准的开发方式,即在进行正式的开发之前,先统一标准合理规划与分工。然后再进行开发,是一种科学的开发方式,虽然在我们现在的开发工程中,还很少能体会到那种明显的特点。也可能是我本人做的大项目比较少吧。

4、对课程的期望与建议

虽然平时不少吐槽,但是感觉面向对象这门课程还是可以学一些东西的,至少逼我们快速掌握了Java以及面向对象的基本思想。但付出的时间与生命的代价也是巨大的。可能是因为我是高工的原因,之前没有接触过Java的先修课程,课程开始时还是很吃力的。在基础知识掌握不全的情况下编写程序,就会出现很多低级的实现方法,耗时且效率低。而且不光是课程开始之时,之后的某些时段也会出现同样的问题。据我所知,这并不是我的个人情况。

所以建议是,开课前先了解一下大家的整体情况,并设置适当的Java课程,让大家一开始不要消耗大量的时间到Java学习上,这样大家可以有更多的时间深入了解面向对象的相关知识和设计方法。

总结就写到这里吧,最后一次作业了,也该去补一补因为学OO而拉下的别的科目了。

posted @ 2018-06-25 17:08  A_47  阅读(84)  评论(0编辑  收藏  举报