面向对象软件工程的特点及发展

奋斗 范文 工作总结范文
精选回答

软件工程;

软件工程方法

1

软件工程的历史发展及定义

1.

1

软件工程的历史发展

在20世纪六、七十年代,由于软件开发的技术、管理和工程化的落后产生了一系列问题,从而最终引发了软件危机。所谓软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有的软件都不同程度地存在这些问题。

概括地说,软件危机包含下述两方面的问题:

如何开发软件,以满足对软件日益增长的需求;

如何维护数量不断膨胀的已有软件。越来越多的大型程序系统的出现,使“危机”更加严重。

大型程序系统与小型程序相比,二者有着本质的区别。小型程序规模小,个人和几个人就能管理和控制其复杂性,因此可以在较短的时间内完成程序的编制并实现预期的目标。但大型程序系统的程序规模大,由几十、几百个模块组成,模块间的接口较为复杂,常常需要几百个程序员工作几年才能完成。因此,大型程序具有程序大、复杂程度高、研制周期长、可靠性低等特点。这样的程序系统往往是不可维护的,而且许多程序中的错误难以纠正。人们对正确可靠、可维护的软件系统的迫切需求与软件研制的手工作坊方式的矛盾日趋尖锐化。为了解决这一矛盾,人们提出了软件工程的概念。

1.

2

软件工程的定义

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术、方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方面结合起来,经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程运用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制造规范、评估成本及确定权衡,管理科学用于计划、资源质量、成本等管理。

2

软件工程方法

软件工程包含技术和管理两方面的内容,是管理与技术的紧密结合。所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。

通常把在软件生命周期全过程中使用的一整套技术的集合成为方法学,也称为范型。所谓软件生命周期是指一个软件从定义、开发使用和维护,直到最终被废弃所经历的一段漫长的时期。软件生命周期分为三个时期,每个时期又进一步分成若干个阶段。软件生命周期模型如表1所示。

2.

1

软件计划

在设计任务确立前,首先要进行调研和可行性研究,理解工作范围和所花费的代价,然后做出软件计划。

2.

2

软件需求分析

对用户要求进行具体分析,确定用户要求软件系统做什么,并用软件需求规格说明书表达出来,作为用户和软件人员之间共同的约定。

2.

3

软件设计

根据需求说明建立软件系统的“结构”,包括数据结构和模块结构。这部分又分为总体设计和详细设计两个阶段。其中:

总体设计,它决定系统的模块结构,给出模块的相互调用关系,产生软件概要说明书;

详细设计,它给出模块内部的细节及功能说明,产生详细设计说明书。

2.

4

软件编码

按软件设计的要求为每个模块编写程序。

2.

5

软件测试

发现和排除程序中留存的错误,经过测试排错,得到可交付运行的软件。软件测试又分为单元测试和综合测试两个阶段。

2.

6

软件维护

经过测试的软件仍然可能有错,另外,用户的需求和系统的操作环境也可能发生变化,因此,交付运行的软件仍然需要继续排错、修改和扩充,这就是软件的维护。软件生命周期各阶段的任务、应完成的工作如表2所示

3

面向对象软件工程方法

3.

1

面向对象软件工程方法要点

面向对象软件工程方法的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(

也称为问题域)

与实现解法的空间(

也称为求解域)

在结构上尽可能一致,因此,这样的程序易于理解和维护。概括地说,面向对象方法具有下述四个要点:

3.

1.

1

把对象作为融合了数据及在数据上的操作行为的统一的软件构件。

面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成。

3.

1.

2

把所有对象都划分成类。

每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据上的操作用于实现对象的动态行为。

3.

1.

3

按照父类(

或称基类)

与子类(

或称派生类)的关系,把若干个相关类组成一个层次结构的系统(

也称类等级)

在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。

3.

1.

4

对象彼此之间仅能通过发送消息互相联系。

对象与传统数据有本质的区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须向它发消息,请求它执行它的某个操作以处理它的数据,而不是从外界直接对它的数据进行处理。也就是说,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。

总之,面向对象就是既使用对象又使用类和继承等机制,且对象之间仅能通过传递消息实现彼此通信。而面向对象方法就是同时使用对象、类、继承和消息的方法。

3.

2

面向对象建模

在解决问题之前必须首先理解所要解决的问题,这是大家都知道的。对问题理解得越透彻,就越容易解决它。当我们完全、彻底地理解了一个问题的时候,通常就已经解决了这个问题。

为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。更进一步讲,模型是一种思考工具,利用这种工具可以把知识规范地表示出来。

用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。这三种模型都涉及数据,控制和操作等共同的概念,只不过每种模型描述的侧重点不同。这三种模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同侧面反映了系统的实质性内容,综合起来则全面地反映了对目标系统的需求。一个典型的软件系统组合了上述三方面的内容:

它使用数据结构(

对象模型),执行操作(

动态模型),并且完成数据值的变化(

功能模型)

用面向对象观点建立系统的模型,能够促进和加深对系统的理解,有助于开发出更容易理解、更容易维护的软件。

3.

3

