第12章面向对象的分析与设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第12章面向对象的分析与设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 面向 对象 分析 设计 课件
- 资源描述:
-
1、1第第12章章 面向对象的分析与设计面向对象的分析与设计 第12章 面向对象的分析与设计 2面向对象开发方法面向对象开发方法 面向对象方法是一种基于对象(数据、属性、操作构面向对象方法是一种基于对象(数据、属性、操作构成统一体)的方法。成统一体)的方法。面向对象方法在概念和表示方法上的一致性,保证了面向对象方法在概念和表示方法上的一致性,保证了软件工程各项开发活动之间的平滑(软件工程各项开发活动之间的平滑(“无缝无缝”)过渡。)过渡。面向对象开发过程的核心是面向对象开发过程的核心是面向对象分析面向对象分析(OOA)和)和面向对象设计面向对象设计(OOD)两个阶段,但二者的界限比较)两个阶段,但
2、二者的界限比较模糊。模糊。OOA是分析使用实例,提取用户需求,建立问是分析使用实例,提取用户需求,建立问题域逻辑模型的过程;题域逻辑模型的过程;OOD是建立面向对象的求解域是建立面向对象的求解域模型的过程。模型的过程。从从OOA到到OOD实际是一个实际是一个多次反复、逐多次反复、逐步迭代模型的过程步迭代模型的过程。第12章 面向对象的分析与设计 312.1 面向对象建模面向对象建模第12章 面向对象的分析与设计 4面向对象模型面向对象模型 面向对象方法开发软件的关键是对问题域的理解。采面向对象方法开发软件的关键是对问题域的理解。采用面向对象观点建立问题域模型,开发出尽可能完善用面向对象观点建立
3、问题域模型,开发出尽可能完善的表现求解域模型的软件,是面向对象建模的目标。的表现求解域模型的软件,是面向对象建模的目标。面向对象建模技术所建立的三种模型面向对象建模技术所建立的三种模型对象模型对象模型、动态模型动态模型和和功能模型功能模型,分别从三个不同侧面描述了所,分别从三个不同侧面描述了所要开发的系统。对象模型定义了要开发的系统。对象模型定义了“做什么做什么”的实体的实体,功能模型指明了系统应该功能模型指明了系统应该“做什么做什么”,动态模型明确动态模型明确规定在何种状态下,接受什么事件的触发而规定在何种状态下,接受什么事件的触发而“做什做什么么”。第12章 面向对象的分析与设计 5对象模
4、型对象模型 对象模型是一个对象模型是一个类类(属性和行为)、(属性和行为)、对象对象(类的实(类的实例)、例)、类和(或)对象之间关系类和(或)对象之间关系的定义集的定义集。对象模型对象模型表示静态的、结构化系统的表示静态的、结构化系统的“数据数据”性质性质,为建立动态模型和功能模型提供了实质性的框架。为建立动态模型和功能模型提供了实质性的框架。对象模型把面向对象的概念与常用的信息建模概念对象模型把面向对象的概念与常用的信息建模概念结合起来,增强了模型的可理解性和表达能力。结合起来,增强了模型的可理解性和表达能力。对象模型还表示对象模型还表示了了类类/对象之间的结构关系。类对象之间的结构关系。
5、类/对对象之间的关系一般可概括为象之间的关系一般可概括为关联关联、归纳归纳(泛化泛化)、组组合合(聚集聚集)三类。三类。第12章 面向对象的分析与设计 6动态模型动态模型 动态模型动态模型表示瞬间的、行为化的系统表示瞬间的、行为化的系统“控制控制”性质,性质,它规定了对象模型中对象的合法变化序列。它规定了对象模型中对象的合法变化序列。对象有对象有自己的自己的运行周期运行周期,由,由多个阶段组成多个阶段组成,每个特每个特定阶段都有规范该对象的行为的一组运行规则定阶段都有规范该对象的行为的一组运行规则。对象的对象的状态状态是是对象属性的一种抽象对象属性的一种抽象,事件事件是某个特是某个特定时刻发生
6、的一个系统行为,是引起对象状态转换的定时刻发生的一个系统行为,是引起对象状态转换的控制信息。控制信息。对象对事件的响应对象对事件的响应,取决于当时的状态,取决于当时的状态,响应包括改变自己的状态,或者是形成一个新的触发响应包括改变自己的状态,或者是形成一个新的触发行为(事件)。行为(事件)。动态模型描绘动态模型描绘对象的状态对象的状态,触发状态转换的事件触发状态转换的事件,以及以及对象行为对象行为(对事件的响应),即基于事件共享而(对事件的响应),即基于事件共享而互相关联的一组状态集合构成了系统的动态模型。互相关联的一组状态集合构成了系统的动态模型。第12章 面向对象的分析与设计 7功能模型功
7、能模型 功能模型功能模型表示变化的系统的表示变化的系统的“功能功能”性质,指明了性质,指明了系统应该系统应该“做什么做什么”。它更直接地反映了用户对目标。它更直接地反映了用户对目标系统的需求系统的需求,有助于软件开发人员更深入地理解问题有助于软件开发人员更深入地理解问题域,改进和完善自己的分析和设计。域,改进和完善自己的分析和设计。功能模型由一组功能模型由一组数据流图数据流图组组成。顶层数据流图中的成。顶层数据流图中的处理,对应于复杂对象提供的服务;低层数据流图中处理,对应于复杂对象提供的服务;低层数据流图中的处理,对应于基本对象(复杂对象的组成部分)的的处理,对应于基本对象(复杂对象的组成部
8、分)的服务。一个处理可能对应多个服务,或者是一个服务服务。一个处理可能对应多个服务,或者是一个服务可能对应多个处理。可能对应多个处理。功能模型功能模型的的数据流图数据流图远远不如在结构化方法中那样重不如在结构化方法中那样重要要,但,但不能忽视功能模型的作用。不能忽视功能模型的作用。第12章 面向对象的分析与设计 8三种三种模型模型的关系的关系 对象模型、动态模型和功能模型相辅相承对象模型、动态模型和功能模型相辅相承,使得对,使得对系统的需求分析和设计描述更加直观、全面。系统的需求分析和设计描述更加直观、全面。对象模型是最基本、最重要的模型对象模型是最基本、最重要的模型。为为每个类建立的动态模型
9、,描述了类每个类建立的动态模型,描述了类和和实例的运行实例的运行周期。周期。功能模型中的处理,可能产生动态模型中的事件。功能模型中的处理,可能产生动态模型中的事件。动态模型中的状态转换驱使行为发生。这些行为在动态模型中的状态转换驱使行为发生。这些行为在数据流图中被映射成处理,同时与对象模型中的服务数据流图中被映射成处理,同时与对象模型中的服务相对应。相对应。第12章 面向对象的分析与设计 9三种三种模型模型的关系的关系 功能模型中的处理,对应于对象模型中类功能模型中的处理,对应于对象模型中类/对象所提供的服务。对象所提供的服务。功能模型中的数据存储、数据的源点功能模型中的数据存储、数据的源点/
10、终点终点(在功能模型中称为动作对象)是对象模型中(在功能模型中称为动作对象)是对象模型中的对象;功能模型中的数据流是对象模型中的的对象;功能模型中的数据流是对象模型中的属性值,或者是整个对象。属性值,或者是整个对象。对象模型描述了功能模型中的动作对象、对象模型描述了功能模型中的动作对象、数据存储,以及数据流的结构。数据存储,以及数据流的结构。第12章 面向对象的分析与设计 10统一建模语言(统一建模语言(UML)面向对象开发范型阶段之间的过渡是面向对象开发范型阶段之间的过渡是“无缝无缝”的,的,定义对象抽象类和建立面向对象系统的各类模型,需定义对象抽象类和建立面向对象系统的各类模型,需要一组便
11、于描述的图形符号,并规定要一组便于描述的图形符号,并规定用用这些符号表示这些符号表示特定模型的语义规则。特定模型的语义规则。统一建模语言统一建模语言(UML)是专门设计的一种统一描述是专门设计的一种统一描述面向对象方法的符号系统面向对象方法的符号系统。UML是一种基于面向对象的可视化建模语言,实现是一种基于面向对象的可视化建模语言,实现了基于面向对象的建模工具的统一,已成为国际、国了基于面向对象的建模工具的统一,已成为国际、国内可视化建模语言实际上的工业标准。内可视化建模语言实际上的工业标准。第12章 面向对象的分析与设计 11UML的组成的组成 UMLUML用图形符号隐含表示了模型元素的语法
12、,用图形符号隐含表示了模型元素的语法,用这些图形符号组成元模型表达语义,组成模用这些图形符号组成元模型表达语义,组成模型描述系统结构(或称为静态特征)以及行为型描述系统结构(或称为静态特征)以及行为(或称为动态特征)。(或称为动态特征)。UMLUML定义了两类定义了两类模型元素模型元素。一类模型元素用于。一类模型元素用于表示模型中的某个概念,如表示模型中的某个概念,如类、对象、用例、类、对象、用例、结点、构件、包、接口结点、构件、包、接口等;另一类模型元素用等;另一类模型元素用于表示模型元素之间相互连接的关系,主要有于表示模型元素之间相互连接的关系,主要有关联、泛化关联、泛化(表示一般与特殊的
13、关系)(表示一般与特殊的关系)、依赖、依赖、聚集聚集(表示整体与部分的关系)等。(表示整体与部分的关系)等。第12章 面向对象的分析与设计 12UML部分模型元素的图形表示部分模型元素的图形表示 聚集聚集依赖依赖泛化泛化关联关联状态状态对象对象属性属性操作操作类类属性属性操作操作角色角色用例用例结结点点 构件构件包包接口接口注解注解第12章 面向对象的分析与设计 13UML模型结构模型结构 根据根据UML语义,语义,UML模型结构模型结构可分为元元模型、元模型、模型可分为元元模型、元模型、模型和用户模型四个抽象层次结构。它们的层次关系是下一层是上一和用户模型四个抽象层次结构。它们的层次关系是下
14、一层是上一层的基础,上一层是下一层的实例。层的基础,上一层是下一层的实例。元元模型层元元模型层定义描述元模型的语言,它是任何模型的基础。定义描述元模型的语言,它是任何模型的基础。UML元元模型定义了元类、元属性、元操作等概念。元元模型定义了元类、元属性、元操作等概念。元模型层元模型层定义描述模型的语言,它是组成定义描述模型的语言,它是组成UML模型的基本元素,模型的基本元素,包括面向对象和构件的概念。元模型是元元模型的一个实例。包括面向对象和构件的概念。元模型是元元模型的一个实例。模型层模型层定义描述信息领域的语言,它组成了定义描述信息领域的语言,它组成了UML模型。模型。用户模型层用户模型层
15、表达一个模型的特定情况,是模型的实例。表达一个模型的特定情况,是模型的实例。第12章 面向对象的分析与设计 14UML模型模型结构结构和示例和示例 图图12.2 UML模型模型 结构结构用户模型用户模型模型模型元模型元模型元元模型元元模型图图12.3 元元模型示元元模型示例例事物事物图图12.4 元模型示例元模型示例n 相 关相 关 1.n链接链接对象对象n 相 关相 关 1.n关联关联类类n实例实例1n实例实例1.n第12章 面向对象的分析与设计 15UML模型模型 UML可以从不同视角为系统建模,形成不同的视可以从不同视角为系统建模,形成不同的视图。每个视图是系统完整描述中的一个抽象,代表
16、该图。每个视图是系统完整描述中的一个抽象,代表该系统一个特定的方面;每个视图又由一组图构成,图系统一个特定的方面;每个视图又由一组图构成,图包含了强调系统某一方面的信息。包含了强调系统某一方面的信息。UML提供了两类图:静态图和动态图(共计九提供了两类图:静态图和动态图(共计九种)。种)。静态图包括静态图包括用例图用例图、类图类图、对象图对象图、构件图构件图和和部署图部署图。动态图包括动态图包括状态图状态图、时序图时序图、协作图协作图和和活动图活动图。UML提供了五种视图,包括提供了五种视图,包括用例视图、结构模型用例视图、结构模型(逻辑)(逻辑)视图视图、行为模型行为模型(并发)(并发)视图
17、视图、实现模型实现模型(构件)(构件)视图视图和和部署视图部署视图。第12章 面向对象的分析与设计 16UML的特点和应用的特点和应用 UML是面向对象的用例模型、类是面向对象的用例模型、类/对象模型、动态模型对象模型、动态模型等不同系统模型的图形符号描述。它所提供的表示模等不同系统模型的图形符号描述。它所提供的表示模型元素的图形和方法,能简洁明确地表达面向对象技型元素的图形和方法,能简洁明确地表达面向对象技术的主要概念和建立各类系统模型。它的标准化定义、术的主要概念和建立各类系统模型。它的标准化定义、可视化描述、可扩展性机制等,显示了可视化描述、可扩展性机制等,显示了UML强大的生强大的生命
18、力。命力。UML作为面向对象技术最重要的一种建模语言工具,作为面向对象技术最重要的一种建模语言工具,特别能从不同的视角为系统建模。特别能从不同的视角为系统建模。UML适用于各种复适用于各种复杂类型的系统,乃至系统各个层次的建模,而且适用杂类型的系统,乃至系统各个层次的建模,而且适用于系统开发过程的不同阶段。于系统开发过程的不同阶段。第12章 面向对象的分析与设计 1712.2 面向对象面向对象分析分析模型模型 第12章 面向对象的分析与设计 18面向对象面向对象分析分析模型模型 面向对象分析(OOA,Object-Oriented Analysis)是)是采用面向对象思路进行需求分析建模的过程
19、。采用面向对象思路进行需求分析建模的过程。面向对象的分析模型主要有用例模型、类面向对象的分析模型主要有用例模型、类/对象模型、对象模型、对象对象-关系模型和对象关系模型和对象-行为模型等。行为模型等。类类/对象模型描述系统所涉及的全部类对象模型描述系统所涉及的全部类/对象,每个类对象,每个类/对象都通过属性、操作、协作者进一步描述;对象对象都通过属性、操作、协作者进一步描述;对象-关关系模型描述对象之间的静态关系,同时定义了系统所系模型描述对象之间的静态关系,同时定义了系统所有重要的消息路径,它也可以涉及到对象的属性、操有重要的消息路径,它也可以涉及到对象的属性、操作、协作者;对象作、协作者;
20、对象-行为模型描述了系统动态行为。行为模型描述了系统动态行为。第12章 面向对象的分析与设计 19OOA模型的结构模型的结构 OOA模型的核心是模型的核心是使用实例(简称用使用实例(简称用例)。需求分析通例)。需求分析通过创建一组场景,过创建一组场景,每个场景包含一个每个场景包含一个用例,从场景分析用例,从场景分析入手,进一步抽取入手,进一步抽取和定义和定义OOA模型。模型。因此,因此,OOA也可以也可以说是一种说是一种半形式化半形式化的规格说明技术的规格说明技术。使用使用实例实例 类类/对象对象 模型模型 属性属性,操作操作,协作者协作者 对象对象-行为模行为模型型图图12.5 面向对象分析
21、模型的结构面向对象分析模型的结构 对象对象-关系关系 模型模型第12章 面向对象的分析与设计 20用例模型用例模型 用例模型用例模型是一种基于场景分析的,是一种基于场景分析的,OOA的一个最基本、的一个最基本、最重要的需求导出技术。最重要的需求导出技术。一个用例是系统某个动作步骤的集合,主要由角色和一个用例是系统某个动作步骤的集合,主要由角色和动作组成。角色是存在于系统之外的任何事物;动作动作组成。角色是存在于系统之外的任何事物;动作是系统的一次执行,由角色触动。是系统的一次执行,由角色触动。建立用例模型主要是建立用例模型主要是识别角色识别角色和和用例用例,给出系统,给出系统用例用例视图视图(
22、可以分层次的)描述和每个用例的实例(可以分层次的)描述和每个用例的实例脚本脚本(文字)描述。(文字)描述。第12章 面向对象的分析与设计 21用例视图及示例用例视图及示例 UML中,用例视图由中,用例视图由角色角色、用例用例、关联关联和和系统边界系统边界组组成。成。图图12.6 保险业务系统的用例视图例保险业务系统的用例视图例保险保险销售员销售员客户客户签定保险单签定保险单销售统计资料销售统计资料客户数据资料客户数据资料第12章 面向对象的分析与设计 22对象对象-关系模型关系模型 UML中,中,对象对象-关系模型关系模型分别用分别用类图类图和和对象图对象图描述。描述。类图包括类、类之间的关联
23、、类关联重数和继承等基本元素。类图包括类、类之间的关联、类关联重数和继承等基本元素。对象图是系统运行某个时刻对象之间的关联关系。对象图是类对象图是系统运行某个时刻对象之间的关联关系。对象图是类图的一个实例,类似于对象是类的一个实例。图的一个实例,类似于对象是类的一个实例。对象图和类图的区别是类图中的关联表示两个类是有联系的,对象图和类图的区别是类图中的关联表示两个类是有联系的,而在某个时刻它们可能没有联系,表现在对象图中它们之间就没而在某个时刻它们可能没有联系,表现在对象图中它们之间就没有关系,也就是说,只要在某个时刻对象之间有过联系,那么在有关系,也就是说,只要在某个时刻对象之间有过联系,那
24、么在类图中就认为它们存在连接关系。类图中就认为它们存在连接关系。第12章 面向对象的分析与设计 23类图和对象图示例类图和对象图示例保险公司保险公司保险合同保险合同客客 户户图图12.7 保险业务系统的类图保险业务系统的类图1 有有 0.n保险单保险单表达表达0.1 表示为表示为10.n 有有 1.n涉及涉及涉及涉及软件工程:标题软件工程:标题图图12.8 图书馆系统的借书对象图图书馆系统的借书对象图借借包含包含621375:书目:书目李华:学生李华:学生第12章 面向对象的分析与设计 24对象对象-行为(动态)模型行为(动态)模型 对象行为模型对象行为模型(动态模型动态模型),说明对象的操作
25、是如何),说明对象的操作是如何进行的。进行的。UML中,对象中,对象-行为模型采用行为模型采用时序图、协作时序图、协作图和状态(转换)图描述。图和状态(转换)图描述。时序图时序图和和协作图协作图都是描述对象的动态行为,两者都是描述对象的动态行为,两者从从不同的侧面,反映了系统中对象是如何交互完成功能不同的侧面,反映了系统中对象是如何交互完成功能的;的;不同之处是时序图注重对象交互的时间关系不同之处是时序图注重对象交互的时间关系,协协作图注重对象的空间协作关系。作图注重对象的空间协作关系。状态图状态图描述系统中对象的状态变化,常用于单个对描述系统中对象的状态变化,常用于单个对象对不同事件的响应行
展开阅读全文