收藏 分享(赏)

软件工程 第4章 面向对象与UML CUMT 11-07-26.ppt

上传人:Facebook 文档编号:3479915 上传时间:2018-11-03 格式:PPT 页数:130 大小:2.51MB
下载 相关 举报
软件工程 第4章 面向对象与UML CUMT 11-07-26.ppt_第1页
第1页 / 共130页
软件工程 第4章 面向对象与UML CUMT 11-07-26.ppt_第2页
第2页 / 共130页
软件工程 第4章 面向对象与UML CUMT 11-07-26.ppt_第3页
第3页 / 共130页
软件工程 第4章 面向对象与UML CUMT 11-07-26.ppt_第4页
第4页 / 共130页
软件工程 第4章 面向对象与UML CUMT 11-07-26.ppt_第5页
第5页 / 共130页
点击查看更多>>
资源描述

1、计算机网络课件 制作人:谢希仁,张 磊 博士,副教授 ,第4章 面向对象与UML,课件制作人:谢希仁,4.1面向对象概述 4.2UML简介 4.3静态建模 4.4动态建模 4.5物理架构建模 4.6UML工具,课件制作人:谢希仁,4.1面向对象概述,1.面向对象方法的定义 面向对象方法是以对象为核心的软件开发方法,使软件开发尽可能按照人对客观世界认识的规律和解决问题的方法与过程,以便使描述问题的空间与实现方法在结构上尽量一致。 是把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。,课件制作人:谢希仁,面向对象方法的特色,面向对象方法是一个非常实

2、用而强有力的软件开发方法: 方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的 从生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所使用的部分与在下一个阶段所使用的部分是衔接的,所使用的技术经过生存期每一阶段后不改变,课件制作人:谢希仁,2.面向对象与传统开发方法的比较,课件制作人:谢希仁,结构化方法强调过程抽象和模块化,将现实世界映射为数据流和加工,加工之间通过数据流进行通信,数据作为被动的实体被主动的操作所加工,是以过程为中心来构造系统和设计程序的 面向对象方法把世界看成是独立对象的集合,对象将数据和操作封装在一起,提供有限的外部接口,其内部的实现细节、数据结构及对它们

3、的操作是外部不可见的,对象之间通过消息相互通信,课件制作人:谢希仁,结构化方法(SA、SD、SP) 指导思想:自顶向下,逐步细化 自顶向下地进行功能分解; 从外部功能上模拟客观世界;,课件制作人:谢希仁,结构化设计实例,教材 购销系统,学 生,采 购 员,购书单,领书单,缺书单,进书通知,进书通知,学 生,购书单,领书单,缺书单,进书通知,1 销售,2 采购,自顶向下地进行功能分解,课件制作人:谢希仁,进书通知,学 生,采 购 员,购书单,领书单,缺书单,进书通知,1 销售,2 采购,2.1 按书号 汇总缺书,2.2 按出版社 汇总缺书,2.3 修改库存,采 购 员,缺书列表,进书通知,自顶向

4、下地进行功能分解,课件制作人:谢希仁,自顶向下地进行功能分解,课件制作人:谢希仁,结构化方法(SA、SD、SP) 【指导思想】自顶向下,逐步细化 自顶向下地进行功能分解; 从外部功能上模拟客观世界; 【开发过程】”做什么”如何做” 【优点】系统的结构性强,便于设计和理解 【缺点】维护困难; 用户的需求不可能一次提得完备、精确; 一旦需求改变,后续的设计和实现都要修改;,课件制作人:谢希仁,自顶向下地进行功能分解,W,W1,W1.1,W1.2,W1.3,维护困难,课件制作人:谢希仁,结构化方法(SA、SD、SP) 【指导思想】自顶向下,逐步细化 自顶向下地进行功能分解; 从外部功能上模拟客观世界

5、; 【开发过程】”做什么”如何做” 面向对象方法(OOA、OOD、OOP) 【指导思想】 基于对象的自底向上地进行功能综合; 从内部结构上模拟客观世界; 【开发过程】”用什么做”做什么” ”如何做”,课件制作人:谢希仁,面向对象方法(OOA、OOD、OOP) 【指导思想】 基于对象的自底向上地进行功能综合; 从内部结构上模拟客观世界; 【开发过程】”用什么做”做什么” ”如何做” 用什么做 认识应用领域中的对象及其关系; 设计出程序的基本单位类、对象; 做什么 需要具体解决某一应用任务; 如何做 如何综合类、对象解决问题;,课件制作人:谢希仁,【结构化方法 .VS. 面向对象方法】 结构化方法

