UML2.0详细教程PPT.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML2 详细 教程 PPT
- 资源描述:
-
2.,用例图,2.1,(概述),2.1.1,三级标题(),四级标题,UML,-,*,-,2.,用例图,2.1,(概述),2.1.1,三级标题(),四级标题,UML,-,*,-,UML,-,*,-,第二章(用例图),2.1,(概述),2.1.1,三级标题(),四级标题,UML,-,*,-,第二章(用例图),2.1,(概述),2.1.1,三级标题(),2.1.1.1,四级标题,UML,-,*,-,一级标题(协作图),二级标题(概述),三级标题(),正文,UML,-,*,-,第二章(用例图),2.1,(概述),2.1.1,三级标题(),四级标题,UML,-,*,-,UML,2.0,详细教程,目录,1.前言,1.1,前言,1.2,UML概述,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,类图与代码的映射,3.5,类图例子,3.6,习题,4.顺序图,4.1,概要,4.2,顺序图中的事物及解释,4.3,顺序图与用例图和类图的关系,4.4,顺序图例子,4.5,练习题,5.协作图,5.1,概要,5.2,协作图中的事物及解释,5.3,协作图中的关系及解释,目录,5.4,对消息标签的详细讲解,5.5,协作图例子,5.6,协作图与顺序图的区别和联系,5.7,练习题,6.状态图,6.1,状态图概要,6.2,状态图的组成,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,部署图中的事物及解释,9.3,部署图中的关系及解释,9.4,部署图的例子,9.5,关于部署图与构件图,9.6,习题,附录,1.,前言,1.1,前言,本资料对,UML1.5,各种模型图的构成和功能进行说明,通过本资料的学习达到可以读懂,UML,模型图的目的。本资料不涉及模型图作成的要点等相关知识。,1.2,UML概述,1.,2.1 UML简介,UML(Unified Modeling Language),为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。,UML的定义包括UML语义和UML表示法两个部分。,(1)UML语义,:,UML,对语义的描述使开发者能在语义上取得一致认识,消除了因人,而异的表达方法所造成的影响。,(2)UML表示法,:UML表示法定义UML符号的表示法,为开发者或开发工具使用这,些图形符号和文本语法为系统建模提供了标准。,1.2.2 UML,模型图的构成,事物(,Things),:UML,模型中最基本的构成元素,是具有代表性的成分的抽象,关系(,Relationships),:,关系把事物紧密联系在一起,图(,Diagrams),:,图是事物和关系的可视化表示,1.,前言,1.3,UML,事物,UML,包含4种事物,:,构件事物 行为事物 分组事物 注释事物,1.3.1,构件事物,:,UML,模型的静态部分,描述概念或物理元素,它包括以下几种:,类,:具有相同属性相同操作 相同关系相同语义的对象的描述,接口,:描述元素的外部可见行为,即服务集合的定义说明,协作,:,描述了一组事物间的相互作用,的集合,用例,:代表一个系统或系统的一部分行为,是一组动作序列的集合,构件,:系统中物理存在,可替换的部件,节点,:运行时存在的物理元素,另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体,1.3.2,行为事物,:,UML,模型图的动态部分,描述跨越空间和时间的行为,交互,:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接,状态机,:描述事物或交互在生命周期内响应事件所经历的状态序列,1.3.3,分组事物,:,UML,模型图的组织部分,描述事物的组织结构,包,:把元素组织成组的机制,1.3.4,注释事物,:,UML,模型的解释部分,用来对模型中的元素进行说明,解释,注解,:对元素进行约束或解释的简单符号,1.,前言,1.4 UML,关系,1.4.1,依赖,依赖,(dependency),是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,,会影响到另一个事物(依赖事物)的语义,1.4.2,关联,关联,(association),是一种结构关系,,,它指明一个事物的对象与另一个事物的对象间,的联系,1.4.3,泛化,泛化,(generalization),是一种特殊,/,一般的关系。也可以看作是常说的继承关系,1.4.4,实现,实现,(realization),是类元之间的语义关系,其中的一个类元指定了由另一个类元保,证执行的契约,1.,前言,1.5,各,UML,图及特征,1.5.1,用例图(,Use Case Diagram),用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元,类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作),类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联,1.5.2,类图(Class Diagram),1.,前言,1.5,各,UML,图及特征,1.5.3,对象图,(,Object,Diagram,),对象图是类图的实例,,,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,,,而不是实际的类,1.5.4,顺序图(Sequence Diagram),顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互,顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件,1.,前言,1.5,各,UML,图及特征,1.5.5,协作图(Collaboration Diagram),协作图描述对象间的协作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系.,协作图的一个用途是表示一个类操作的实现,1.5.6,状态图(State Chart Diagram),状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成,1.,前言,1.5,各,UML,图及特征,1.5.7,活动图(Activity Diagram),活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动,活动图描述了一组顺序的或并发的活动,1.5.8 构件图(Compo,n,ent Diagram),构件图为系统的构件建模型,构件即构造应用的软件单元,还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响,1.,前言,1.5,各,UML,图及特征,1.5.9,部署图(Deployment Diagram),部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配,类图,顺序图,需求分析,BD,FD/DD,类图,顺序图,用例图,用例文档,用例图,顺序图,主要图之间的关系,1.6,各,UML,图的关系,1.,前言,1.7 UML,语法描述,类,是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述,对象,接口,是描述了一个类或构件的一个服务的操作集,协作,定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,用例,是对一组动作序列的描述,主动类,对象至少拥有一个进程或线程的类,构件,是系统中物理的、可替代的部件,参与者,在系统外部与系统直接交互的人或事物,节点,是在运行时存在的物理元素,交互,它由在特定语境中共同完成一定任务的一组对象间交换的消息组成,状态机,它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列,包,把元素组织成组的机制,注释事物,是,UML,模型的解释部分,依赖,一条可能有方向的虚线,关联,一条实线,可能有方向,泛化,一条带有空心箭头的实线,实现,一条带有空心箭头的虚线,1.,前言,1.8,习题,判断题,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),(,c),(d),2.1,用例图概要,2.,用例图,事物名称,解释,UML,表示,参与者,(Actor),在系统外部与系统直接交互的人或事物(如另一个计算,机系统或一些可运行的进程)。我们需要注意的是:,1.参与者是角色(,role,)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。,2.,参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。,3.,在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。,用例,(Use Case),系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,,,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。创建新用例,确认候选用例和划分用例范围的优秀法则,-“WAVE”,测试(见附录),2.2,用例图中的事物及解释,用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。(,UML,参考手册,),用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行,(或称为发起了哪个用例)。,用例图多用于静态建模阶段,(,主要是业务建模和需求建模,),。,2.,用例图,关系,解释,图,参与者与用例之间的关系,关联,表示参与者与用例之间的交互,通信途径。,(,关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。,),用例之间的关系,包含,箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。,include,扩展,箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。,参与者之间的关系,泛化,发出箭头的事物“,is a”,箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。,extend,2.3,用例图中的关系及解释,2.,用例图,实例,1,参与者之间的泛化关系,参与者,:经理,安全主管,保安,用例,:管理人事,批准预算,批准安全证书,监视周边,在参与者之间不存在泛化关系的情况下,各个参与者参与 用例的情况分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全主管就可以参与全部,4,个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。,实例,2,用例之间扩展和包含关系,用例的上下文是:短途旅行但汽车的油不足以应付全部路程。那么为汽车加油的动作在旅行的每个场景,(,事件流,),中都会出现,不加油就不会完成旅行。吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。,2.4,例子,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,组成。,该系统主要包含:,Buy tickets,Buy Subscription,Make charges,Survey sales,这几个功能。,该系统主要面向的用户(参与者):,clerk,,监督员,信用卡服务商,信息亭。,2.,用例图,右图中的参与者有?,(,a)1,(,b)2,(c),3,(,d)4,右图中的用例有?,(,a)1,(,b)2,(c)3(d)4,2,和,3,之间是什么关系?,5,和,6,呢?,(,a),扩展,包含(,b),包含,扩展,5,缺少了,3,仍然是个完整的用例?,(,a),是的(,b),不是,4,能够参与,2,吗?,1,能够参与,5,吗?,(,a),可以,不可以 (,b),不可以,可以,习题答案,:,1,、(,a)(d)2,、(,b)(c)3,、(,b)4,、(,b)5,、(,b),2.5,习题,3.,类图,3.2,类图中的事物及解释,3.2.1,类,从上到下分为三部分,分别是类名、属性和操作。类名是必须有的,类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等,类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等,可见性,-,代表,private,+,代表,public,#,代表,protected,也可以使用,图形,表示,返回值类型,操作名称,斜体为抽象操作,缺省值,类名,斜体为抽象类,属性名称,参数列表,3.1 类图概要,类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法,类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象,3.,类图,(标准图形),(变体图形),接口,抽象类,模版参数,模版类,3.2,类图中的事物及解释,3.2.2,接口,一组操作的集合,只有操作的声明而没有实现,3.2.3,抽象类,不能被实例化的类,一般至少包含一个抽象操作,3.2.4,模版类,一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类,3.,类图,UML,表示法,角色,类的角色是,“,事物,“,多重性,(用数字和*表示),1*,:,1,个或多个,1,个类图有,1,个或多个类,1,个类属于,1,个或多个类图,方向,双向关联(省略箭头),名字,关系的名字是,“,使用,”,实例,聚合关系,特殊关联关系,指明一个聚集(整体)和组成部分之间的关系,组合关系,语义更强的聚合,部分和整体具有相同的生命周期,UML,表示法,UML,表示法,(空心菱形),实例,类图包含有事物和关系,类图不存在了,事物和关系还可用于其它的类图,(实心菱形),实例,类与关联关系之间有组合关系,类不存在了,则相应的关联关系也不存在,3.3,类图中的关系及解释,3.3.1 关联关系,描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合,3.,类图,UML,表示法,3.3.3,实现关系,对应于类和接口之间的关系,UML,表示法,类,Circle,、,Rectangle,实现了接口,Shape,的操作,关联、泛化、实现、依赖都是一种关系,类、接口都是一种事物,3.3.2,泛化关系,在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间,3.3.4,依赖关系,描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式,,例如绑定(,bind,)、友元(,friend,)等,UML,表示法,模板类,Stack,定义了栈相关的操作;,IntStack,将,参数,T,与实际类型,int,绑定,使得所有操作都针对,int,类型的数据,类,Memento,和类,Originator,建立了友元依赖关系,以便,Originator,使用,Memento,的私有变量,state,3.,类图,C+代码,c,lass Vehicle,public:,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();,public,abstract int,Stop();,public,abstract int,Run(float fSpeed);,private,float fMaxSpeed;,3.4,类图与代码的映射,3.4.1,类的映射,3.,类图,3.4.2,关联关系的映射,C+,代码,class Dialog,private:,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,;,3.,类图,C+,代码,class Shape,public:,virtual void,Draw()=0;,;,class Circle:public Shape,public:,void,Draw();,private,;,Point ptCenter;,int nRadius;,;,Java,代码,public interface Shape,public abstract,void Draw();,public class Circle implements Shape,public void,Draw();,private Point ptCenter;,private int nRadius;,在,C+,语言里面,使用抽象类代替接口,使用泛化关系代替实现关系,在,Java,语言里面,有相应的关键字,interface,、,implements,3.4.4,实现关系的映射,3.4.5,依赖关系的映射,绑定依赖,C+,代码,template,class Stack,private:,int size;,public:,int Push(T elem);,int Pop();,const T,;,typedef Stack FloatStack;,C+,代码(编译器生成),class FloatStack,private:,int size;,public:,int Push(float elem);,int Pop();,const float,;,3.,类图,Graphics:,基本图形和组合图形的父类,声明了所有图形共同的操作,如,Draw,;也声明了专用于组合图形管理子图形的操作,如,Add,、,Remove,Line,、,Rectangle:,基本图形类,GroupGraphics:,组合图形类,与父类有组合关系,从而可以组合所有图形对象(基本图形和组合图形),泛化,组合,组合模式,3.5,类图例子,3.5.1,图形编辑器,图形编辑器一般都具有一些基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形,如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的,组合模式可以用相同的方式处理两种图形,3.,类图,3.5.2,演出售票系统,在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作,在这里只考虑以下三个用例:,Buy tickets:,买个人票,Buy Subscription:,买套票,Make charges:,信用卡付款,信息亭,Clerk,Buy tickets,Buy Subscription,信用卡服务商,Make charges,监督员,Survey sales,参与者,用例,Box Office,关系,SubscriptionSeries,series:int,IndividualReservation,Ticket,no:int,3.6,0.1,3.6,0.1,1,0.1,1,0.1,Reservation,date:Date,Customer,name:string,phone:string,1.*,1,1.*,1,Seat,no:int,colomn:int,row:int,available:bool,1,1,1,1,Performance,no:int,date:Date,time:Time,0.*,1,0.*,1,CreditCardService,Charge(cardnumber,cost),kjosk,ShowAvailability(seatlist),DemandPayment(cost),PrintTickets(performance,seats),EjectCard(),BoxOffice,Request(count,performance),Select(seats),InsertCard(cardnumber,password),Authorized(),用例图,类图,使用泛化关系处理客户购买个人票和套票两种不同情况,设计类的属性和操作,3.,类图,(1),哪两个类之间存在组合关系,Menu,、,MenuItem,MenuItem,、,Command,Command,、,OpenCommand,Command,、,PasteCommand,(2)OpenCommand,和,PasteCommand,是什么关系,组合,泛化,聚合,没关系,(3)编辑菜单,(EditMenu),是一种菜单,下面哪个图较好的描述了二者之间的关系,(4)下面哪份代码,(C+),最接近于图中对,MenuItem,的描述,Menu,+Add(item:MenuItem),EditMenu,class MenuItem,private:,virtual void Click()=0;,public:,Command*command;,;,class MenuItem,public:,virtual void Click()=0;,private:,Command*command;,;,class MenuItem,private:,virtual void Click()=0;,void undo();,public:,Command*command;,;,class menuitem,public:,virtual void Click()=0;,private:,Command*command;,;,3.6,习题,右图描述了菜单,(Menu),、菜单项,(MenuItem),、抽象命令类,(Command),和具体命令类,(OpenCommand,PasteCommand),之间的关系,完成,1-4,题,3.,类图,右图描述了图形接口(Graphics)、线段(Seg,ment,)、矩形(Rectangle)、点(Point)和三维点(Point3D)之间的关系,完成5,-7,题,(,5,),下面哪个关系没有在图中出现,关联,泛化,实现,依赖,(,6),下面对图中,四处的多重性的描述哪个不正确,0.*,1,0.*,1,(,7),下面哪份代码,(Java),最接近于图中对,Segment,的描述,public class Segment implements Graphics,privatc void Draw();,public Point ptStart;,public Point ptEnd;,public class Segment extends Graphics,public void Draw();,private Point ptStart;,private Point ptEnd;,public class Segment implements Graphics,private Point ptStart;,private Point ptEnd;,public void Draw();,public class segment implements graphics,public void Draw();,private Point ptStart;,private Point ptEnd;,4.,顺序图,UML,-,30,-,4.1,概要,顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。,顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。顺序图属于动态建模。,顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。,浏览顺序图的方法是:从上到下查看对象间交换的消息。,4.2,顺序图中的事物及解释,事物名称,解释,图,参与者,与系统、子系统或类发生交互作用的外部用户,(,参见用例图定义,)。,对象,顺序图的横轴上是与序列有关的对象。对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线。,生命线,坐标轴纵向的虚线表示对象在序列中的执行情况,(,即发送和接收的消息,对象的活动,),这条虚线称为对象的“生命线”。,消息符号,消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。,4.,顺序图,UML,-,31,-,4.3,顺序图与用例图和类图的关系,4.,顺序图,UML,-,32,-,4.4,顺序图例子,简单的例子,从参与者到对象和从对象到参与者之间发送的消息,从对象传递给另一个对象的消息,在类图中的类的对象,使用系统的参与者,这个系统是为某个用例的某个场景设计的,对象生命线表示从上到下的时间顺序,消息,1,在消息,2,之前发生,消息,2,在消息,3,之前发生,窄长方框用以强调这个部分处于活动状态,消息格式:,operation(parameter list),向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的 一个,operation。,例:,订单类发消息给客户类调用客户类中的“验证客户”操作,4.,顺序图,UML,-,33,-,复杂的例子,信息亭,售票中心,信用卡服务,从这个例子中可以看出:,Kjosk,类中的操作有,Show Available(seat-list),Demand Payment(cost),printtickets(performance,seats),eject card,Box Office,中的操作有,Request(count,performance),Select Seats,Insert Card(Card Number),authorized,Credit Card Service,类中的操作有,charge(card number,cost),此图是描述购票这个用例的顺序图。顾客在信息亭与售票中心通话触发了这个用例的执行。顺序图中付款这个用例包括售票中心与信息亭和信用卡服务处使用消息进行通信过程。,此图中存在的事物有:,对象(信息亭,Kjosk,,售票中心,Box Office,,信用卡服务,Credit Card Service,),生命线,消息符号。,信息亭发,Request(count,performance),消息给售票中心,表示调用售票中心类的,Request(count,performance),操作,来查询演出的信息。,售票中心发,Show Available(seat-list),消息给信息亭,表示调用信息亭类中的,Show Available(seat-list),操作,给出可用的座位表。,4.,顺序图,UML,-,34,-,1,指出左图中的参与者?,A B C D,2,哪些是对象?,A B C D,3 Server,类调用了,CreditService,类中的什么操作?,A B C D,4.5,练习题,1.A 2.B 3.B,5.1,概要,5.,协作图,协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态,情况。,协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。,协作图可以表示类操作的实现。,UML,-,35,-,UML,-,35,-,5.2,协作图中的事物及解释,事物名称,解释,图,参与者,发出主动操作的对象,负责发送初始消息,启动一个操作。,对象,对象是类的实例,负责发送和接收消息,与顺序图中的符号相同,冒号前为对象名,冒号后为类名。,消息流,(,由箭头和标签组成,),箭头指示消息的流向,从消息的发出者指向接收者。标签对消息作说明,其中,顺序号指出消息的发生顺序,并且指明了消息的嵌套关系;冒号后面是消息的名字。,标签,5.3,协作图中的关系及解释,关系名称,解释,关系实例,链接,用线条来表示链接,链接表示两个对象共享一个消息,位于对象之间或参与者与对象之间,UML,-,36,-,UML,-,36,-,5.,协作图,5.4,消息标签,消息标签的,Format:,前缀,守卫条件,序列表达式,返回值:,=,消息名,前缀的语法规则:序列号,序列号,,,序列号,/,(前缀用来同步线程,意思是在发送当前消息之前指定序列号的消息被处理.例:,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,协作图与顺序图的区别和联系,协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同。,顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。,协作图清楚地表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。,协作图,和,顺序图可以相互转化。,(进行协作图和顺序图的比较,请参考练习题,2),UML,-,37,-,5.6,协作图例子,1.打印操作的协作图,5.,协作图,actor,发送,Print,消息给,Computer,,,Computer,发送,Print,消息给,PrintServer,,如果打印机空闲,,PrintServer,发送,Print,消息给,printer,2.乘坐电梯的协作图,图中存在的事物有:,参与者,按钮对象,电梯控制对象,命令对象,工作队列,电梯对象,图中存在的关系有,:,链接,参与者需要乘坐电梯,他从系统外部按下按钮,让电梯到达他想去的楼层。此时,电梯系统的操作被启动,电梯控制对象以循环的方式检查所有的电梯,从中选择一个工作队列长度最短的。然后,它创建一个作业命令,并将该命令放入对应电梯的工作队列,接着激活队列。电梯对象并发运行,从它的队列中选择一个作业并执行。电梯是一个活动对象,它与它的控制线程并发执行。,UML,-,38,-,5.,协作图,5.7,练习题,请指出下面的消息标签各部分的内容。,1:display(),A.,序列表达式,:,消息名,B.,返回值:消息名,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,BBCA,2.,AA,2.,请对比本章中的协作图与其相应的顺序图,做练习题。,请在下图中指出,循环计算各个电梯的工作队列长度的消息的顺序号。,A 1.1 B1.2 C1.3 D2,请说明消息,1.3,所进行的操作,Invoke,(,job,),应属于哪个类所具有的方法。,A Queue,类,B ElevatorControl,类,C Elevator,类,D Button,类,6.1,状态图概要,6.1.1,状态图,说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件,的响应。,6.1.2,状态图用于,揭示,Actor,、类、子系统和组件的复杂特性。,为实时系统建模。,6.2,状态图的组成,6.2.1,状态,对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将,满足某些条件、执行某些活动,或等待某些事件。,6.2.2,转移,转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部,事件触发。,对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的,结果。,6.,状态,图,状态,上格放置名称,下格说明处于该状态时,系统或对象要做的工作(见可选活动表),转移,转移上标出触发转移的事件表达式。如果转移上未标明事件,,,则表示在源状态的内部活动执行完毕后自动触发转移,开始,初始状态,(,一个,),结束,终态,(,可以多个,),消息(属性)条件/,动作,6.3,状态图中的事物及解释,转换种类,描述,语法,入口动作,进入某一状态时执行的动作,entry/action,出口动作,离开某一状态时执行的动作,exit/action,外部转换,引起状态转换或自身转换,同时执行一个具体的动作,包括引起入口动作和出口动作被执行的转换,e(a:T)exp/action,内部转换,引起一个动作的执行但不引起状态的改变或不引起入口动作或出口动作的执行,e(a:T)exp/action,6.4,状态的可选活动表,6.,状态,图,6.5,例子,(1)对展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




UML2.0详细教程PPT.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/11692544.html