UML基础教程老师的课件很好

上传人:人*** 文档编号:568769574 上传时间:2024-07-26 格式:PPT 页数:63 大小:1.20MB
返回 下载 相关 举报
UML基础教程老师的课件很好_第1页
第1页 / 共63页
UML基础教程老师的课件很好_第2页
第2页 / 共63页
UML基础教程老师的课件很好_第3页
第3页 / 共63页
UML基础教程老师的课件很好_第4页
第4页 / 共63页
UML基础教程老师的课件很好_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《UML基础教程老师的课件很好》由会员分享,可在线阅读,更多相关《UML基础教程老师的课件很好(63页珍藏版)》请在金锄头文库上搜索。

1、UML- 1 -UML- 1 -UML 基础教程基础教程UML- 2 -UML- 2 -目录目录1. 前言前言1.1前言前言1.2UML概述概述1.3UML事物事物1.4UML关系关系1.5各各UML图及特征图及特征1.6各各UML图的关系图的关系1.7UML语法语法1.8习题习题2. 用例图用例图2.1用例图用例图概要概要2.2用例图中的事物及解释用例图中的事物及解释2.3用例图中的关系及解释用例图中的关系及解释2.4例子例子2.5习题习题3. 类图类图3.1类图概要类图概要3.2类图中的事物及解释类图中的事物及解释3.3类图中的关系及解释类图中的关系及解释3.4类图与代码的映射类图与代码的

2、映射3.5类图例子类图例子3.6习题习题4. 顺序图顺序图4.1概要概要4.2顺序图中的事物及解释顺序图中的事物及解释4.3顺序图与用例图和类图的关系顺序图与用例图和类图的关系4.4顺序图例子顺序图例子4.5 练习题练习题5. 协作图协作图5.1概要概要5.2协作图中的事物及解释协作图中的事物及解释5.3协作图中的关系及解释协作图中的关系及解释UML- 3 -UML- 3 -目录目录5.4对消息标签的详细讲解对消息标签的详细讲解5.5协作图例子协作图例子5.6协作图与顺序图的区别和联系协作图与顺序图的区别和联系5.7练习题练习题6. 状态图状态图6.1状态图概要状态图概要6.2状态图的组成状态

3、图的组成6.3状态图中的事物及解释状态图中的事物及解释6.4状态的可选活动表状态的可选活动表6.5简单的例子简单的例子:对象的状态图对象的状态图6.6复杂的例子复杂的例子:网上银行登陆系统网上银行登陆系统6.7练习练习7. 活动图活动图7.1活动图活动图概要概要7.2活动图活动图事物事物7.3活动图关系活动图关系7.4活动图活动图实例实例7.5活动图练习活动图练习8. 构件图构件图8.1构件图概要构件图概要8.2构件图中的事物及解释构件图中的事物及解释8.3构件图中的关系及解释构件图中的关系及解释8.4构件图的例子构件图的例子8.5习题习题9. 部署图部署图9.1部署图概要部署图概要9.2部署

4、图中的事物及解释部署图中的事物及解释9.3部署图中的关系及解释部署图中的关系及解释9.4部署图的例子部署图的例子9.5关于部署图与构件图关于部署图与构件图9.6习题习题 附录附录UML- 4 -1. 前言前言1.1 前言前言 本资料对UML1.5各种模型图的构成和功能进行说明,通过本资料的学习达到可以读懂UML模型图的目的。本资料不涉及模型图作成的要点等相关知识。1.2 UML概述概述1.2.1 UML简介简介 UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。 UM

5、L的定义包括UML语义和UML表示法两个部分。 (1) UML语义语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人 而异的表达方法所造成的影响。 (2) UML表示法表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这 些图形符号和文本语法为系统建模提供了标准。1.2.2 UML模型图的构成模型图的构成 事物事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象 关系关系(Relationships):关系把事物紧密联系在一起 图图(Diagrams ):图是事物和关系的可视化表示UML- 5 -1. 前言前言1.3 UML事物事物 UM

6、L包含4种事物:构件事物 行为事物 分组事物 注释事物1.3.1构件事物构件事物: UML模型的静态部分,描述概念或物理元素 它包括以下几种:类类:具有相同属性相同操作 相同关系相同语义的对象的描述接口接口:描述元素的外部可见行为,即服务集合的定义说明协作协作:描述了一组事物间的相互作用的集合用例用例:代表一个系统或系统的一部分行为,是一组动作序列的集合构件构件:系统中物理存在,可替换的部件节点节点:运行时存在的物理元素 另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体1.3.2行为事物行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互交互:实现某功能的一组构件事物之间

7、的消息的集合,涉及消息、动作序列、链接状态机状态机:描述事物或交互在生命周期内响应事件所经历的状态序列1.3.3分组事物分组事物: UML模型图的组织部分,描述事物的组织结构包包: 把元素组织成组的机制1.3.4注释事物注释事物: UML模型的解释部分,用来对模型中的元素进行说明,解释注解注解 :对元素进行约束或解释的简单符号UML- 6 -1. 前言前言1.4 UML关系关系1.4.1依赖依赖 依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化, 会影响到另一个事物(依赖事物)的语义1.4.2关联关联 关联(association)是一种结构关系,它指明一