6、 以过程为中心构造系统。 将现实世界映射为数据流,加工。 强调过程抽象和模块化 加工之间通过数据流进行通信。 被动的数据被主动的加工所操作。 面向对象方法 以对象为中心构造系统。 把世界看成对象的集合。 对象将数据和操作封装在一起。 对象之间通过消息相互通信。,课件制作人:谢希仁,3.面向对象方法的优点,(1)面向对象方法强调把问题域的概念直接映射到对象以及对象之间的接口,符合人们通常的思维方式,减少了结构化方法从问题域到分析阶段的映射误差 (2)面向对象方法从分析到设计再到采用致的模型表示,每一阶段可以直接复用前阶段的工作成果,弥合了结构化方法从数据流图到模块结构图转换的鸿沟,减少了工作量和

7、映射误差,课件制作人:谢希仁,(3)面向对象方法开发的软件,具有易于修改和维护的特性 把属性和服务封装在“对象”中; 改动局限于一个对象的内部,减少了改动所引起的系统被动效应。 (4)面向对象方法具有的继承性和封装性支持软件复用,使软件易于扩充,能较好地适应复杂大系统不断发展和变化的要求。,课件制作人:谢希仁,4.面向对象方法的发展与流派,面向对象方法起步于20世纪80年代末期面向对象编程,同时形成了面向对象基本概念和可供参考的指导思想 到90年代初,面向对象在分析与设计阶段的运用提升到理论和工程的高度,发展成一种完整的方法论和系统化的技术体系。 一整套针对分析与设计阶段的方法、策略与技巧 一

8、套便于分析人员、设计人员、编程人员、管理人员以及用户彼此沟通的一致的基本表示,课件制作人:谢希仁,3种有影响的OO方法,(1) Coad-Yourdon的OOA和OOD (2) Booch的OOD (3) Rumbaugh等人的OMT,课件制作人:谢希仁,(1)Booch的OOD 擅长设计; (2)Rumbaugh等人的OMT 擅长分析; (3)Jacobson的OOSE 擅长业务建模,Unified Modeling Language,课件制作人:谢希仁,Rational三剑客-UML的奠基者,UML是对象管理组织(OMG)采纳的基于面向对象技术的标准建模语言。,Jim Rumbaugh,G

9、rady Booch,Ivar Jacobson,课件制作人:谢希仁,5 面向对象基本概念,课件制作人:谢希仁,Coad和Yourdon的定义:,面向对象=对象+类+继承+通信,5 面向对象基本概念,课件制作人:谢希仁,【类】是对一组具有相同结构、操作,并遵守相同规则的对象的抽象; 【对象】是类的一个实例;,铅笔,【类】,【对象】,课件制作人:谢希仁,【对象】是类的一个实例; 每个对象都具有属性及与之相关的事件和方法,通过对象的属性、事件和方法来处理对象。 【对象三要素】 属性(Property) 定义对象的特征或某一方面的行为; 如: 汽车的颜色、载重量; 表单(表单类对象)的大小、标题等;

10、,课件制作人:谢希仁,事件(Event) 对象识别的一个动作,由相应的方法对此动作进行响应; 如:单击鼠标(Click)、移动鼠标(MouseMove)、按键(KeyPress) 对象的事件集合是固定的,用户不能创建新的事件; 方法(Method) 对象能够执行的一个操作,是与对象相关联的过程; 方法可由用户自己创建(处理代码);,课件制作人:谢希仁,封装性(encapsulation) 继承性(inheritance) 多态性(polymorphism),课件制作人:谢希仁,圆形A,cColor=红色,FUNCTION CalArea(),FUNCTION Draw(),nR=2,矩形B,c

