第7章面向对象软件工程的概念

合集下载

软件工程-原理、方法及应用(史济民第三版)答案

软件工程-原理、方法及应用(史济民第三版)答案

软件工程-原理、方法及应用(史济民第三版)答案绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

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

3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

软件工程面向对象

软件工程面向对象

面向对象软件工程面向对象方法学的提出•结构化软件工程方法学•面向过程、以算法为核心、把数据和过程作为相对独立的部分•对早期只重视编程、不重视用户需求和开发过程,只重视代码、不重视文档来说,是一个巨大的进步•给软件产业带来了巨大的进步,部分缓解了软件危机•在许多中小型软件项目中获得了很大的成功•但是,它存在着明显的缺点•当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功面向对象方法学概述•面向对象方法学的出发点和原则•尽可能模仿人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程•面向对象方法的特点•与人类习惯的思维方法一致:按照人们习惯的思维方式建立模型,模拟客观世界•稳定性好:实体是相对稳定的,以对象为中心构建的软件系统必然是相对稳定的•可重用性好:对象类提供了比较理想的模块化机制和可重用机制•易于开发大型软件:把大型产品看作一系列本质上相互独立的小产品来处理•可维护性好:容易理解、容易修改、易于测试四个要点:对象+类+继承+通信•面向对象软件是由对象组成•软件中的任何元素都是对象•对象是把静态属性的数据和动态属性的操作封装在一起而形成的统一体•复杂对象由简单对象组成•把所有对象都划分成若干类•每个类都定义了一组数据和方法(即施加于对象的操作);•按照子类与父类的关系,把若干个对象类组成一个层次结构的系统(即继承);•对象彼此之间仅能通过传递消息相互联系(对象的私有信息都被封装在对象类中)。

Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信基本概念(1)•类(Class)•是对具有相同属性和行为的一(多)个对象的描述•是一个支持继承的抽象数据类型•实例(Instance)•就是由某个特定的类所描述的一个具体的对象•消息(Message)•是要求某个对象执行类中所定义的某个操作的规格说明•其组成为:接收消息的对象、消息名和变元•方法(Method)•就是对象所能执行的操作(类中定义的服务)•属性(Attribute)•就是类中所定义的数据,是对客观世界实体所具有的性质的抽象基本概念(2)•封装•是把数据和实现操作的代码集中起来放在对象内部,不能从外部进行访问和修改。

软件工程 比较结构化方法和面向对象

软件工程 比较结构化方法和面向对象

软件工程比较结构化方法和面向对象一、引言软件工程是一门关注软件开发过程的学科,它涉及到软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。

在软件工程领域中,有两种主要的开发方法:比较结构化方法和面向对象方法。

本文将对这两种方法进行详细的比较和分析。

二、比较结构化方法1.概念结构化方法是一种基于模块化设计思想的软件开发方法。

它将一个大型系统划分为多个小模块,每个模块都有明确的输入和输出,并且通过调用其他模块来实现其功能。

2.特点(1)强调程序流程控制;(2)采用自顶向下或自底向上的设计方式;(3)使用层次结构图表示程序流程;(4)采用数据流图表示数据流动情况;(5)模块之间通过参数传递来交换信息。

3.优缺点①易于理解和维护;②适合大型系统开发;③能够提高程序可读性。

(2)缺点:①不够灵活,难以应对需求变更;②不支持复杂的数据类型;③容易出现模块间的耦合。

三、面向对象方法1.概念面向对象方法是一种基于对象思想的软件开发方法。

它将一个系统看作是由多个对象组成,每个对象都有自己的属性和方法,并且通过消息传递来实现对象之间的交互。

2.特点(1)强调数据抽象和封装;(2)采用自下而上的设计方式;(3)使用类图表示程序结构;(4)采用序列图表示消息传递过程;(5)支持继承和多态等高级特性。

3.优缺点①能够提高代码重用性;②支持动态绑定,具有更好的灵活性;③能够提高系统可扩展性。

(2)缺点:①易于出现类爆炸问题;②需要掌握较为复杂的概念和技术。

四、比较分析1.设计思想不同结构化方法注重程序流程控制,通过模块化设计来实现程序结构清晰、易于维护。

