面向对象第四次博客作业

面向对象第三次博客作业

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

上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。

程序正确性理论是程序设计理论的一个重要组成部分.研究如何使用程序设计语言编制程序,以正确实现预定的目标.程序正确性理论提出编制正确程序的两种途径一种称为程序验证,研究如何使用数学推理来严格论证程序是否符合其目标.另一种称为程序综合,研究如何由给定目标出发,逐步构造一个在计算机系统上可运行的程序,而且要求构造过程的每一步都是严格保持正确无误的.在保证正确性的前提下,为提高程序运算效率而实现的程序之间的转换,称为程序变形,也是程序正确性理论的一个重要内容.程序综合和程序变形是自动程序设计的理论基础。

测试更加偏向实践,在实践中体验软件的效果,来发现软件的问题,一般情况下测试很难覆盖所有情况,只能保证软件大致正确;正确性论证更偏向理论,通过数学方法证明程序的正确性,可以覆盖,但是较为繁琐。

二、 OCL语言

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

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

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

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

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

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

比较:

OCL语言是精确的,没有二义性,而一般情况我们很难用布尔表达式描述程序,所以JSF不是精确的,即不同的人可能写出不同的JSF。

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

四、 整理

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

第一单元主要学习基础知识,为之后的学习打下基础,第二单元开始接触多线程,开始了解线程安全和交互问题, 第三个单元则要求我们在更高的层次上看待问题,从整体来设计,来规划,做到先规划再实现,第四个单元是实现之后的工作,主要为测试、论证等等。

2、在程序上的进步

学会了多线程的交互和线程安全的保证。

3、工程化开发

工程化开发注重设计,保证耦合度第才能分配任务,像上学期的计租一样,我们可以对每个单元做单独测试,保证每个单元的正确性即可保证整体的正确性。

猜你喜欢

转载自www.cnblogs.com/cjrhx/p/9221960.html