11、Color=蓝色,FUNCTION CalArea(),FUNCTION Draw(),nL=4,nW=5,圆形类Circul,矩形类Rectangle,图形类Graphic,A.Draw(),B.Draw(),封装性(encapsulation),课件制作人:谢希仁,图形类Graphic,cColor &颜色,FUNCTION CalArea(),FUNCTION Draw(),继承性(inheritance),圆形类Circul,cColor &颜色,FUNCTION CalArea(),FUNCTION Draw(),矩形类Rectangle,cColor &颜色,FUNCTION Ca

12、lArea(),FUNCTION Draw(),父类,子类,nR &半径,nL &长,nW &宽,课件制作人:谢希仁,圆形类Circul,cColor &颜色,FUNCTION CalArea(),FUNCTION Draw(),矩形类Rectangle,cColor &颜色,FUNCTION CalArea(),FUNCTION Draw(),nR &半径,nL &长,nW &宽,圆形A,cColor=红色,FUNCTION CalArea(),FUNCTION Draw(),nR=2,矩形B,cColor=蓝色,FUNCTION CalArea(),FUNCTION Draw(),nL=4

13、,nW=5,属性,方法,课件制作人:谢希仁,圆形A,cColor=红色,FUNCTION CalArea(),FUNCTION Draw(),nR=2,矩形B,cColor=蓝色,FUNCTION CalArea(),FUNCTION Draw(),nL=4,nW=5,圆形类Circul,矩形类Rectangle,图形类Graphic,(3)多态性(polymorphism) 根据运行时对象的类型确定操作,图形G,G=A,G=B,G.Draw(),课件制作人:谢希仁,4.2 UML简介,Unified Modeling Language 近十几年来OOSE最重要的成果 贡献者:Grady Bo

14、och, James Rumbaugh, Ivar Jacobson于1996年6月推出中文网站 http:/www. http:/ http:/,课件制作人:谢希仁,UML是一种可视化的图形符号建模语言,利用它可以进行需求分析、概要设计、详细设计、编程实现、项目计划、测试、原型迭代、产品发布、产品维护等。 目前在软件工程里主要用于系统分析与系统设计。 Rational Rose是UML的主要建模工具。 Microsoft Visio是UML常见的建模工具。,课件制作人:谢希仁,UML的重要影响,软件生存周期:RUP(Rational Unified Process) 软件建模方式:可视化的

15、语言 软件文档规范:文档由UML建模工具自动产生 软件人员分工:岗位界线逐渐趋向模糊,课件制作人:谢希仁,模型是一个系统的完整的抽象,模型是对现实的简化。 人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射。,领域问题,概念模型,分析、抽取,系统需求,解决方案,分析、设计,提取,UML作为一种可视化的建模语言,提供了丰富的基于面向对象概念的模型元素及其图形表示元素。,什么是模型?为什么要建模?,课件制作人:谢希仁,UML由模型元素、扩展机制、图及视图等部分组成: 模型元素

16、是构成图的最基本的元素; 扩展机制用于扩展一个模型元素; 图由模型元素和扩展机制构成; 视图由一个或多个图构成,UML包括5种不同的视图:用例视图、设计视图、过程视图、实现视图、配置视图。,4.2.1 UML的组成,课件制作人:谢希仁,1.模型元素,分为两类: 一类表示模型中的概念 另一类表示模型元素之间的关系,课件制作人:谢希仁,活动者(actor)代表与系统交互的人、硬件设备或另一个系统。,表示模型中的概念,课件制作人:谢希仁,用例(Use case)规定了系统或部分系统的行为。用例表示了系统的功能。系统的用例构成了系统的所有使用功能。,课件制作人:谢希仁,类(class)是面向对象系统中

17、最基本的组成元素,用来表示系统中需要处理的事物。,课件制作人:谢希仁,对象(object )代表类的一个特定实例。消息(message)是对象间的通信,课件制作人:谢希仁,接口(interface),规定类或组件服务的操作的集合。包(packet),将各种各样的模型元素通过内在的语义连接成的一个整体。,课件制作人:谢希仁,组件(component)代表一个接口定义良好的软件模块。状态(state)表示一个模型元素在其生命周期的一种情况。,课件制作人:谢希仁,活动(activity),由一系列的动作组成。结点(node),系统运行时存在的物理单元。,课件制作人:谢希仁,关联(associatio

18、n),描述类与类之间的联系。 普通关联: (1)名字,表示模型元素之间的关系,课件制作人:谢希仁,(2)导航,在关联端加上箭头表示关联的方向。 (3)多重性,用来说明数量或数量范围。,课件制作人:谢希仁,(4)角色,在关联的类图标旁还可以标出类的角色名。 (5)可见性,限制关联的外部对象对于该关联的可见性。,课件制作人:谢希仁,(6)限定符,将关联中多的那一端的具体对象分成对象集。,课件制作人:谢希仁,聚合(aggregation),“整体”与“部分”,课件制作人:谢希仁,组合,整体与部分之间具有很强的所有关系和一致的生命周期,“部分”不能独立于“整体”而存在。,课件制作人:谢希仁,泛化关系被