而面向对象方法则注重数据抽象和封装,通过对象之间的交互来实现程序功能。

2.设计方式不同结构化方法采用自顶向下或自底向上的设计方式,通过层次结构图和数据流图来表示程序结构和数据流动情况。

而面向对象方法则采用自下而上的设计方式,通过类图和序列图来表示程序结构和消息传递过程。

软件工程导论(第7章)

软件工程导论(第7章)

测试的正确定义:“为了发现程序中的错 误而执行程序的过程。”
7.2.2 软件测试准则
1)所有测试都应该能追溯到用户需求;
2)应该远在测试前就制定出测试计划;
3)把Pareto原理应用到软件测试中;Pareto原理 说明测试发现的错误中的80%很可能是由程序 中20%的模块造成的。
4)应该从“小规模”测试开始,并逐步进行“大 规模”测试;
USER32.DLL; GDI32.DLL; KERNEL32.DLL。
Windows消息机制:
1)基于消息的事件驱动 消息可以是由硬件发来的(存于系统队列),
也可以由Windows系统和应用程序发来(存于 程序队列中);
每一个Windows程序在不停的捕捉各种消息, 并进行处理;
每个窗口都必须有一个窗口函数,来负责消息 的判断与处理。
3)重要的执行路径 由于不可能进行穷尽测试,因此选择测试
路径是非常关键的。 4)出错处理通路 5)边界条件
7.3.2 代码审查
审查小组: 1)组长; 2)程序的设计者; 3)程序的编写者; 4)程序的测试者。
7.3.3 计算机测试
由于软件模块不是一个独立的系统,不能独 立运行,要依靠其他模块调用,或需要调用其 他模块。
1.模块测试 模块测试又称单元测试,它把每个模块作为
单独的实体来测试。 2.子系统测试
子系统测试是把经过单元测试的模块放在一 起形成一个子系统来测试。
3.系统测试 系统测试是把经过测试的子系统装配成一个完
整的系统来测试。 4.验收测试
验收测试把软件系统作为单一的实体进行测试 (利用用户的实际数据测试)。 5.平行运行
如PL/1、PASCAL、C、ADA等 3)专用语言 如APL、BLISS、FORTH、LISP、PROLOG等

软件工程 比较结构化方法和面向对象

软件工程 比较结构化方法和面向对象

软件工程一、引言在当今信息技术高速发展的时代,软件的开发和维护变得越来越重要。

为了有效管理软件项目,提高开发效率和质量,软件工程的概念应运而生。

软件工程是一门研究如何按照系统化、规范化、定量化和可重复性的方式开发和维护软件的学科。

在软件工程中,结构化方法和面向对象是两种常用的开发方法。

本文将对结构化方法和面向对象进行比较,并探讨它们在软件工程中的优劣和适用场景。

二、结构化方法2.1 定义和特点结构化方法是一种基于数据流和流程的软件开发方法。

它将软件系统视为一系列逐步细化的模块,通过分析数据流和流程来设计和实现软件系统。

结构化方法强调模块化、层次化和自顶向下的设计思想,以确保程序逻辑清晰、易于理解和修改。

2.2 优点1.结构化方法强调模块化,将软件系统分解为多个模块,每个模块负责特定的功能。

这种模块化的设计使得程序易于理解、修改和测试,提高了软件的可维护性和可测试性。

2.结构化方法采用自顶向下的设计思想,先设计系统的总体框架,再逐步细化到具体的模块。

这种逐步细化的设计方式使得开发过程更加可控,项目管理更加容易。

同时,自顶向下的设计过程也便于团队协作和分工。

3.结构化方法将程序逻辑分解为一系列有序的步骤,每个步骤都有明确的输入和输出。

这种严格的输入输出规定使得程序的设计和测试更加方便。

4.结构化方法在软件开发初期就明确定义了数据流和流程,使得开发人员能够更好地理解和掌握软件系统的整体架构,从而减少了项目失败的风险。

2.3 缺点1.结构化方法的设计过程较为复杂,需要详细分析系统的数据流和流程。

对于较大规模的软件系统,分析和设计的工作量较大,容易导致项目开发周期延长。

2.结构化方法强调模块化,但对于一些复杂的问题,模块化的设计可能不够灵活和强大。

