一小时看懂UMLPPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《一小时看懂UMLPPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一小时 看懂 UMLPPT 课件
- 资源描述:
-
1、UML- 1 -UML- 1 -一小时看懂UMLUML- 2 -UML- 2 -概况1您的内容打在这里,或者通过复制您的文本后。概况2您的内容打在这里,或者通过复制您的文本后。概况3您的内容打在这里,或者通过复制您的文本后。+整体概况UML- 3 -UML- 3 -目录前 言用 例 图类 图顺 序 图协 作 图状 态 图活 动 图构 件 图部 署 图UML- 4 -前言UML概述UML简介UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。UML语义UML对语义的描述使
2、开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。 UML表示法UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。事物(Things)UML模型中最基本的构成元素,是具有代表性的成分的抽象关系(Relationships)关系把事物紧密联系在一起图(Diagrams )图是事物和关系的可视化表示UML- 5 -前言UML事物构件事物分组事物行为事物注释事物类:具有相同属性、相同操作、相同关系、相同语义的对象的描述接口:描述元素的外部可见行为,即服务集合的定义说明协作:描述一组事物间相互作用的集合用例:代表一个系统或系统的一部
3、分行为,是一组动作序列的集合构件:系统中的物理存在,可替换的部件节点:运行中存在的物理元素交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列包:把元素组织成组的机制注释:对元素进行约束和解释的简单符号模型的静态部分,描述概念或物理元素模型的动态部分,描述跨空间和时间的行为模型的组织部分,描述事物的组织结构模型的解释部分,对事物的内容进行解释UML- 6 -前言UML关系依赖一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)02关联一个事物的对象与另一个事物的对象间的联系04实现类元之间的语义关系,其中的一
4、个类元指定了由另一个类元保证执行的契约03泛化一种特殊/一般的关系,也可以看作是常说的继承关系01UML- 7 -用例图( Use Case Diagram ) 用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元 类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作) 类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联 类图(Class Diagram)前言UML图及特征UML- 8 -对象图( Object Diagram )对象图是类图的实例,几乎使用与类图完全
5、相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类顺序图(Sequence Diagram)顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互 顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件 前言UML图及特征UML- 9 -协作图(Collaboration Diagram) 协作图描述对象间的协作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系. 协作图的一个用途是表示一个类操作的实现 状态图(Sta
6、te Chart Diagram) 状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成 Available Locked Sold 初始状态 assigned to subscription lock time out unlock buy 状态 exchange 转换 触发器事件 前言UML图及特征UML- 10 -活动图(Activity Diagram)活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活动 构件图(Component Diagram)构件图为系统的构件建模型构件即构造应用的软件单元还
7、包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响 前言UML图及特征UML- 11 -部署图(Deployment Diagram)部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配各UML图的关系前言UML图及特征需求分析BDFD/DD用例图顺序图用例图类图类图用例文档顺序图顺序图UML- 12 -类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述对象接口是描述了一个类或构件的一个服务的操作集协作定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素
8、构成的一个群体用例是对一组动作序列的描述主动类对象至少拥有一个进程或线程的类构件是系统中物理的、可替代的部件参与者在系统外部与系统直接交互的人或事物NewClassInterfaceusecase节点是在运行时存在的物理元素交互它由在特定语境中共同完成一定任务的一组对象间交换的消息组成状态机它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列包把元素组织成组的机制注释事物是UML模型的解释部分依赖一条可能有方向的虚线关联一条实线,可能有方向泛化一条带有空心箭头的实线实现一条带有空心箭头的虚线actorNewProcessorstateNewPackagecomponet前言UML语法描
9、述UML- 13 - 判断题1、UML中一共有九种图:它们是用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图2、用例图是从程序员角度来描述系统的功能3、类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构4、活动图和状态图用来描述系统的动态行为5、协作图的一个用途是表示一个类操作的实现 选择题6、请在下面选项目中选出两种可以互相转换的图 (a) 顺序图 (b)协作图 (c) 活动图 (d) 状态图7、下面哪些图可用于BD阶段 (a)用例图 (b)构件图 (c)类图 (d)顺序图 答案:1.正确 2.错误 3.错误 4.正确 5.正确 6. (a)(b) 7.(a)(
10、c)(d)前言UML习题UML- 14 -事物名称解释UML表示参与者(Actor) 在系统外部与系统直接交互的人或事物,如另一个计算机系统或一些可运行的进程; 参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色,所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者,不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例; 参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。用例(Use Case) 系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达 。用
11、例图中的事物及解释用例图是被称为参与者的外部用户所能观察到的系统功能的模型图用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行用例图多用于静态建模阶段(主要是业务建模和需求建模)。用例图用例图说明UML- 15 -关系解释图参与者与用例之间的关系关联表示参与者与用例之间的交互,通信途径。(关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。)用例之间的关系包含箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行
12、为。扩展箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。参与者之间的关系泛化发出箭头的事物“is a”箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。用例图用例图中的关系及解释UML- 16 -实例1 参与者之间的泛化关系 参与者:经理,安全主管,保安 用例:管理人事,批准预算,批准安全证书,监视周边在参与者之间不存在泛化关系的情况下,各个参与者参与用例的情况
13、分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全主管就可以参与全部4个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。实例2 用例之间扩展和包含关系用例的上下文是:短途旅行但汽车的油不足以应付全部路程。那么为汽车加油的动作在旅行的每个场景(事件流)中都会出现,不加油就不会完成旅行。吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。用例图例子UML- 17 -航空售票的用例图参与者(a
14、ctor):顾客,监督员,信用卡服务商,信息亭用例(use case): 买票、预定, 收钱, 调查顾客参与(或称发起)买票和预定两个用例(关联关系)。这两个用例的事件流都包含Make 。收费用例(包含关系)。系统由:买票, 预定, 收费, 监督组成。该系统主要面向的用户(参与者):顾客,监督员,信用卡服务商,信息亭。用例图例子UML- 18 -右图中的参与者有? (a) 1 (b) 2 (c) 3(d) 4右图中的用例有?(a) 1(b) 2(c) 3(d) 42和3之间是什么关系?5和6呢?(a) 扩展,包含 (b) 包含,扩展5缺少了3仍然是个完整的用例?(a) 是的(b) 不是4能够参
15、与2吗?1能够参与5吗?(a) 可以,不可以 (b) 不可以,可以习题答案:1、(a)(d) 2、(b)(c) 3、(b) 4、(b) 5、(b)用例图习题UML- 19 -UML- 19 - 类图中的事物及解释 从上到下分为三部分,分别是类名、属性和操作。类名是必须有的 类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等 类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等Account- balance : double = 1+ Deposit(amount : dou
16、ble) : int+ ComputeInterest() : double可见性-代表private+代表public#代表protected也可以使用图形表示返回值类型操作名称斜体为抽象操作缺省值类名斜体为抽象类属性名称参数列表 类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法 类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象类图事物及解释UML- 20 -UML- 20 -Shape(标准图形)Shape+ Draw ()(变体图形)接口Vehicle- fMaxSpeed : float+ Start(
17、) : int+ Stop() : int抽象类模版参数模版类接口 一组操作的集合,只有操作的声明而没有实现抽象类 不能被实例化的类,一般至少包含一个抽象操作模版类 一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类类图事物及解释UML- 21 -UML- 21 -UML表示法角色类的角色是“事物“多重性(用数字和*表示)1*:1个或多个1个类图有1个或多个类1个类属于1个或多个类图ClassDiagramClass+thing+diagram1.*1.*use1.*1.*方向双向关联(省略箭头)名字关系的名字是“使用”实例聚合关系特殊关联关系,指明一个聚集(整体)和组成
18、部分之间的关系UML表示法UML表示法ThingClassDiagramRelation(空心菱形)类图包含有事物和关系,类图不存在了,事物和关系还可用于其它的类图ClassAssociation(实心菱形)类与关联关系之间有组合关系,类不存在了,则相应的关联关系也不存在关联关系描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合类图关系及解释组合关系语义更强的聚合,部分和整体具有相同的生命周期UML- 22 -UML- 22 -UML表示法实现关系 对应于类和接口之间的关系UML表示法类Circle、Rectangle实现
19、了接口Shape的操作Shape+ Draw ()Circle+ Draw ()Rectangle+ Drarw ()RelationAssociationGeneralizationRealizationDependency关联、泛化、实现、依赖都是一种关系ThingClassInterface类、接口都是一种事物泛化关系 在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间依赖关系描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式, 例如绑定(bind)、友元(friend)等UML表示法模板类Stack定义了栈相关的操作;IntStack将参数T与实际类型int
20、绑定,使得所有操作都针对int类型的数据类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量state类图关系及解释UML- 23 -UML- 23 -C+代码class Vehiclepublic: virtual int Start() = 0; virtual int Stop() = 0; virtual int Run(float fSpeed) = 0;private: float fMaxSpeed;Java代码public abstract class Vehicle public abstract int Start
21、(); public abstract int Stop(); public abstract int Run(float fSpeed); private float fMaxSpeed;Vehicleabstract - fMaxSpeed : float+Start ()Stop ()Run (float fSpeed): int: int: int类的映射类图类图与代码的映射UML- 24 -UML- 24 -关联关系的映射 C+代码class Dialog private: Button btnOK; Button btnCancel; TextBox txtInfo;class B
22、utton;class TextBox;组合关系,代码表现为Dialog的属性有Button和TextBox的对象TextBoxButtonDialog- btnOK : Button- btnCancel : Button- txtInfo : TextBox泛化关系的映射Java代码public class SavingsAccount extends Account C+代码class SavingsAccount : public Account ;类图类图与代码的映射UML- 25 -UML- 25 -C+代码class Shape public: virtual void Draw
23、() = 0;class Circle : public Shapepublic: void Draw();private; Point ptCenter; int nRadius;Java代码public interface Shape public abstract void Draw();public class Circle implements Shapepublic void Draw();private Point ptCenter;private int nRadius;Shape+ Draw ()Circle-ptCenternRadius: Point: int+ Draw
24、 ()Rectangle-ptUpperLeftnWidthnHeight: Point: int: int+ Drarw ()在C+语言里面,使用抽象类代替接口,使用泛化关系代替实现关系在Java语言里面,有相应的关键字interface、implements实现关系的映射 依赖关系的映射绑定依赖TStack- size : int+ Push(elem : T) : int+ Pop() : int+ GetTop() : const T&IntStackFloatStackC+代码templateclass Stack private: int size;public: int Push
25、(T elem); int Pop(); const T& GetTop();typedef Stack FloatStack;C+代码(编译器生成)class FloatStack private: int size;public: int Push(float elem); int Pop(); const float& GetTop();类图类图与代码的映射C+代码class Shape public: virtual void Draw() = 0;class Circle : public Shapepublic: void Draw();private; Point ptCente
展开阅读全文