OO作业总结——Final

一、测试与正确性论证

 

       程序测试是指测试者挑选输入数据,通过运行程序,检查每个输入数据所对应的运行结果是否符合预期要求。正确性论证是论证程序达到预期目的的一般性陈述,而该论证不与程序输入数据的特定值有关,但能够代表穷举性测试。 

       程序测试的优点是便于实施容易发现软件存在的大多数问题,但是测试不是一个完备的方法。测试被认为是一种尽量发现错误,但并不能保证程序中没有错误的方法。对大数应用来讲,它是可满足的;但对有些应用来讲,测试是一种不能满足的验证方法。测试只能证明程序有错,而不能证明程序正确。对于正确性论证,优点在于提高了验证的正确性有效性,可以实现测试不具备的完备性它确实是保证软件绝对正确的唯一途径,但是缺点在于相比测试工程量要大很多,而且对于论证的每一步都有严格的正确性要求。软件的正确性要建立在论证的绝对正确性之上,这就又提高了对论证的要求。

 

二、OCL语言

 

       对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的无二义性形式化语言。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量约束或约束的表达式、附加在操作和方法上的前置条件和后置条件等。OCL的产生是为了解决约束表达的问题,最初由IBM公司设计成功。OCL已经为标准化组织OMG所接受,成为了UML标准的一部分。

      OCL与JSF的共同点是,都是无二义性的表达式语言。OCL的不变量约束、前置条件、后置条件分别对应着JSF语言的repOK、REQUIRES、EFFECTS。OCL与JSF都是程序设计语言,不用于编写逻辑控制和流程控制。不同点在于OCL主要用于约束应该去做"什么",构建精确域模型,主要用于设计阶段。而JSF主要用于对方法实现的约束,保证方法实现层面而不是模型层面的正确性。

 

三、单电梯系统模型

 

类图

 

顺序图

状态图

 四、学期总结

 

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

 

       第一单元主要帮助我们入门Java,锻炼基础编程能力,完成从小白到初学者的转变。让我们初步了解面向对象的编程思维,了解一定的编程原则比如对象数据封装、对象独立性等。第二单元则开始学习线程知识,开始用多线程实现功能,这一单元的重点还是放在了如何保证多线程运行模式下的正确性,如何保证性能与数据安全。我们学习了线程安全的实现,了解了其重要性。第三单元引入规格这一概念,我们编写程序开始规格化规范化,这一单元我们主要学习如何规范设计如何写出可读性高、可维护性高的代码。第四单元的重点是测试,这一单元我们学习如何尽可能完备地测试一份代码,以及如何以正确性论证的方法验证代码的正确性。

       总体来看,第一单元的基本功锻炼是其他几个单元编程的基础,第二单元则是基于第一单元能力锻炼的加强,第三单元则是对代码的打磨雕琢,不仅停留在正确性的层面,第四单元则是从测试者的角度锻炼编程能力,学习如何完备代码以及如何去测试一份代码。

 

2、程序分析

 

       第一次单电梯作业中自己暴露出许多问题,代码臃肿,功能耦合度太高,类的功能分配不平衡等。这些也是贯穿很多次作业的主要问题,在后来的学习中这些问题得到了很大的改进,SOLID原则对自身代码质量的提高有很大帮助,自己也对功能抽象有了进一步的掌握。学习了规格化设计后,自身代码的规范性有了进一步的提高。关于测试,从规格层次发现代码的逻辑问题,减少了很多测试时间。

 

3、对工程化开发的理解

 

       以前我们学习Python、C时写代码只求功能的正确性而不去关注代码的健壮性可维护性等,之前忽略的很多要素都是工程化开发之中的关键。工程化开发中,我们不再只关注正确性,同时也关注代码的规范性、可读性、可维护性等,还要了解测试相关。工程化开发中不是只有自己,要确保自己写出的代码在完成功能要求的同时让别人容易读懂,这也正是规格化设计的重要性体现,除此之外代码可维护性要高,这一点体现在增量式作业设计中,如果设计优秀下一次作业可能改动少部分代码就可以完成要求,工程的维护更新与这一点要求密不可分。

 

4、期望与建议

1)希望指导书能更加完善,尽量不要每次发布之后新增很多需求。

2)对于互测环节建议增加对误报bug的惩罚制度,即如果报的bug被别人申诉成功,会扣除测试者一定的分数。

3)增加素质指标,对于恶意扣分的测试者每次认定的恶意扣分都会降低素质分数,这个指标作为期末总评分数的参考标准。

 

 

 

----------------------------------------------------------------------------

       最后还是要向折磨了自己一个学期的OO说声再见了,希望以后的学弟学妹们可以在学到很多有用的知识的同时,少受一些摧残。

       再次向这个学期帮助过自己的朋友们表达感谢,感谢有你们的帮助才让本咸鱼能挣扎着走过来,感谢这么多次作业的很多非常nice非常通情达理的测试者。

posted @ 2018-06-25 16:40  CCrain_123  阅读(202)  评论(0编辑  收藏  举报