面向对象软件开发方法的几个阶段

实际上,用面向对象方法开发软件时,阶段的划分是十分模糊的,通常在分析、设计、实现等阶段间多次迭代。

3.

3.

1

面向对象分析。

面向对象分析(

通常缩写为OOA),就是抽取和整理用户需求并建立问题域精确模型的过程。

面向对象分析的关键,是识别出问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。在面向对象分析中,主要由对象模型、动态模型和功能模型组成。在用面向对象观点建立起的三种模型中,对象模型是最基本、最重要、最内核的。

3.

3.

2

面向对象设计。

从面向对象分析到面向对象设计(

通常缩写为OOD)

是一个逐渐扩充的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。面向对象设计可再细分为系统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口形式及实现服务的算法。

3.

3.

3

面向对象实现。

面向对象实现主要包括两项工作:

第一项工作是把面向对象设计结果,翻译成用某种程序设计语言书写的面向对象程序(

通常此阶段缩写为OOP)

;

第二项工作是测试并调试面向对象的程序。面向对象程序的质量基本上由面向对象设计的质量决定,但是,所采用的程序设计语言的特点和程序设计风格也将对程序的可靠性、可重用性和可维护性产生深远的影响。

目前,软件测试仍然是保证软件可靠性的主要措施,对于面向对象的软件来说,情况也是如此。面向对象软件测试的目标,也是用尽可能低的测试成本和尽可能少的测试方案,发现尽可能多的错误。但是,面向对象程序中特有的封装、继承和多态等机制,也给面向对象软件测试带来一些新特点,增加了测试和调试的难度。

综上所述,面向对象软件工程方法可概括为如下的过程:

分析用户需求,从问题中抽取对象模型;将模型细化,设计类,包括类的属性和类间相互关系,同时考察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现上一阶段的设计,并在开发过程中引入测试,完善整个解决方案。

4

发展趋势

众所周知,现在信息技术范围内最具有深远影响的技术进步是Internet

的出现,并迅速发展成为当今世界上覆盖面最广、规模最大、信息资源最丰富的计算机信息网络,深刻地改变了传统的技术以及应用、业务和产业模式,也成为影响21世纪至少初期(

前20年)

的主要因素。Internet

计算平台具有开放、动态、多变的特征,节点的高度自治性,节点链接的开放性和动态性,人、设备和软件的多重异构性,实体行为的不可预测性,使用方式的个性化和灵活性,网络连接环境的多样性等特点,也对传统学科提出挑战:

传统软件工程基于实体驱动和确定目标、有序控制的开发模式开始让位于Internet

下基于协同驱动和动态目标、实体聚合的面向对象软件开发模式。

而且,当软件规模较大,或者对软件的需求是模糊的或随时间变化而变化的时候,使用面向对象工程方法来开发软件的优势便更加显现出来。面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。以面向对象的观点来看,所有的面向对象的程序都是由对象来组成,这些对象首先是自治、自怡的,同时它们还可以互相通信、协调配合,共同完成整个程序的任务和功能。

对象概念对软件解决方案也具有莫大的好处,在设计优秀合理的情况下尤其如此。你可以只编写一次代码而在今后反复重用,而在非OOP的情况下,你则多半要在应用程序内部各个部分反复多次编写同样的功能代码。OOP的另一优点是对代码结构的影响。像继承之类的面向对象概念通过简化变量和函数的方式而便利了软件的开发过程。OOP可以更容易地在团队之间划分编码任务。同时,由于采用OOP,辨别子类代码的依附关系也变得更简单了(

比如说继承对象的代码)

。此外,软件的测试和调试也得以大大简化。

用面向对象方法开发软件的过程,是一个主动地多次反复迭代的演化过程。面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间的平滑(

无缝)

过渡。面向对象方法普遍进行的对象分类过程,支持从特殊到一般的归纳思维过程;

通过建立等级而获得的继承性,支持从一般到特殊的演绎思维过程。

综上所述,由于面向对象软件工程方法的优点越来越被人们所认同和发现,而且基于面向对象的软件工程方法在实际软件开发中有广泛的应用前景和明显的优势,所以以此为基础开发的软件将成为按传统面向过程方法开发的软件的升级换代产品,成为市场的主流。

参考文献

[1]张海藩著.

软件工程导论(

第三版)

.

清华大学出版社,1998.

[2]

郑人杰、殷人昆著.

软件工程概论.

清华大学出版社,1998.

[3]庞丽萍著.

软件开发基础——面向对象技术与操作系统虚拟机.

高等教育出版社,1999.

[4]Roger

S.

Pressman著,梅宏译.

软件工程实践者的研究方法(

原书第五版)

.

机械工业出版社,2002.

女人如花花如梦 2022-07-21 18:55:29

相关推荐

你是否压抑过度呢

你会不会被压抑过度呢?想要更加了解的话,快点测试一下吧!【题目】公车上,邻座睡着的人把头靠在你肩上,你会怎么办?1、用肩膀推回去2、马上离开座位3、不会觉得不快,所以不加以理睬4、想了想,还是忍耐下去你会压抑过...
展开详情