19、称为继承关系。一般性实体是特殊性实体的泛化,特殊性实体是一般性实体的特化。,课件制作人:谢希仁,依赖关系,一个模型元素的变化会影响到另一个模型元素。,课件制作人:谢希仁,2 UML 的元模型结构,UML 的语义是定义在一个四个抽象级建模概念框架中的这四层分别是: 元元模型(meta-meta model )层 组成UML 最基本的元素,事物Thing代表要定义的所有事物。 元模型(meta model) 层 组成了UML 的基本元素,包括面向对象和面向组件的概念,通常叫做类模型class model 或类型模型type model。,课件制作人:谢希仁,模型model 层 组成了UML 的模型

20、。这一层中的每个概念都是元模型层中概念的一个实例。 用户模型user model 层 这层中的所有元素都是UML 模型的例子,这一层中的每个概念都是模型层的一个实例。,课件制作人:谢希仁,图,1)用例图,描述系统和外部环境的关系和系统所能提供的服务。,3 图和视图,课件制作人:谢希仁,2)类图用来表示系统中的类以及类与类之间的关系。,课件制作人:谢希仁,3)对象图是类图的一个实例,及时具体地反映了系统在某一时刻的具体状态。,课件制作人:谢希仁,4)序列图描述完成某个行为的对象之间所传递的消息的时间顺序。,课件制作人:谢希仁,5)协作图描述系统的行为是如何由系统的各成分合作实现的。,课件制作人:

21、谢希仁,序列图和协作图都是UML的交互图,在语义上是等价的,可以互相转换而不损失信息。,课件制作人:谢希仁,6)状态图,描述一个特定对象的所有可能状态以及引起状态转移的事件。,课件制作人:谢希仁,7)活动图,即流程图。,课件制作人:谢希仁,8)组件图,描述了组件及组件之间的关系,表示了组件之间的组织和依赖关系。,课件制作人:谢希仁,9)配置图(部署图)显示了基于计算机系统的物理体系结构,主要用于描述分布式系统的组件与硬件之间的关系。,课件制作人:谢希仁,视图,用例视图,描述系统应具有的功能。 逻辑视图,显示系统的内部功能是怎样实现的。 进程视图,显示系统的并发工作过程。 实现视图(构件视图),

22、描述系统版本的配置和管理。 配置(部署)视图,描述物理系统组成部分的分布、交付和安装。,课件制作人:谢希仁,(1) 统一标准UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的正式标准,提供了标准的面向对象的模型元素的定义和表示。(2) 面向对象UML还吸取了面向对象技术领域中其他流派的长处。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。,4.2.2 UML的特点,课件制作人:谢希仁,(3) 可视化、表示能力强系统的逻辑模型或实现模型都能用UML模型清晰的表示,可用于复杂软件系统的建模。(4) 独立于过程UML

23、是系统建模语言,独立于开发过程。(5) 易掌握、易用由于UML的概念明确,建模表示法简洁明了,图形结构清晰,易于掌握使用。,课件制作人:谢希仁,4.3 用例建模,1992年由Jacobson提出了Use case 的概念及可视化的表示方法Use case图,受到了IT界的欢迎,被广泛应用到了面向对象的系统分析中。用例驱动的系统分析与设计方法已成为面向对象的系统分析与设计方法的主流。,课件制作人:谢希仁,用例模型由Jacobson在开发AXE系统中首先使用,并加入由他所倡导的OOSE和Objectory方法中(Objectory过程逐渐进化为Rational统一过程)。用例方法引起了面向对象领域