8、个事物的对象与另一个事物的对象间 的联系1.4.3泛化泛化 泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系1.4.4实现实现 实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保 证执行的契约UML- 7 -1. 前言前言1.5 各各UML图及特征图及特征1.5.1用例图用例图( Use Case Diagram )用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属

9、性和操作)类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联 1.5.2 类图类图(Class Diagram)UML- 8 -1. 前言前言1.5 各各UML图及特征图及特征1.5.3 对象图对象图( Object Diagram )对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类1.5.4 顺序图顺序图(Sequence Diagram)顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互 顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一

10、个类操作或引起状态转换的触发事件 UML- 9 -1. 前言前言1.5 各各UML图及特征图及特征1.5.5 协作图协作图(Collaboration Diagram)协作图描述对象间的协作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系.协作图的一个用途是表示一个类操作的实现 1.5.6 状态图状态图(State Chart Diagram)状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成 UML- 10 -1. 前言前言1.5 各各UML图及特征图及特征1.5.7 活动图活动图(Acti

11、vity Diagram)活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活动 1.5.8 构构件图件图(Component Diagram)构件图为系统的构件建模型构件即构造应用的软件单元还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响 UML- 11 -1. 前言前言1.5 各各UML图及特征图及特征1.5.9 部署部署图图(Deployment Diagram)部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配类图顺序图需求分

12、析需求分析BDFD/DD类图顺序图用例图用例文档用例图顺序图主主要要图图之之间间的的关关系系1.6 各各UML图的关系图的关系UML- 12 -1. 前言前言1.7 UML语法描述语法描述类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述对象接口是描述了一个类或构件的一个服务的操作集协作定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体用例是对一组动作序列的描述主动类对象至少拥有一个进程或线程的类构件是系统中物理的、可替代的部件参与者在系统外部与系统直接交互的人或事物节点是在运行时存在的物理元素交互它由在特定语境中共同完成一定任务的一组对象间交换的

13、消息组成状态机它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列包把元素组织成组的机制注释事物是UML模型的解释部分依赖一条可能有方向的虚线关联一条实线,可能有方向泛化一条带有空心箭头的实线实现一条带有空心箭头的虚线UML- 13 -1. 前言前言1.8习题习题 判断题1、UML中一共有九种图:它们是用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图2、用例图是从程序员角度来描述系统的功能3、类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构4、活动图和状态图用来描述系统的动态行为5、协作图的一个用途是表示一个类操作的实现 选择题6、请在下面选项目中选出两

14、种可以互相转换的图 (a) 顺序图 (b)协作图 (c) 活动图 (d) 状态图7、下面哪些图可用于BD阶段 (a)用例图 (b)构件图 (c)类图 (d)顺序图 答案:1.正确 2.错误 3.错误 4.正确 5.正确 6. (a)(b) 7.(a)(c)(d)UML- 14 -2.1 用例图用例图概要概要 2. 用例图用例图事物事物名称名称解释解释UML表示表示参与者(Actor)在系统外部与系统直接交互的人或事物(如另一个计算机系统或一些可运行的进程)。我们需要注意的是:1.参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一

15、个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。2.参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。3.在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。用例(Use Case)系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达 。创建新用例,确认候选用例和划分用例范围的优秀法则-“WAVE”测试(见附录) 2.2 用例图中的事物及解释用例图中的事物及解释用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。 (U

16、ML参考手册)用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行 (或称为发起了哪个用例)。用例图多用于静态建模阶段(主要是业务建模和需求建模)。UML- 15 -2. 用例图用例图关系解释图参与者与用例之间的关系关联表示参与者与用例之间的交互,通信途径。(关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。)用例之间的关系包含箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。 include扩展箭头指向

17、的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。参与者之间的关系泛化发出箭头的事物“is a”箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。extend2.3 用例图中的关系及解释用例图中的关系及解释UML- 16 -2. 用例图用例图实例1 参与者之间的泛化关系 参与者参与者:经理,安全主管,保安 用例用例:管理人事,批准预算,批准安全证书,监视周边 在参与者之间

18、不存在泛化关系的情况下,各个参与者参与 用例的情况分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全主管就可以参与全部4个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。实例2 用例之间扩展和包含关系 用例的上下文是:短途旅行但汽车的油不足以应付全部路程。那么为汽车加油的动作在旅行的每个场景(事件流)中都会出现,不加油就不会完成旅行。吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。2

19、.4 例子例子UML- 17 -2. 用例图用例图实例3. 航空售票的用例图参与者(actor):clerk,监督员,信用卡服务商,信息亭用例(use case): Buy tickets, Buy Subscription, Make charges, Survey sales参与者Clerk参与(或称发起)Buy tickets和Buy Subscription 两个用例(关联关系)。这两个用例的事件流都包含Make charges用例(包含关系)。系统由:Buy tickets, Buy Subscription, Make charges, Survey sales组成。该系统主要包含

