首页 > 其他 > 详细

oo第三次博客作业

时间:2018-05-30 20:58:13      阅读:219      评论:0      收藏:0      [点我收藏+]

 

一.规格化设计对的发展历史

在1968年,荷兰教授E.W.Dijkstra提出了“GOTO语句是有害的”观点,指出程序的质量与程序中所包含的GOTO语句的数量成反比,认为应该在一切高级语言中取消GOTO语句。这一观点在计算机学术界激起了强烈的反响,引发了一场长达数年的广泛的论战,其直接结果是结构化程序设计方法的产生。80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。这就是九十年代以Microsoft Visual系列OOP软件的流行的背景。1990年以后,面向对象分析、测试、度量和管理研究都得到长足的发展,规格化设计应运而生。规格化设计能够帮助编程者进行架构,以及在未来对其方便地维护。此外,因为规格化设计能使他人方便地理解代码含义,而使得程序员们在大型多人的开发中能够便捷地以他人的代码为基础进行开发工作,提高了工作效率。因此规格化设计得到了人们的重视。

在1960年代末至1970年代初期,出现了一次软件危机:一方面需要大量的软件系统,如操作系统、数据库管理系统;另一方面,软件研制周期长,可靠性差,维护困难。人们希望编写出的程序结构清晰、易阅读、易修改、易验证,即产生良好结构的程序。60年代中期,大容量、高速度的计算机出现,随之出现的是代码量急剧提升,复杂度急剧增长、程序可靠性的重要性突出的问题。结果化程序设计随之提出,它要求程序设计时以模块为单位,每个模块专职自己的工作,而要在模块间交流,在开发者和用户,开发者和开发者之间交流,就只需要相应接口即可。到了80年代,“软件工程”的概念第一次被提出,计算机的速度和容量大大提高,程序的复杂度也急剧增长,人们开始在程序设计时以模块为单位,各部分有了自己各自独立的工作,开始出现规格化抽象。比如说C++和JAVA的类说明和类实现出现了分离。之后,随着计算机软件规模日渐庞大,结构化程序设计方法开始无法满足用户的需求,面向对象程序设计(OOP)应运而生。面向对象程序设计是一场重大的革命,提高了开发人员的效率,有效地控制了软件开发的复杂度,提高了软件的可维护性和可拓展性。规格化的设计大大提高了程序的规范性和规模化,提高了程序可读性,并降低了维护难度,所以得到了广泛的重视。

规格化设计,又称契约式设计,最早由Bertrand Meyer于1986年提出,出自于《面向对象软件构造》。其基础是形式验证、形式规格和Hoare logic。在大型软件工程开发中,协同工作能力的重要性日益凸显。“对于一个大型系统来说,光保证它的各组成成分的质量是不够的。而最有价值的是确保在任何两个组成部分的交接处设计明晰的彼此义务和权利规范,即所谓契约。”(《面向对象软件构造》)Bertrand Meyer曾在访谈中提到:“对于软件和软件设计者来说,为了保证各方面的正确性和健壮性,他们就必须懂得通讯的准确约束规范。在这个地方,我们就将商业中的契约概念应用到软件中。……商业中,我们会通过契约——对我们期望的彼此义务和权利的准确表述——的方式彼此协调。对于软件来说,我们撰写客户和服务例程时,都必须严格遵循同样的契约表述。”《契约式设计的收益》一文中将规格化设计的优点概括为以下5方面:获得更优秀的设计、得到更出色的文档、支持复用、提高可靠性、帮助调试。

面向对象程序设计技术被认为是程序设计方法学的一场实质性的革命,是程序设计方法学得一个里程碑,以上说法是毋庸置疑的。为了能够更好的理解和应用面向对象的方法进行程序的开发和设计,我们有必要首先来了解一下面向对象程序设计的历史和发展。

20世纪60年代,软件曾出现过严重危机,由软件错误而引起的信息对视、系统报废事件屡有发生。为此,1968年,荷兰学者E.W.Dijkstra提出了程序设计中常用的GOTO语句的三大危害:破坏了程序的京东一致性,程序不易测试,限制了代码优化,此举引起了软件界长达数年的论战,并由此产生了结构化程序设计方法,同时诞生了基于这一设计方法的程序设计语言Pascal

由瑞士计算机学家开发的Pascal,一经推出,它的简介明了以及丰富的数据结构和控制结构,为程序员提供了极大地方便性与灵活性,同时它特别适合微计算机系统,因此大受欢迎。它采用结构化程序设计思想。因此,结构化方法迅速走红,并在整个20世纪70年代的软件开发中占绝对统治地位。

但是,到了70年代末期,随着计算机科学的发展和应用领域不断扩大,对计算机技术的要求越来越高。结构化程序设计语言和结构化分析与设计已经无法满足用户需求的变化,于是人们开始寻找更先进的软件开发方法和技术,OPP由此应运而生。

OPP即面向对象的程序设计,OPP技术被认为是程序设计方法学的一场实质性的革命,是程序设计方法学的一个里程碑。OPP大大替考了软件的开发效率,减少了软件开发的复杂性,提高了软件系统的可维护性、可扩展性。

实际上,对象对象的属性这样的概念可以追溯到20世纪50年代初,它们首先出现于关于人工智能的早期著作中。但是出现了面向对象语言之后,面向对象思想才得到了迅速的发展。过去的几十年中,程序设计语言对抽象机制的支持程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编语言出现后,程序员就避免了直接使用0-1,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增长的时候,出现了FortranCPascal等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们可以更好地对付日益增加的复杂性。但是,如果软件系统达到一定规模,即使应用结构化程序设计方法,局势仍将变得不可控制。作为一种降低复杂性的工具,面向对象语言产生了,面向对象程序设计也随之产生。 

面向对象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程的程序设计。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。每个函数都可以具有它们自己的局部数据。

这种结构很容易造成全局数据在无意中被其他函数改动,因而程序的正确性不易保证。面向对象程序设计的出发点之一就是弥补面向过程程序设计中的一些缺点:对象是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不会被外界的函数意外地改变。

面向对象设计方法以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。这是面向对象设计方法最主要的特点和成就。面向对象设计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。 

面向对象设计方法以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。这是面向对象设计方法最主要的特点和成就。面向对象设计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。

二.jsf的修改

1队列规格

技术分享图片

再修改之前只使用了自然语言对规格进行描述,而且modifies中没有写this。

2声明变量规格

技术分享图片

之前在写的时候没有写modifies。

3.返回值规格

技术分享图片

4.规格用自然语言的描述。

技术分享图片

前置条件判断应该写为 != NULL形式

 

oo第三次博客作业

原文:https://www.cnblogs.com/yyfxiaojiangshi/p/9112658.html

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