24、的极大关注。自1994年Ivar Jacobson的著作出版后,面向对象领域已广泛接纳了用例这一概念,并认为它是第二代面向对象技术的标志。,课件制作人:谢希仁,用例建模技术,用于描述系统的功能需求。在宏观上给出模型的总体轮廓。通过对典型用例的分析,使开发者能够有效地了解用户的需求。,贸易经理,风险分析,设置边界,进行交易,交易估价,更新帐目,使用,使用,扩展,营销人员,超越边界,评价,记帐系统,销售人员,用例图,课件制作人:谢希仁,用例模型描述的是外部执行者(Actor)所理解的系统功能。 它描述了待开发系统的功能需求。它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的

25、实现,而且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和 UML 的各个模型。用例模型由若干个用例图构成,用例图中主要描述执行者和用例之间的关系。在UML中,构成用例图的主要元素是用例和执行者及其它们之间的联系。,课件制作人:谢希仁,创建用例模型的工作包括: 定义系统 确定执行者和用例 描述用例 定义用例间的关系 确认模型。,课件制作人:谢希仁,一、执行者(角色、Actor)执行者是指用户在系统中所扮演的角色。执行者在用例图中是用类似人的图形来表示, 但执行者可以是人,也可以是一个外界系统。,角色描述模板,注意:用例总是由执行者(角色)启动的。还应画出相应的执行者描述模板。,课件

26、制作人:谢希仁,如何确定执行者: 1、谁使用系统的主要功能(主执行者)? 2、谁需要从系统获得对日常工作的支持和服务? 3、需要谁维护管理系统的日常运行(副执行者)? 4、系统需要控制哪些硬件设备? 5、系统需要与其它哪些系统交互? 6、谁需要使用系统产生的结果(值)?,课件制作人:谢希仁,二、用例(use case)从本质上讲,一个用例是用户与计算机之间的一次典型交互作用。在UML中,用例被定义成系统执行的一系列动作(功能)。用例有以下特点:用例捕获某些用户可见的需求,实现一个具体的用户目标。用例由执行者激活,并将结果值反馈给执行者。用例必须具有功能上的完整描述。,用例模型,售货系统用例图,

27、课件制作人:谢希仁,如何确定用例: 1、与系统实现有关的主要问题是什么? 2、系统需要哪些输入/输出?这些输入/输出从何而来?到哪里去? 3、执行者需要系统提供哪些功能? 4、执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?,用例模型,课件制作人:谢希仁,用例图描述了系统的功能需求,它是从执行者的角度来理解系统,由“执行者”、“用例”和“用例之间的关系”3类模型元素构成。图中还有另外两种类型的连接,即”包含“和”扩展“关系,是两种不同形式的关系。,“包含”表示一个用例包含另一个用例。 “Extend”通过向被扩展的用例添加动作来扩展用例。,课件制作人:谢希仁,4.4 静态建模,UM

28、L的静态建模机制包括: 用例图(Use case diagram) 类图(Class diagram) 对象图(Object diagram ) 包图(Package diagram),课件制作人:谢希仁,1.类图 主要是描述类和类之间的关系。 2.对象图 主要是描述对象和对象之间的关系。 3.包图 将许多类集合成一个集合。,课件制作人:谢希仁,类图(Class Diagram) 【作用】 描述类和类之间的静态关系。 【组成】 “类”(Class) 关联关系(Association) 聚合关系(Aggregation) 组合关系(Composition) 依赖关系(Dependency) 泛化

29、关系(Generalization) 实现关系(Realization),课件制作人:谢希仁,类”(Class) 描述一组具有相同属性、操作、语义的对象。,类名,属性,操作,课件制作人:谢希仁,关联关系(Association) 【基本含义】一个类的对象作为另一个类的对象的成员变量时,两个类之间有关联关系。,public class 妻子 private 丈夫 the丈夫;public 妻子() ,public class 丈夫 private 妻子 the妻子;public 丈夫() ,课件制作人:谢希仁,关联关系(Association) 【特性】多重性(Multiplicity) 类A的

30、一个对象类B的对象个数。1 仅有一个0* 0或者更多1* 一个或者更多01 0个或者1个58 特定的范围内(5,6,7或8) 47,9 符合的(4,5,6,7或9),课件制作人:谢希仁,关联关系(Association) 【特性】多重性(Multiplicity) 类A的一个对象类B的对象个数。,public class 妻子 private 丈夫 the丈夫;public 妻子() ,public class 丈夫 private 妻子 the妻子;public 丈夫() ,课件制作人:谢希仁,关联关系(Association) 【特性】多重性(Multiplicity) 类A的一个对象类B