20、:Buy tickets, Buy Subscription, Make charges, Survey sales这几个功能。该系统主要面向的用户(参与者):clerk,监督员,信用卡服务商,信息亭。UML- 18 -2. 用例图用例图1.右图中的参与者有?2. (a) 1 (b) 23. (c) 3(d) 42.右图中的用例有?3.(a) 1(b) 24.(c) 3(d) 43.2和3之间是什么关系?5和6呢?4.(a) 扩展,包含(b) 包含,扩展4.5缺少了3仍然是个完整的用例?5.(a) 是的(b) 不是5.4能够参与2吗?1能够参与5吗?6.(a) 可以,不可以 (b) 不可以,可

21、以习题答案:1、(a)(d) 2、(b)(c) 3、(b) 4、(b) 5、(b)2.5 习题UML- 19 -UML- 19 -3. 类图类图3.2 类图中的事物及解释类图中的事物及解释3.2.1 类类从上到下分为三部分,分别是类名、属性和操作。类名是必须有的类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等可见性可见性-代表private+代表public#代表protected也可以使用图形表示返回值类型返回值类型操作

22、操作名称名称斜体为抽象操作缺省值缺省值类名类名斜体为抽象类属性名称属性名称参数列表参数列表3.1 类图概要类图概要类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象UML- 20 -UML- 20 -3. 类图类图(标准图形)(变体图形)接口抽象类模版参数模版参数模版类3.2 类图中的事物及解释类图中的事物及解释3.2.2 接口接口一组操作的集合,只有操作的声明而没有实现3.2.3 抽象类抽象类不能被实例化的类,一般至少包含一个抽象操作3.2.4 模版类模版类一种参

23、数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类UML- 21 -UML- 21 -3. 类图类图UML表示法表示法角色角色类的角色是“事物“多重性多重性(用数字和*表示)1*:1个或多个1个类图有1个或多个类1个类属于1个或多个类图方向方向双向关联(省略箭头)名字名字关系的名字是“使用”实例实例聚合关系特殊关联关系,指明一个聚集(整体)和组成部分之间的关系组合关系语义更强的聚合,部分和整体具有相同的生命周期UML表示法表示法UML表示法表示法(空心菱形)实例实例类图包含有事物和关系,类图不存在了,事物和关系还可用于其它的类图(实心菱形)实例实例类与关联关系之间有组合关系,类

24、不存在了,则相应的关联关系也不存在3.3 类图中的关系及解释类图中的关系及解释3.3.1 关联关系关联关系描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合UML- 22 -UML- 22 -3. 类图类图UML表示法表示法3.3.3 实现关系实现关系对应于类和接口之间的关系UML表示法表示法类Circle、Rectangle实现了接口Shape的操作关联、泛化、实现、依赖都是一种关系类、接口都是一种事物3.3.2 泛化关系泛化关系在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间3.3.4 依赖关系依赖关

25、系描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式, 例如绑定(bind)、友元(friend)等UML表示法表示法模板类Stack定义了栈相关的操作;IntStack将参数T与实际类型int绑定,使得所有操作都针对int类型的数据类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量stateUML- 23 -UML- 23 -3. 类图类图C+代码class Vehiclepublic: virtual int Start() = 0; virtual int Stop() = 0; virtual int Run(f

26、loat fSpeed) = 0;private: float fMaxSpeed;Java代码public abstract class Vehicle public abstract int Start(); public abstract int Stop(); public abstract int Run(float fSpeed); private float fMaxSpeed;3.4 类图与代码的映射类图与代码的映射3.4.1 类的映射类的映射UML- 24 -UML- 24 -3. 类图类图3.4.2 关联关联关系的映射关系的映射 C+代码class Dialog priva

27、te: Button btnOK; Button btnCancel; TextBox txtInfo;class Button;class TextBox;组合关系,代码表现为Dialog的属性有Button和TextBox的对象3.4.3 泛化泛化关系的映射关系的映射Java代码public class SavingsAccount extends Account C+代码class SavingsAccount : public Account ;UML- 25 -UML- 25 -3. 类图类图C+代码class Shape public: virtual void Draw() =

28、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;在C+语言里面,使用抽象类代替接口,使用泛化关系代替实现关系在Java语言里面,有相应的关键字interface、im