这就需要在设计阶段尽可能考虑全部的需求和功能,否则可能会在后期的修改过程中遇到困难。

三、面向对象3.1 定义和特点面向对象是一种以对象为基础的软件开发方法。

在面向对象方法中,软件系统由一组相互作用的对象组成。

软件工程:结构化方法VS面向对象方法

软件工程:结构化方法VS面向对象方法

软件⼯程:结构化⽅法VS⾯向对象⽅法⼀、基本概念1、结构化⽅法 结构化⽅法是⼀种传统的软件开发⽅法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合⽽成的。

基本思想:把⼀个复杂问题的求解过程分阶段进⾏,⽽且这种分解是⾃顶向下,逐层分解,使得每个阶段处理的问题都控制在⼈们容易理解和处理的范围内。

2、⾯向对象⽅法 ⾯向对象⽅法是⼀种把⾯向对象的思想应⽤于软件开发过程中,指导开发活动的系统⽅法,简称OO,是建⽴在“对象”概念基础上的⽅法学。

对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,⼀个对象类定义了具有相似性质的⼀组对象。

基本思想:尽可能模拟⼈类习惯的思维⽅式,使开发软件的⽅法与过程尽可能接近⼈类认识世界、解决问题的⽅法与过程, 也就是使描述问题的问题空间与实现解法的求解空间在结构上尽可能⼀致。

⼆、两者对⽐1、基本单位不同 结构化⽅法的基本单位是模块。

⾯向对象⽅法的基本单位是对象。

2、分析⽅法不同 结构化分析⽅法是⼀种⾯向数据流⽽基于功能分解的分析⽅法, 在该阶段主要通过采⽤数据流程图、编制数据字典等⼯具, 描述边界和数据处理过程的关系, ⼒求寻找功能及功能之间的说明。

⾯向对象分析是把对问题域和系统的认识理解, 正确地抽象为规范的对象( 包括类、继承层次) 和消息传递联系, 最终建⽴起问题域的简洁、精确、可理解的⾯向对象模型, 为后续的⾯向对象设计和⾯向对象编程提供指导。

⾯向对象分析通常建⽴三种模型: 对象模型、动态模型、功能模型。

其中, 对象模型描述了系统的静态结构,确定类的名称和类间的关系;动态模型表⽰瞬时的、⾏为化的系统的“ 控制”性质, 规定了对象模型中的对象的合法变化序列;功能模型表明了系统中数据之间的依赖关系, 以及有关数据的处理功能。

3、各⾃局限(1)结构化⽅法 i.不能直接反映问题域: 结构化分析⽅法以数据流为中⼼, 强调数据的流动及每⼀个处理过程, 不是以问题域中的各事物为基础, 打破了各事物的界限, 分析结果不能直接反映问题域, 容易隐蔽⼀些对问题域的理解偏差。

北邮软件工程课件第7章面向对象分析

北邮软件工程课件第7章面向对象分析

一般说来,确定属性的过程包括分析和选择两个步骤。
7.3.4确定属性
属性的确定既与问题域有关,也和目标系统的任务有关。应该仅考虑与具体应用直接相关的属性,不要考虑那些超出所要解决的问题范围的属性。在分析过程中应该首先找出最重要的属性,以后再逐渐把其余属性增添进去。在分析阶段不要考虑那些纯粹用于实现的属性。
通常,在需求陈述中不会一个不漏地写出问题域中所有有关的类—&—对象,因此,分析员应该根据领域知识或常识进一步把隐含的类—&—对象提取出来。例如,在ATM系统的需求陈述中虽然没写“通信链路”和“事务日志”,但是,根据领域知识和常识可以知道,在ATM系统中应该包含这两个实体。
筛选出正确的类—&—对象
显然,仅通过一个简单、机械的过程不可能正确地完成分析工作。非正式分析仅仅帮助我们找到一些候选的类—&—对象,接下来应该严格考察每个候选对象,从中去掉不正确的或不必要的,仅保留确实应该记录其信息或需要其提供服务的那些对象。
1.分析
2.选择
认真考察经初步分析而确定下来的那些属性,从中删掉不正确的或不必要的属性。通常有以下几种常见情况。 误把对象当作属性 把链属性误作为属性 把限定误当成属性 误把内部状态当成了属性 过于细化 存在不一致的属性
图7.5 ATM对象模型中的属性
7.3.5识别继承关系
01
确定了类中应该定义的属性之后,就可以利用继承机制共享公共性质,并对系统中众多的类加以组织。
ATM打印账单,退出现金兑换卡,请储户拿走它们;储户取走账单和卡
ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行把请求转给分行,该分行成功地处理完这项事务并返回该账户的新余额[ZK)]
ATM问储户是否继续这项事务;储户回答“不”