31、的对象个数。,public class 麻雀 private 腿 the腿2; ,课件制作人:谢希仁,关联关系(Association) 【特性】访问方向(Navigability) 表示类A的对象能够“访问”类B的对象。,public class 小公司总裁 private 小公司职员 the小公司职员20; ,public class 小公司职员 private 小公司总裁 the小公司总裁; ,两端都没有箭头的连线表示双向关联关系,课件制作人:谢希仁,关联关系(Association) 【特性】访问方向(Navigability) 表示类A的对象能够“访问”类B的对象。,public c

32、lass 大公司总裁 public 大公司核心职员 the大公司核心职员20; ,public class 大公司普通职员 public 大公司总裁 the大公司总裁; ,public class 大公司核心职员 private 大公司总裁 the大公司总裁; ,课件制作人:谢希仁,关联关系(Association) 【特性】访问方向(Navigability) 表示类A的对象能够“访问”类B的对象。,课件制作人:谢希仁,关联关系(Association) 【特性】角色 表示类A的对象对类B的对象的具体含义。,public class 企业 public 金融机构 股东; ,public cl

33、ass 金融机构 public 企业 经济来源; ,课件制作人:谢希仁,关联关系(Association) 【特性】角色 表示类A的对象对类B的对象的具体含义。,public class 妻子 private 丈夫 the丈夫;public 妻子() ,public class 丈夫 private 妻子 the妻子;public 丈夫() ,课件制作人:谢希仁,关联关系(Association) 【强化形式】聚合关系(Aggregation) 表示两个类的对象间有“整体”与“部分”的关系。,public class 球员 private 球队 the球队; ,public class 球队

34、private Vector the球员; ,整体,部分,课件制作人:谢希仁,关联关系(Association) 【强化形式】聚合关系(Aggregation) 表示两个类的对象间有“整体”与“部分”的关系 注意: “整体”的对象消失不会导致“部分”的对象的消失。 球队解散了,球员还在 “部分”的对象可以被多个“整体”的对象共享。 一个球员可以是俱乐部球队的球员 同时也可以是国家队的球员,课件制作人:谢希仁,关联关系(Association) 【强化形式】组合关系(Composition) “整体”与“部分”间有“皮之不存,毛将焉附”的语义。 “部分”不能被“整体”共享。,public cla

35、ss 活人private 跳动的心脏 the心脏 = new 跳动的心脏();public 活人(); ,整体,部分,public class 跳动的心脏 private 活人 the活人;public 跳动的心脏(); ,课件制作人:谢希仁,关联关系(Association) 【强化形式】组合关系(Composition) “整体”与“部分”间有“皮之不存,毛将焉附”的语义。 “部分”不能被“整体”共享。,课件制作人:谢希仁,类图(Class Diagram) 【组成】依赖关系(Dependency) 两个对象之间由于通信而形成的关系,表示 对象A发送消息到另一个对象B; 由对象B完成某些处

36、理。 对象收到消息后执行的操作称为它提供的服务,课件制作人:谢希仁,类图(Class Diagram) 【组成】泛化关系(Generalization) 类A(特殊)到类B(一般)的泛化关系表示“类A是类B的一种”。 类A子类 类B父类 【泛化关系 .VS.继承】 泛化关系是一种关系的名称,用在分析、设计。 继承是一种实现泛化关系的机制,用在实施。,public class 球类运动员 extends 运动员 public class 大球运动员 extends 球类运动员 public class 足球运动员 extends 大球运动员 ,课件制作人:谢希仁,类图(Class Diagram

37、) 【组成】泛化关系(Generalization) 类A(特殊)到类B(一般)的泛化关系表示“类A是类B的一种”。 类A子类 类B父类 泛化关系有助于代码共享和复用。 共同的属性放在上层,而将特有的属性放在下层; 共同的服务放在上层,而将特有的服务放在下层,课件制作人:谢希仁,【组成】泛化关系(Generalization) 类A(特殊)到类B(一般)的泛化关系表示“类A是类B的一种”。,public class 交通工具 public int 旅客容量;public int 最大速度;public float 百公里耗油量;public abstract void 启动();public