测试你对待爱情的态度

爱情观是人们对爱情问题的根本看法和态度,它的内容主要包括:什么是爱情爱情的本质,及爱情在社会生活和个人生活中的位置,择偶标准,如何对待失恋等。爱情观也是人生观的反映。如果你现在还不是很明确自己恋爱观的话,就来做...
展开详情

你的心会为谁留位置

不同的人,在你的心里会占据不同的位置,有的人占的位置在前、有的人占的位置在后,有的人占据的空间大、有的人占据的空间小人心的空间是有限的,我们不能为每个人在心里留出位置。但是或许会有那样一个人,会让你在心里无论何...
展开详情

十二生肖相爱指南

肖鼠据生肖恋爱观反应,喜欢在恋爱过程骑驴找马的肖鼠者,容易出现中途换角的情况,如女性会以对方事业、财力、家世背景作为衡量依据;男性则更现实的希望娶进经济条件好或是能力强过于他的妻子,以助事业发展。最佳配偶:相龙...
展开详情

假如某天你闪婚了,那是因为?

题目:和暧昧的人第一次约会,男人主动的接触你身体时,你最反感他碰你哪里?1.搂你的腰2.捏你臀部3.摸你脸蛋4.抓你的手1.选搂你的腰终于找到真命天子或真命天女的时,你就会不顾一切闪电结婚:这类型的人遇到非常来...
展开详情

精选推荐更多>

乔迁新居大门对联

乔迁新居大门对联:
1、横批:春意盎然。
上联:福星高照全家福;
下联:春光耀辉满堂春。
2、横批:吉祥如意。
上联:迎喜迎春迎富贵;
下联:接财接福接平安。
3、横批:可心就好。
上联:良辰吉日喜迁新居;
下联:人兴家旺宜住高楼。
4、横批:乔木莺迁。
上联:乔迁喜天地人共喜;
下联:新居荣福禄寿全荣。
5、横批:栋宇聿新。
上联:吉日迁居万事如意;
下联:良辰安宅百年遂心。
6、横批:方寸福地。
上联:添居室金玉满堂;
下联:栋梁起流芳百世。
7、横批:四海升平。
上联:一马平川进新居;
下联:珠光宝气福满堂。
8、横批:万象更新。
上联:和顺一门有百福;
下联:平安二字值千金。
9、横批:喜气盈门。
上联:福旺财旺运气旺;
下联:家兴人兴事业兴。

亏除去部首有多少画

“亏”字除去部首,还有两画。
亏(拼音:kuī),汉语一级通用规范汉字(常用字)。“亏”和它的繁体字“虧”原是音义都不同的两个字。简体“亏”原是“于”的异体字,字形、字义关系不详。清代王筠认为是“吁”的本字,假借为动词“往”义,并由此引申出“到达”、“在”、“比”义,进而虚化出一系列介词用法,这些意思后世多写作“于”。“亏”字后来成为“虧”的简化字。
“虧”始收录于《说文解字》,许慎认为是形声字,从亏雐(hū)声,本义指气不足,引申泛指缺损,再引申指短、少、差欠,又引申为毁坏,还引申为道义上的亏欠、对不起。又作幸好、幸亏讲。另外“亏”也表示讥讽。

疾行的意思

“疾行”读音jí xíng,汉语词语,意思是快速行走。
出处:
1、《素问·气厥论》:“水气客于大肠,疾行则鸣濯濯,如囊裹浆。”
2、明·冯梦龙《东周列国志》第七十二回:“伍员疾行,至于鄂渚,遥望大江,茫茫浩浩,波涛万顷,无舟可渡。伍员前阻大水,后虑追兵,心中十分危急。”
造句:
1、他骑马疾行,在父亲咽气前到达了家中。
2、大队骑马背枪的胡子在山道上一路疾行,偶尔一两个山中猎户看到这群胡子,无不躲得远远的。
3、适才我看到你骑在疾行的巨无霸背上,仍然谈笑自若引吭高歌,如此临危不惧,气定神闲的大将风骨,岂是平常人所能及的。
4、杨龙和林凤仙驾着火龙,在万丈虚空之上穿云破雾,瞬息千里,飞速地朝着东南方向疾行而去。

会操是什么意思

会操,读音为huì cāo,汉语词语,意思是会合举行操演。该词是一个军事术语,古今语意不同,在清朝末年,又称为秋操、大操,意指新军的军事演习,在今天,专指军队的队列训练。
出处:《大辞海·军事卷》:“会操:集中部属对已训课目、内容进行的操演。多用于队列训练,目的是检验训练效果,相互观摩,交流经验,取长补短,共同提高。通常由连、营、团级单位组织实施,并组成评判组,按指定的单位或个人顺序轮流操演,结束后进行讲评。”
造句:
1、每天早晨,同学们在操场上会操。
2、我今天感到非常高兴,能够以检阅官身分出席这次结业会操。
3、我非常高兴出席今天的结业会操,再一次以检阅官的身分,与入境处的结业学员见面。
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200