面向对象分析与设计

面向对象分析与设计

面向对象分析与设计面向对象分析与设计(Object-oriented analysis and design)是软件工程领域中的一种方法论,用于解决软件系统开发过程中的问题和需求。

本文将对面向对象分析与设计的基本概念、流程和常用方法进行介绍,并附带答案和解析。

第一部分:面向对象分析(Object-oriented analysis)面向对象分析是软件开发过程中的第一步,旨在理解问题域并建立领域模型。

面向对象分析有以下几个重要概念:1. 对象(Object):对象是系统中的一个实体,包含数据和方法。

对象可以是具体的实物、虚拟的概念或一组相关的数据和行为。

2. 类(Class):类是一种抽象的定义,描述了一组具有相同特征和行为的对象。

3. 属性(Attribute):属性是对象的特征,用于描述对象的状态。

4. 方法(Method):方法是对象的行为,用于描述对象可以执行的操作。

面向对象分析的主要流程包括以下步骤:1. 需求收集:收集系统的需求,与利益相关者沟通,了解系统的功能和性能要求。

2. 领域建模:对现实世界的问题域进行抽象和建模,识别出系统中的对象和它们之间的关系。

3. 需求分析与规约:通过使用用例、活动图和状态图等工具对需求进行分析和规约,明确功能和交互细节。

4. 领域模型验证:与利益相关者验证领域模型的准确性和实用性,确保模型能够满足系统需求。

第二部分:面向对象设计(Object-oriented design)面向对象设计是在面向对象分析的基础上,进一步细化领域模型,为系统的实现提供指导。

面向对象设计有以下几个常用方法:1. 类图(Class diagram):类图用于展示类、属性和方法之间的关系。

类图包括类的名称、属性和方法,并通过关联、继承和聚合等关系展示类之间的联系。

2. 对象图(Object diagram):对象图用于展示类的实例和对象之间的关系。