38、abstract void 驾驶(); ,public class 汽车 extends 交通工具 public float 排气量;public void 刹车() public void 启动() public void 驾驶() ,课件制作人:谢希仁,类图(Class Diagram) 【组成】实现关系(Realization) 描述类实现接口。 接口作为要求被提出,一组操作(服务); 类具体履行接口中声明的操作(服务)。,public interface 照顾学龄前儿童 public void 喂饭();public void 陪护();public void 保洁(); ,publi

39、c class 幼儿园 implements 照顾学龄前儿童 public void 喂饭();public void 陪护();public void 保洁(); ,public class 家庭保姆 implements 照顾学龄前儿童 public void 喂饭();public void 陪护();public void 保洁(); ,课件制作人:谢希仁,关联关系,泛化关系,聚合关系,组合关系,依赖关系,实现关系,课件制作人:谢希仁,3.包图 将许多类集合成一个集合。,包图名,课件制作人:谢希仁,4.5 动态建模,要想对一个系统了解得比较清楚,首先应当考察它的静态结构,即在某一时刻它

40、的对象和这些对象之间相互联系的结构;然后应当考察在任何时刻对象及其联系的改变。系统的这些涉及时序和改变的状况,用动态模型来描述。 动态模型着重于系统的控制逻辑。 建立对象交互图,将用例的行为分布到对象中 事件追踪图 状态图 时序图 协作图,课件制作人:谢希仁,1.事件追踪图,事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。 场景也叫做脚本,是完成系统某个功能的一个事件序列。 场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件,也可以只包括那些撞到的或由系统中某些对象生成的事件。,课件制作人:谢希仁,电话的一个场景,课件制

41、作人:谢希仁,从对象角度考虑的事件追踪图,课件制作人:谢希仁,2.时序图-顺序图,时序图表示完成某项行为的对象类和这些对象类之间传递消息的时间顺序。 时序图可视作包含二维坐标的图形。它在水平方向列出参加交互的对象,垂直方向表示对象间交互的时间先后顺序。 每个对象下方的垂直虚线表示相应对象的生命期。 对象间通过消息进行交互,消息用带有箭头的直线表示。箭头表示消息的传递方向。,课件制作人:谢希仁,课件制作人:谢希仁,选课系统的时序图,课件制作人:谢希仁,时序图的缺点,当对象间的交互比较简单时,顺序图可以很好地从时间上表示出交互关系。 当交互情况复杂时,顺序图将变得庞大而凌乱。,课件制作人:谢希仁,

42、3.协作图,协作图包含一组对象和以消息交换为纽带的关联,用于描述系统的行为是如何由系统的成分合作实现的。,课件制作人:谢希仁,协作图与顺序图的区别,在协作图的消息签名前必须用数字标示出消息出现的顺序,以便标明消息在时间上的先后顺序。 在协作图中还可以标示数据流。数据流表示一个对象向另一个对象发出消息后,另一个对象返回的信息。,课件制作人:谢希仁,4.状态图,状态图用来建模系统中的某个类对象、子系统或整个系统在其生命周期内出现的状态、状态的迁移和迁移条件。 一个对象在某个时刻所处的状态是由该对象的属性值所决定的。当然决定对象状态的属性应该是问题域所关心的属性。对象由一种状态迁移到另一种状态,通常

43、是由于受到了外部的刺激或自身性质的改变所引起的。导致对象状态变迁的原因即迁移条件。,课件制作人:谢希仁,状态图符号,用导角矩形表示对象所处的状态。 开始状态:必须有。 终止状态:可选的,也可以没有。 带箭头的直线表示状态迁移的方向,其状态迁移的条件写在直线的上方或下方。,课件制作人:谢希仁,水在不同条件下的状态图,从图中可以看出:水具有液态、气态和固态三种状态 状态之间可以相互转化,而转化是有条件的-迁移条件。,课件制作人:谢希仁,5.活动图,对用例的描述是一项重要的任务。活动图用于描述用例。 描述用例可以使用文字形式。但是它有许多的缺点,比如难以描述系统中的并发活动和跨用例的任务,而活动图可