29、plements3.4.4 实现实现关系的映射关系的映射 3.4.5 依赖依赖关系的映射关系的映射绑定依赖C+代码templateclass Stack private: int size;public: int Push(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();UML- 26 -UML- 26

30、 -3. 类图类图Graphics: 基本图形和组合图形的父类,声明了所有图形共同的操作,如Draw;也声明了专用于组合图形管理子图形的操作,如Add、RemoveLine、Rectangle: 基本图形类GroupGraphics: 组合图形类,与父类有组合关系,从而可以组合所有图形对象(基本图形和组合图形)泛化组合组合模式3.5 类图例子类图例子3.5.1 图形编辑器图形编辑器图形编辑器一般都具有一些基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的组合模式可以用

31、相同的方式处理两种图形UML- 27 -UML- 27 -3. 类图类图3.5.2 演出售票系统演出售票系统 在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作在这里只考虑以下三个用例:Buy tickets: 买个人票Buy Subscription: 买套票Make charges: 信用卡付款信息亭 Clerk Buy tickets Buy Subscription 信用卡服务商 Make charges 监督员 Survey sales 参与者 用例 Box Office 关系 Subscr

32、iptionSeriesseries : intIndividualReservationTicketno : int3.60.13.60.110.110.1Reservationdate : DateCustomername : stringphone : string1.*11.*1Seatno : intcolomn : introw : intavailable : bool1111Performanceno : intdate : Datetime : Time0.*10.*1CreditCardServiceCharge(cardnumber, cost)kjoskShowAvai

33、lability(seatlist)DemandPayment(cost)PrintTickets(performance, seats)EjectCard()BoxOfficeRequest(count, performance)Select(seats)InsertCard(cardnumber, password)Authorized()用例图用例图类图类图使用泛化关系处理客户购买个人票和套票两种不同情况设计类的属性和操作UML- 28 -UML- 28 -3. 类图类图(1)哪两个类之间存在组合关系哪两个类之间存在组合关系Menu、MenuItem MenuItem、CommandCo

34、mmand、OpenCommandCommand、PasteCommand(2)OpenCommand和和PasteCommand是什么关系是什么关系组合泛化聚合没关系(3)编辑菜单编辑菜单(EditMenu)是一种菜单,下面哪个图较好的描述了二者之间的关系是一种菜单,下面哪个图较好的描述了二者之间的关系(4)下面哪份代码下面哪份代码(C+)最接近于图中对最接近于图中对MenuItem的描述的描述 Menu+ Add(item : MenuItem)EditMenuclass MenuItemprivate: virtual void Click() =0;public: Command* c

35、ommand; class MenuItempublic: virtual void Click() = 0;private: Command* command; class MenuItemprivate: virtual void Click() = 0; void undo();public: Command* command;class menuitempublic: virtual void Click() = 0;private: Command* command; 3.6 习题习题右图描述了菜单(Menu)、菜单项(MenuItem)、抽象命令类(Command)和具体命令类(O

36、penCommand, PasteCommand)之间的关系,完成1-4题UML- 29 -UML- 29 -3. 类图类图右图描述了图形接口右图描述了图形接口(Graphics)、线段、线段(Segment)、矩形、矩形(Rectangle)、点点(Point)和三维点和三维点(Point3D)之间的关系,之间的关系, 完成完成5-7题题(5)下面哪个关系没有在图中出现下面哪个关系没有在图中出现 关联 泛化 实现 依赖(6)下面对图中下面对图中四处的多重性的描述哪个不正确四处的多重性的描述哪个不正确 0.* 1 0.* 1(7)下面哪份代码下面哪份代码(Java)最接近于图中对最接近于图中对

37、Segment的描述的描述public class Segment implements Graphicsprivatc void Draw();public Point ptStart;public Point ptEnd;public class Segment extends Graphicspublic void Draw();private Point ptStart;private Point ptEnd;public class Segment implements Graphicsprivate Point ptStart;private Point ptEnd;public

38、void Draw();public class segment implements graphicspublic void Draw();private Point ptStart;private Point ptEnd;UML- 30 -UML- 30 -4. 顺序图顺序图UML- 30 -4.1 4.1 概要概要顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。 顺序图属于动态建模。 顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。

39、表示了对象之间传送消息的时间顺序。浏览顺序图的方法是:从上到下查看对象间交换的消息。4.2 4.2 顺序图中的事物及解释顺序图中的事物及解释事物名称解释图参与者与系统、子系统或类发生交互作用的外部用户(参见用例图定义)。对象顺序图的横轴上是与序列有关的对象。对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线。生命线坐标轴纵向的虚线表示对象在序列中的执行情况(即发送和接收的消息,对象的活动)这条虚线称为对象的“生命线”。消息符号消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。UML- 31 -UML- 31 -4. 顺序图顺序图UML- 31 -

40、4.3 4.3 顺序图与用例图和类图的关系顺序图与用例图和类图的关系UML- 32 -UML- 32 -4. 顺序图顺序图UML- 32 -4.4 4.4 顺序图例子顺序图例子简单的例子简单的例子从参与者到对象和从对象从参与者到对象和从对象到参与者之间发送的消息到参与者之间发送的消息从对象传递给另一个对从对象传递给另一个对象的消息象的消息在类图中的类的在类图中的类的对象对象使用系统的使用系统的参与者,这参与者,这个系统是为个系统是为某个用例的某个用例的某个场景设某个场景设计的计的对象生命线表示从上到下对象生命线表示从上到下的时间顺序,消息的时间顺序,消息1在消息在消息2之前发生,消息之前发生,

41、消息2在消息在消息3之前发生之前发生窄长方框用以强调这个部窄长方框用以强调这个部分处于活动状态分处于活动状态消息格式: operation (parameter list) 向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的 一个operation。例:订单类发消息给客户类调用客户类中的“验证客户”操作UML- 33 -UML- 33 -4. 顺序图顺序图UML- 33 -复杂的例子复杂的例子信息亭售票中心信用卡服务从这个例子中可以看出:Kjosk类中的操作有 Show Available (seat-list) Demand Payment (cost) print

42、tickets (performance, seats) eject cardBox Office中的操作有 Request (count, performance) Select Seats Insert Card (Card Number) authorizedCredit Card Service类中的操作有 charge(card number, cost) 此图是描述购票这个用例的顺序图。顾客在信息亭与售票中心通话触发了这个用例的执行。顺序图中付款这个用例包括售票中心与信息亭和信用卡服务处使用消息进行通信过程。此图中存在的事物有:此图中存在的事物有: 对象(信息亭 Kjosk ,售票

43、中心 Box Office, 信用卡服务 Credit Card Service ),生命线,消息符号。信息亭发Request (count, performance)消息给售票中心,表示调用售票中心类的Request (count, performance)操作,来查询演出的信息。售票中心发Show Available(seat-list)消息给信息亭,表示调用信息亭类中的Show Available(seat-list)操作,给出可用的座位表。UML- 34 -UML- 34 -4. 顺序图顺序图UML- 34 -1 指出左图中的参与者?A B C D2 哪些是对象?A B C D3 Se

44、rver类调用了CreditService类中的什么操作?A B C D4.5 练习题练习题1. A 2. B 3. B UML- 35 -UML- 35 -5.1 5.1 概要概要5. 协作图协作图协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。 协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。协作图可以表示类操作的实现。UML- 35 -UML- 35 -5.2 5.2 协作图中的事物及解释协作图中的事物及解释事物名称解释图参与者发出主动操作的对象,负责发送初始消息,启动一个操作。对象对象是类的实例,负责发

45、送和接收消息,与顺序图中的符号相同,冒号前为对象名,冒号后为类名。消息流(由箭头和标签组成)箭头指示消息的流向,从消息的发出者指向接收者。标签对消息作说明,其中,顺序号指出消息的发生顺序,并且指明了消息的嵌套关系;冒号后面是消息的名字。标签5.3 5.3 协作图中的关系及解释协作图中的关系及解释关系名称关系名称解释解释关系实例关系实例链接用线条来表示链接,链接表示两个对象共享一个消息,位于对象之间或参与者与对象之间UML- 36 -UML- 36 -5. 协作图协作图5.45.4 消息标签消息标签 消息标签的Format: 前缀 守卫条件 序列表达式 返回值 := 消息名 前缀的语法规则: 序

46、列号,序列号,序列号 / (前缀用来同步线程,意思是在发送当前消息之前指定序列号的消息被处理.例:1.1a, 1.1b/) 守卫条件的语法规则: 条件短句 说明:条件短句通常用伪代码或真正的程序语言来表示。 例:x=0 返回值和消息名:返回值表示一个消息的返回结果,消息名指出了消息的名字和所需参数。 例:x:=calc ( n ) 下面是一个完整的消息标签: 1.1a, 1.1b, 1.1c / x=0 1.2 *i:=1.n : x := calc( n ) 前缀 守卫条件 序列表达式 返回值 := 消息名5.5 5.5 协作图与顺序图的区别和联系协作图与顺序图的区别和联系 协作图和顺序图都

47、表示出了对象间的交互作用,但是它们侧重点不同。 顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。 协作图清楚地表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。 协作图和顺序图可以相互转化。 (进行协作图和顺序图的比较,请参考练习题2)UML- 37 -5.6 5.6 协作图例子协作图例子1. 打印操作的协作图5. 协作图协作图actor发送Print消息给Computer,Computer发送Print消息给PrintServer,如果打印机空闲,PrintServer发送Print消息给printer2.乘坐电梯的协作图图中存在的事物有:图中存在的

48、事物有: 参与者 按钮对象 电梯控制对象 命令对象 工作队列 电梯对象图中存在的关系有图中存在的关系有: 链接 参与者需要乘坐电梯,他从系统外部按下按钮,让电梯到达他想去的楼层。此时,电梯系统的操作被启动,电梯控制对象以循环的方式检查所有的电梯,从中选择一个工作队列长度最短的。然后,它创建一个作业命令,并将该命令放入对应电梯的工作队列,接着激活队列。电梯对象并发运行,从它的队列中选择一个作业并执行。电梯是一个活动对象,它与它的控制线程并发执行。UML- 38 -5. 协作图协作图5.7 练习题练习题1.请指出下面的消息标签各部分的内容。1:display( ) A. 序列表达式:消息名 B.返

49、回值:消息名 C.序列表达式:消息名mode=display 1.2.3.7: redraw( ) A.序列表达式 返回值 消息名 B.守卫条件 序列表达式 消息名2 *n:=a . . z : prim:=nextPrim(prim) A. 守卫条件 序列表达式 消息名 B.序列表达式 返回值 消息名3.1 x0 : foo( ) A.序列表达式 守卫条件 B.守卫条件 消息名 C.序列表达式 消息名 1.1a, 1.1b/1.2 : continue( ) A. 前缀 序列表达式 消息名 B. 后缀 守卫条件 消息名UML- 39 -5. 协作图协作图3. 练习题答案1. A BBCA2.

50、 AA2. 请对比本章中的协作图与其相应的顺序图,做练习题。请在下图中指出,循环计算各个电梯的工作队列长度的消息的顺序号。A 1.1 B1.2 C1.3 D2请说明消息1.3所进行的操作Invoke(job),应属于哪个类所具有的方法。A Queue类 B ElevatorControl类 C Elevator类 D Button类 UML- 40 -6.1 状态图概要状态图概要6.1.1状态图状态图说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应。6.1.2状态图用于状态图用于揭示Actor、类、子系统和组件的复杂特性。 为实时系统建模。 6.2 状态图的组成状态图的

51、组成6.2.1状态状态对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件。6.2.2转移转移转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。6.状态状态图图UML- 41 -状态状态上格放置名称,下格说明处于该状态时,系统或对象要做的工作(见可选活动表) 转移转移转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移 开始开始初始状态(一个)结束结束终态(可以多个)消息消息(属性属性)条件条件

52、/动作动作6.3 状态图中的事物及解释状态图中的事物及解释转换种种类描述描述语法法入口入口动作作进入某一状态时执行的动作entry/action出口出口动作作离开某一状态时执行的动作exit/action外部外部转换引起状态转换或自身转换,同时执行一个具体的动作,包括引起入口动作和出口动作被执行的转换e(a:T)exp/action内部内部转换引起一个动作的执行但不引起状态的改变或不引起入口动作或出口动作的执行e(a:T)exp/action6.4 状态的可选活动表状态的可选活动表6.状态状态图图UML- 42 -6.5 例子例子 (1) 对象的状态图对象的状态图 图中包含以下状态图中包含以下

53、状态初始状态Available状态Locked状态Sold状态 状态间的转移状态间的转移初始状态Available状态票被预订(lock):AvailableLocked预定后付款(buy):LockedSold预定解除(unlock):LockedAvailable预定过期(time out):LockedAvailable直接购买(assigned to):AvailableSold换其它票(exchang) ,该票重有效:SoldAvailable6.状态状态图图UML- 43 - (2)网上银行登陆系统网上银行登陆系统登陆要求提交个人社会保险号登陆要求提交个人社会保险号(SSN)和密码

54、和密码(PIN)经验证有效后登陆成功。经验证有效后登陆成功。登陆过程包括以下状态登陆过程包括以下状态:初态初态(Initial state) 获取社会保险号状态获取社会保险号状态(Getting SSN)获取密码状态获取密码状态(Getting PIN)验证状态验证状态(Validating)拒绝状态拒绝状态(Rejecting)终态终态 (Final state)出出发状状态动作作到达状到达状态Initial state移动鼠标到 SSNGetting SSNGetting SSN键入非tab键,显示键入内容Getting SSN键入tab键,或移动鼠标到BINGetting PIN提交Va

55、lidatingGetting PIN键入非shift-tab键,显示 “ * ”Getting PIN键入shift-tab键,或移动鼠标到SSNGetting SSN提交Validating Validating验证提交信息有效,状态转移Final state验证提交信息无效,显示错误信息Rejecting Rejecting退出Final state重试,清除无效的SSN,PINGetting SSN状态转移的过程有有两两个个不不同同的的终态6.状态状态图图UML- 44 -6.7 练习练习 分析下面的状态图,回答问题下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到

56、达第一层(1) 以下那些图形元素是对状态的描述?(a) 超时 (b) 到达 (c) 在第一层(2) 空闲状态 超时后转移到_状态(a) 向第一层下降(b) 上升状态 (c) 终态习题答案(1)(c)(2)(a)6.状态状态图图UML- 45 -7. 活动图活动图7.1 活动图概要活动图概要 描述系统的动态行为。 包含活动状态(ActionState),活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。 活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。 类似于传统意义上的流程图。 活动图主要用于:业务建模时,用于详述业务用例,描述一项业务

57、的执行过程;设计时,描述操作的流程。7.2活动图活动图事物事物活动 (ActionState)动作的执行起点 (InitialState)活动图的开始终点(FinalState) 活动图的终点对象流(ObjectFlowState)活动之间的交换的信息发送信号(signalSending)活动过程中发送事件,触发另一活动流程接收信号(SignalReceipt)活动过程中接收事件,接收到信号的活动流程开始执行泳道(SwimLane)活动的负责者UML- 46 -7. 活动图活动图7.3 活动图活动图关系关系迁移(transition)活动的完成与新活动的开始分支(junction point)

58、根据条件,控制执行方向分叉(fork)以下的活动可并发执行结合(join)以上的并发活动再此结合7.4 活动图实例活动图实例 1. 一般的活动图一般的活动图 本活动图描述一个处理订单的用例执行过(1)执行setup order(2)根据order的类型是执行不同的分支: single order:执行assign seat、charge credit card subscription:同时执行assignseats、debit account或 award bonus single order与subscription两步可同时进行(3) 最后mail packet。UML- 47 -7.

59、活动图活动图2. 带泳道的活动图带泳道的活动图 本例为一个按活动职责(带泳道)组织的处理订单用例的活动图(模型中的活动按职责组织)。活动被按职责分配到用线分开的不同区域(泳道): Customer Sales Stockroom (1)顾客要求服务,Sales负责接收定 单,并提交到Stockroom (2) Stockroom处理定单,与此同时, Customer付款,并由Sales处 Deliverorder至Customer。UML- 48 -7. 活动图活动图7.5 活动图练习活动图练习 1. 请选择下面所列的活动图的事物中,表示信号的是( ),表示对象流的是( )。 A BCD 2.

60、 关于右面的活动图,下面的说法中不正确的是( )。 A aPrinter:Printer是信号。 B 操作开始从“删除报文框”活动开始。 C 在“创建PS文件”和”删除报文框”活动中 发送“print(file)”信号。 D 信号发送的方向是从左到右。 习题答案习题答案 1 C, B 2 CUML- 49 -8. 构件图构件图构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。8.2 构件图中的事物及解释构件图中的事物及解释事物名称含义图例构件构件指系统中可替换的物理部分,构件名字(如图中的Dicti

61、onary)标在矩形中,提供了一组接口的实现。接口接口外部可访问到的服务 (如图中的Spell-check)。构件构件实实例例节点实例上的构件的一个实例,冒号后是该构件实例的名字(如图中的RoutingList)。可替换的物理部分包括软件代码、脚本或命令行文件,也可以表示运行时的对象,文档,数据库等。节点(node)是运行时的物理对象,代表一个计算机资源。具体请参见教程“部署图(deployment diagram)”部分。8.3 构件图中的关系及解释构件图中的关系及解释关系名称含义图例实现关系实现关系构件向外提供的服务。依赖关系依赖关系构件依赖外部提供的服务(由构件到接口)。8.1 构件图概

62、要构件图概要UML- 50 -8. 构件图构件图实例实例1.图中的构件名称是Dictionary字典。该构件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词。图中“Planner计划者”构件向外提供一个“update更新”接口服务。同时,该构件要求外部接口提供一个“Reservations预定”服务。实例实例2.8.4 构件图的例子构件图的例子UML- 51 -8. 构件图构件图实例实例3图中图中依赖关系依赖关系依赖关系依赖关系包括:包括:顾客需要信息亭接口提供服务售票员需要职员接口提供服务信用卡付款需要信用卡代理提供服务职员接口需要预订销售、个人销售和团体销

63、售提供服务管理接口需要数据库状态提供服务售票处需要付款和购买提供服务等等图中图中实现关系实现关系实现关系实现关系包括:包括:信用卡付款提供付款服务票数据库提供购买和状态查询服务售票处提供预订购买、个人购买和团体购买服务情景一:情景一:购买个人票可以通过公用信息亭订购也可直接向售票员购买,但购买团体票只能通过售票员。情景二:情景二:买票的人可以根据任意选择预订销售或个人销售或团体销售中的一种方式,售票处为了方便销售,需要信用卡付款服务的支持,同时也必然需要票数据库处在有票可卖的状况中。情景描述情景描述UML- 52 -8. 构件图构件图1. 构件图用于那种建模阶段? A.动态建模B.静态建模2.

64、 一个构件只能对特定的另一个构件提供特定的一种服务。这种说法正确吗?A.正确B.错误3. 构件图用于描述系统中各物理部件之间的服务的依赖提供关系。这种说法正确吗? A.正确B.错误4. 构件图中实线箭头表示服务的依赖,虚线箭头表示服务的提供。这种说法正确吗? A.正确B.错误 习题答案:1.B 2.B 3.A 4.B 8.5 习题习题UML- 53 -9. 部署部署图图9.2 部署图中的事物及解释部署图中的事物及解释事物名称解释图例节点节点节点用一长方体表示,长方体中左上角的文字是节点的名字 (如图中的JoesMachine:PC) 。节点代表一个至少有存储空间和执行能力的计算资源。节点包括计

65、算设备和(至少商业模型中的)人力资源或者机械处理资源,可以用描述符或实例代表。节点定义了运行时对象和构件实例(如图中的Planner构件实例)驻留的位置。构件构件系统中可替换的物理部分。接口接口外部可访问的服务。构件实例构件实例构件的一个实例。部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图(会在后面的实例中给出)。9.1 部署图概要部署图概要UML- 54 -9. 部署部署图图关系名称解释图例实现关系实现关系构件向外提供服务。(节点内)依赖关

66、系依赖关系构件依赖外部提供的服务(由构件到接口)。关联关系关联关系通信关联。(节点间)其他关系其他关系对象的移动(一个位置到另一个位置)。9.4 部署图的例子部署图的例子实例实例1 实例实例层部署图层部署图实例层部署图描述各节点和它们之间的连接。本图中的信息与上张描述层部署图中的内容是相互对应的。图中的关系是各个节点之间存在的通信关系。9.3 部署图中的关系及解释部署图中的关系及解释UML- 55 -9. 部署图部署图实例实例2 描述层部署图描述层部署图图中顾客购票顾客购票的情景如下:顾客通过位于Kiosk节点的顾客接口控件进行购票的操作,该顾客接口构件的购票操作依赖于处于TicketServ

67、er节点上的售票构件提供的服务,售票构件要完成售票操作,又要依赖统一节点上信用卡付款构件提供的付款服务和票数据库构件图中包括的各种关系如下:通信链关系(不带箭头的直线)TicketServe票服务器与Kiosk信息厅之间存在一对多的通信关联;与SalesTerminal售票终端也存在一对多的通信关联;依赖关系(带箭头的虚线)TicketSeller售票构件依赖CreditCardCharges信用卡付款构件和TicketDB票数据库构件提供的服务。节点节点TicketServer(售票服务)上的构件: CreditCardCharges/ManagerInterface/ TicketSell

68、er/TicketDB节点Kiosk(信息亭)上的构件: CustomerInterfaceSalesTerminal(销售终端)上的构件: ClerkInterface描述层部署图表示了系统中的各节点和每个节点包含的构件。UML- 56 -9. 部署部署图图9.5 关于部署图与构件图关于部署图与构件图部署图与构件图相同的构成元素:构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务。部署图与构件图构件图的关系:部署图表现构件实例;构件图表现构件类型的定义。部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境;构件图偏向于描述构件之间相互依赖支持的基本关系。UML- 57

69、-9. 部署部署图图1.部署图用于那种建模阶段? A.动态建模B.静态建模2.部署图表现构件实例,构件图表现构件类型定义。这种说法正确吗? A.正确B.错误3.部署图中一个节点实例的名称为Server:HostMachine,其中Server是_,HostMachine是_。 A.节点名B.节点类型4.各节点之间存在着虚线剪头表示的依赖关系,也存在着实线箭头表示的服务提供关系。这种说法正确吗? A.正确B.错误5.“接口”表示_对外提供的服务。 A.构件B.节点 习题答案:1.B 2.A 3.B,A 4.B 5.A 9.6 习题习题UML- 58 -附录附录 WAVE测试测试1 What to

70、 do? (Not how to do.)2 Actors point of view?3 Value for the actor?4 Entire flow of events?1 用例描述了系统应该做什么,而不是如何去做。2 用例必须依据参与者的视点。(即应该从参与者如何使用系统的角度出发定义用例,而不是从系统自身的角度)。3 用例必须为参与者提供可辨识的价值。4 用例及其参与者必须捕获系统使用过程中的一个完整的事件流。UML- 59 -附录附录 UML学习参考书籍学习参考书籍UML- 60 -附录附录 UML学习参考书籍学习参考书籍1.用例驱动UML对象建模应用范例分析Doug Rose

71、nberg、Kendall Scott 著,人民邮电出版社,著,人民邮电出版社,2005。2.UML精粹标准对象建模语言简明指南(第3版)Martin Fowler 著,徐家福著,徐家福 译,清华大学出版社,译,清华大学出版社,2005。3.UML对象、组件和框架Catalysis方法Desmond Francis DSouza、Alan Cameron Wills 著,清华大学出版社,著,清华大学出版社,2004。4.UML和模式应用(第2版)Craig Larman 著,机械工业出版社,著,机械工业出版社,2004。5.有效用例模式Steve Adolph, Paul Bramble 著,

72、车立红著,车立红 译,清华大学出版社,译,清华大学出版社,2003。6.用例建模,Kurt Bittner 著,姜昊著,姜昊 译,清华大学出版社,译,清华大学出版社,20037.UML和统一过程实用面向对象的分析和设计Jim Arlow,Ila Neustadt,机械工业出版社,机械工业出版社,2003。8. UML风格Scott W. Ambler 著,王少峰著,王少峰 译,清华大学出版社,译,清华大学出版社,2004。 9. UML用户指南Grady Booch,Ivar Jacobson著,邵维忠等译,机械工业出版社,著,邵维忠等译,机械工业出版社,2001年年6月。月。10. UML参

73、考手册Ivar Jacobson,James Rumbaugh。姚淑兰,唐发根译。机械工业出版社,。姚淑兰,唐发根译。机械工业出版社,2001。UML- 61 -附录附录 UML建模工具建模工具1. 2. 3. 4. UML- 62 -需求需求分析分析 BDFDDD 用例图用例图 类图类图 顺序图顺序图 活动图活动图 对象图对象图 协作图协作图 状态图状态图 构件图构件图 部署图部署图:最适用最适用:适用适用:可能适用可能适用:不适用不适用 附录附录 各个阶段用到各个阶段用到UML模型图模型图UML- 63 -附录附录 UML全部图的关系全部图的关系用例图用例文档 用例图用例文档对象图状态图构件图类图活动图 部署图活动图 部署图对象图类图状态图协作图顺序图协作图顺序图活动图 部署图需求分析需求分析 BDFD/DD全全部部图图之之间间的的关关系系

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号