对象图是类图的实例化表示,展示了系统在某一时刻的对象及其特定的属性值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计阶段的活动:从用例的描述中发现与设计有关的 对象,并描述其属性、行为和关联。同时把所有用例的行 为分派给每个对象。
PPT文档演模板
第7章面向对象软件工程的概念
7.5 统一建模语言UML
(6)多态(polymorphism)
指在类的不同层次上可以使用相同的操作名。同 一操作名可有不同的实现方式,运行时可动态地选择 哪一个算法。
多态性增加了软件的灵活性,可扩充性,通用功 能的操作放在高层,不同地实现这一功能的行为放在 低层,以实现不同的相应。
PPT文档演模板
第7章面向对象软件工程的概念
第7章面向对象软件工程 的概念
PPT文档演模板
2020/11/27
第7章面向对象软件工程的概念
7.1传统软件开发方法的局限性
传统的软件工具、软件技术和抽象层次越来越难 以适应大规模复杂软件系统的开发特点。软件能力问 题已经成为制约软件发展的因素。
软件工程自70年代以来,有力的推动了软件能力 的解决。自顶向下的分析与设计的方法、软件项目的 工程化管理、软件工具和开发环境、软件质量保证等 都对软件的发展起了非常重要的作用。传统的软件开 发方法在当时的软件工程中起了主导作用,随着系统 复杂性、多变性增强,传统方法的缺陷就显露了出来:
用类名、类的属性、类的操作三方面的内容来定意一 个类。一个具体对象是类的一个实例。
(3)消息(message) 是一个对象发送给另一个对象的操作请求。消息
一般由三部分组成:对象名、消息名、参数。消息传 递是对象与外部世界相互通信的唯一途径。
(4)方法(method) 是对象操作的实现,描述了对象中操作的算法和
PPT文档演模板
第7章面向对象软件工程的概念
•输入 •输出
•过程1
•过程2
•数据实体
•过程3
•传统方法数据与过程是分离的
•消息 •消息
•对象
•属于该对象 •的数据
•处理数据的方法
•对象把数据和处理数据的方法封状成一个单元
PPT文档演模板
第7章面向对象软件工程的概念
传统方法与面向对象方法的比较
•传统方法 •系统是过程的集合 •过程与数据实体交互 •过程接受输入并产生输出
(3)软件开发的抽象力度小。解决问题的类型一般用于 “输入-处理-输出”为核心的数据处理系统,不适应于复 杂的实时、交互、事件驱动、分布式等新型应用的系统开 发。
(4)软件重用未能得到很好的解决。传统的方法一般从 “零”开始开发软件,数据与操作作为相互分离的实体来 考虑,使软件的可复用性差。重用的实施仅仅是公用模块 的调用。面向对象的封装性、继承性、多态性等特性支持 软件重用且重用的粒度大。软件的重用导致更快地、高质 量地开发软件,为软件工业化生产奠定基础。
OOA阶段的任务: • 标识类及对象 • 定义结构(一般-特殊结构、整体-部分结构) • 划分主题 • 定义属性及对象间的实例连接 • 定义服务及对象间的消息连接
上述任务迭代进行,产生5个层次的问题域模型(主 题层、类及对象层、结构层、属性层、服务层)
PPT文档演模板
第7章面向对象软件工程的概念
OOD阶段的活动: • 问题域部分 • 人机交互部分 • 任务管理部分 • 数据管理部分
该方法将用例贯穿于整个开发阶段,并在用例描述中 引入了角色或参与者(Actor)的概念。角色指使用系统的 人以及与系统相互作用的软硬件环境。
该方法还将对象区分为实体对象(业务对象)、接口 对象(界面对象)和控制对象。
需求分析阶段活动:定义潜在的角色、识别问题域中 的对象和关系、基于需求规格说明和角色的需要描述用例。
PPT文档演模板
第7章面向对象软件工程的概念
下图显示了用例模型与其他模型之间的相关性:
•由…建立
•பைடு நூலகம்例模型
•分析模型 •由…设计
•为系统描述 •设计模型 •由…实现
一系列类
•为系统定义 一系列子系 统和界面
•实现模 •将型类映 射到构件
•由…验证
•测试模 •验型证系
•由…分配 •配置模型
统是否提 供了用例 模型中描
PPT文档演模板
第7章面向对象软件工程的概念
3、迭代与增量的过程 迭代指工作流中的步骤,增量指产品中增加的部分。
迭代过程要处理一组用例,这组用例合起来能扩展所 开发产品的可用性,后续的迭代过程建立在前一次迭代过 程末期所开发的产品上。
构架提供了一种结构来指导迭代过程中的工作,用例 则确定了目标并驱动每次迭代的工作。——三条腿的凳子!
PPT文档演模板
第7章面向对象软件工程的概念
该模型每次迭代都要计划、工程和评估。每个计划 都要调整进度以适应和本次迭代相关的变化。早期阶段 迭代进行的分析与设计工作为了分离出OO模型中的所 有重要元素;当工程工作不断进展时,产生软件的增量 版本;在评估阶段对每个增量的评估其反馈将影响下一 次计划活动及后续增量。
7.4 几种面向对象方法
20世纪80年代以来,出现了几十种面向对象软件开 发方法。每一种都有自己的符号体系和开发过程,都支 持以下基本活动:
• 标识类及对象 • 描述类及对象之间的关系 • 定义类的属性和操作 1、Booch方法 Booch是面向对象方法最早的提出者之一,提出了面向 对象软件工程的概念。提出了“微开发过程”和“宏开 发过程”的思想。
功能模型中的加工,动态模型中对应一个事件的活动。 • 设计实现操作的算法 • 优化数据访问路径 • 实现系统设计中的控制机制 • 为提高继承而调整类结构 • 设计对象之间的关联 • 将类和关联集成到模块中
PPT文档演模板
第7章面向对象软件工程的概念
4、Jacobson方法
也称OOSE方法。最大特点是强调使用实例(UseCase),每一个用例就是一个使用系统的方式,用例的执 行将引发执行一系列与行为相关的事务。
•面向对象方法 •系统是交互对象的集合 •对象与人或其它对象交互
•对象发送与响应消息
PPT文档演模板
第7章面向对象软件工程的概念
7.2 面向对象的过程模型
•1、演化/并行模型 • 是Booch等人在90年 代初建议的。该模型与 第1章介绍的螺旋模型、 增量模型相似。但强调: •(1)对OO系统的分 析和设计建模不在相同 的抽象层次上进行。 •(2)分析和设计可以 并发地应用到独立的系 统构件。
PPT文档演模板
第7章面向对象软件工程的概念
微开发过程:定义一组分析任务,包括标识类和 对象以及类和对象的语义、定义类和对象间的关系、 描述类和对象的动态行为。
宏开发过程:将微过程反复应用,并包含了体系 结构设计的计划活动:
• 将相似的对象聚集到独立的模块; • 描述对象管理、内存管理、错误处理等其它功能 的实施;
2、RUP
98年6月推出,该过程强调了开发方法的统一、建 模语言的统一、研究成果的统一。该过程是基于构件的, 即所构造的系统是由软件构件通过明确定义的接口相互 连接所建造起来的。它使用UML来制定软件系统的所 有蓝图。RUP的主要特点:
(1)用例驱动
用例作为系统分析、设计、实现和测试的基本输入。
PPT文档演模板
• 建立功能模型 产品:功能模型=数据流图+约束
(2)系统设计 • 将系统分解为各个子系统 • 确定问题中固有的并发性 • 将各子系统分配给处理器 • 数据存储管理 • 全局资源管理 • 选择软件控制机制 • 边界条件处理
PPT文档演模板
第7章面向对象软件工程的概念
(3)对象设计 对分析模型细化: • 将三种模型结合起来以获得对象类上的操作。如
(1)对象(object)
是现实世界中个体或事物的抽象表示。封装了其属 性及相关的操作。属性表示对象的性质,属性值规定了 对象所有可能的状态。对象的操作指出了该对象具有的 行为并提供了对外的服务。
PPT文档演模板
第7章面向对象软件工程的概念
(2)类(class) 是具有相同属性和相同操作的对象的抽象。通常
PPT文档演模板
第7章面向对象软件工程的概念
7.3 面向对象的概念
面向对象(Object Oriented,简称OO)的概念起源于 20世纪60年代中期的Simula 67。80年代初,Smalltalk语 言及其程序设计环境的出现成为面向对象技术发展的一 个重要里程碑。80年代中期硬件的发展使C到C++过渡 平滑,推出了相应工具及面向对象集成环境,使OOP模 式进入主流。80年代中后期,面向对象分析与设计的研 究开始发展。进入90年代,面向对象软件工程成了许多 软件产品的建造笵型。
继承性使得相似的对象可以共享程序代码和数据 结构,从而简化了创建类及对象的工作量,基类解决 一般性问题,派生类解决特殊问题,提高了软件的可 重用性。继承性还使得软件便于维护,当需要扩充软 件原有功能时,从要修改的类中派生出一个子类,在 该子类中添加新的代码。
PPT文档演模板
第7章面向对象软件工程的概念
(1)面向过程为主。系统围绕着由计算机来实现 功能的复杂过程而建立,在分析和解决问题时与人们 对现实世界的认识有一定差距。
PPT文档演模板
第7章面向对象软件工程的概念
(2)软件结构稳定性差。需求分析阶段重点是功能模型, 难以彻底明确全部需求。设计阶段的软件体系结构是基于 系统功能建立的。每个模块完成一个基本功能,多个模块 的组合完成一个整体功能。一个模块的变动可能会影响到 多个模块。用户的需求大多针对功能,功能的变化会引起 体系结构的变化,不利于系统的维护。
响应消息的方式。
PPT文档演模板
第7章面向对象软件工程的概念
(5)继承(inheritance)
是子类自动的共享其父类中定义的属性和操作的 机制,该机制构成了类的层次结构。较高层的父类称 为基类、超类、一般类。子类称为派生类、特殊类。 子类除了继承父类的特征,还可有自己的特征。继承 有传递性,子类能继承上层的全部特征。
相关文档
最新文档