44、以很好地解决这些问题。 活动图的一个重要作用是描述系统中的并发活动。并发活动指的是两个或多个活动的完成在时间上不存在依赖关系,可以同时进行。,课件制作人:谢希仁,用圆角矩形表示活动。 用黑色实心圆和“牛眼”分别表示活动的开始和终止。 活动之间带箭头的直线表示从一个活动到另一个活动的转移,可在直线上标注活动转移的条件 。,课件制作人:谢希仁,活动图描述系统中的并发活动,课件制作人:谢希仁,活动图中的泳道,泳道可将活动图的逻辑描述与顺序图、协作图的描述结合起来,不仅表示出活动的变化,而且也描述了完成各个活动的类。,课件制作人:谢希仁,4.6 物理架构建模,在UML中系统系统的架构由可分为逻辑架构和

45、物理架构。逻辑结构主要是指定系统的功能特点,通过系统的功能需求来描述;物理结构则描述系统的非功能部分,如可靠性、兼容性、资源使用和系统分布。,课件制作人:谢希仁,逻辑架构解决下面的问题: 系统提供什么样的功能? 哪一个类存在?类之间是如何联系在一起的? 类和对象是如何协作来完成系统功能的? 什么是系统功能的时间约束? 当开发人员在开发架构时,应遵循的合适的计划是什么?在UML中,用来描述逻辑架构的图通常有:用例图、类图、状态图、活动图、协作图和时序图。,课件制作人:谢希仁,物理架构物理架构详细描述系统的软件、硬件。它描述硬件结构,包括不同的节点以及节点间的连接。还说明实现逻辑结构中定义的概念的

46、代码模块的物理结构和相关性,软件运行时,进程、程序和其他构件的分布。,课件制作人:谢希仁,物理架构解决下面的问题: 类和对象物理上分布在哪一个程序或进程中? 程序和进程在哪台计算机上运行? 系统中有哪些计算机和其他硬件设备,它们是如何连接在一起的? 不同的代码文件之间有何关联?如果某一文件被改变,其他的文件是否需要重新编译?,课件制作人:谢希仁,实现模型描述了系统实现时的一些特性,又称为物理体系结构(物理架构)建模。包括源代码的静态结构和运行时刻的实现结构。实现模型包括: 构件图(Component diagram) 显示代码本身的逻辑结构,它描述系统中存在的软构件以及它们之间的依赖关系。构件

47、图的元素有构件,依赖关系和界面。 配置图(Deployment diagram) 描述了系统中硬件和软件的物理配置情况和系统体系结构。显示系统运行时刻的结构,配置图中的简单结点是指实际的物理设备以及在该结点上运行构件或对象。配置图还描述结点之间的连接以及通信类型。,课件制作人:谢希仁,构件(component) 构件定义:系统中遵从一组接口且提供其实现的物理的、可替换的部分。对系统的物理方面建模时,它是一个重要的构造块。构件的名称和类的名称的命名法则很是相似,有简单名和路径名之分。构件的描述如上图所示。若构件的定义良好,该构件不直接依赖于构件的所支持的接口,在这种情况下,系统中的一个构件可以被

48、支持正确接口的其他构件所替代。构件图符如下图所示。 构件对外提供的可见操作和属性称为构件的界面。界面的图符是一个小圆圈。用一条连线将构件与圆圈连起来。,1 构件图,课件制作人:谢希仁,构件可以看作包与类对应的物理代码模块,逻辑上与包,类对应,实际上是一个文件,可以有下列几种类型的构件:1) 源代码构件;2) 二进制构件;3) 可执行构件构件对外提供的可见操作和属性称为构件的界面。界面的图符是一个小圆圈。用一条连线将构件与圆圈连起来。构件之间的依赖关系是指结构之间在编译,连接或执行时的依赖关系。用虚线箭头表示。,课件制作人:谢希仁,教学管理.exe,课程,课程管理.dll,成绩管理.dll,人事管理.dll,开设课程,选课注册,教师,学生,构件接口,某一教学管理构件图,课件制作人:谢希仁,Circle.obj类Circle.cpp,Main类Main.obj,Main类Main.cpp,图形库Graphic.dll,Square类Square.cpp,Square类Square.obj,Circle类Circle.obj,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报