图解基础教程

上传人:dja****22 文档编号:243334236 上传时间:2024-09-21 格式:PPT 页数:63 大小:927KB
返回 下载 相关 举报
图解基础教程_第1页
第1页 / 共63页
图解基础教程_第2页
第2页 / 共63页
图解基础教程_第3页
第3页 / 共63页
点击查看更多>>
资源描述
2. 用例图,2.1(概述),2.1.1三级标题(),四级标题,UML,-,13,-,2. 用例图,2.1(概述),2.1.1三级标题(),四级标题,UML,-,35,-,UML,-,35,-,第二章(用例图),2.1(概述),2.1.1三级标题(),四级标题,UML,-,48,-,第二章(用例图),2.1(概述),2.1.1三级标题(),2.1.1.1四级标题,UML,-,63,-,一级标题(协作图),二级标题(概述),三级标题(),正文,UML,-,18,-,第二章(用例图),2.1(概述),2.1.1三级标题(),四级标题,UML,-,44,-,UML,图解基础教程,目录,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,类图与代码的映射,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 构,件图,(Component Diagram),构件图为系统的构件建模型,构件即构造应用的软件单元,还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响,1.,前言,1.5,各,UML,图及特征,1.5.9,部署,图,(Deployment Diagram),部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配,类图,顺序图,需求分析,BD,FD/DD,类图,顺序图,用例图,用例文档,用例图,顺序图,主要图之间的关系,1.6,各,UML,图的关系,1.,前言,1.7 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.,用例图,2.2,用例图中的事物及解释,用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。,(,UML,参考手册,),用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行,(或称为发起了哪个用例)。,用例图多用于静态建模阶段,(,主要是业务建模和需求建模,),。,2.,用例图,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+,代码,class 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 B,B,C,A,2. A,A,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) 对象的状态图,图中包含以下状态,初始状态,Available,状态,Locked,状态,Sold,状态,状态间的转移,初始状态,Available,状态,票被预订,(lock),:,AvailableLocked,预定后付款,(buy),:,LockedSold,预定解除,(unlock),:,LockedAvailable,预定过期,(time out),:,LockedAvailable,直接购买,(assigned to),:,AvailableSold,换其它票,(exchang),,该票重有效:,SoldAvailable,6.,状态,图,(2),网上银行登陆系统,登陆要求提交个人社会保险号,(SSN),和密码,(PIN),经验证有效后登陆成功。,登陆过程包括以下状态,:,初态,(Initial state),获取社会保险号状态,(Getting SSN),获取密码状态,(Getting PIN),验证状态,(Validating),拒绝状态,(Rejecting),终态,(Final state),出发状态,动作,到达状态,Initial state,移动鼠标到,SSN,Getting SSN,Getting SSN,键入非,tab,键,显示键入内容,Getting SSN,键入,tab,键,或移动鼠标到,BIN,Getting PIN,提交,Validating,Getting PIN,键入非,shift-tab,键,显示 “ * ”,Getting PIN,键入,shift-tab,键,或移动鼠标到,SSN,Getting SSN,提交,Validating,Validating,验证提交信息有效,状态转移,Final state,验证提交信息无效,显示错误信息,Rejecting,Rejecting,退出,Final state,重试,清除无效的,SSN,,,PIN,Getting SSN,状态转移,的过程,有两个不同的,终态,6.,状态,图,6.7,练习,分析下面的状态图,回答问题,下降状态,在第一层,上升状态,向第一层下降,空闲状态,上升,到达,到达,上升,超时,下降,到达第一层,(,1),以下那些图形元素是对状态的描述?,(,a),超时 (,b),到达,(c),在第一层,(2),空闲状态,超时后转移到,_,状态,(a),向第一层下降(,b),上升状态,(c),终态,习题答案,(1)(c),(2)(a),6.,状态,图,7.,活动图,7.1,活动图概要,描述系统的动态行为。,包含活动状态,(ActionState),,活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。,活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。,类似于传统意义上的流程图。,活动图主要用于:,业务建模时,,,用于详述业务用例,,,描述一项业务的执行过程;,设计时,,,描述操作的流程。,7.2,活动图,事物,7.,活动图,7.3,活动图,关系,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,。,7.,活动图,2.,带泳道的活动图,本例为一个按活动职责,(,带泳道,),组织的处理订单用例的活动图,(,模型中的活动按职责组织)。活动被按职责分配到用线分开的不同区域,(,泳道,),:,Customer,Sales,Stockroom,(1)顾客要求服务,,Sales,负责接收定,单,并提交到,Stockroom,(2) Stockroom,处理定单,与此同时,,Customer,付款,并由,Sales,处,Deliverorder,至,Customer,。,7.,活动图,7.5,活动图练习,1.,请选择下面所列的活动图的事物中,,,表示信号的是,( ),,,表示对象流的是,( ),。,2.,关于右面的活动图,,,下面的说法中不正确的是,( ),。,A aPrinter:Printer,是信号。,B,操作开始从“删除报文框,”,活动开始。,C,在“创建,PS,文件,”,和,”,删除报文框,”,活动中,发送“,print(file)”,信号。,D,信号发送的方向是从左到右。,习题答案,1 C,,,B 2 C,8.,构件图,构件图用于,静态,建模,是表示构件类型的组织以及各种构件之间依赖关系的图。,构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。,8.2,构件图中的事物及解释,可替换的物理部分,包括软件代码、脚本或命令行文件,也可以表示运行时的对象,文档,数据库等。,节点,(node),是运行时的物理对象,代表一个计算机资源。具体请参见教程“部署图,(deployment diagram)”,部分。,8.3,构件图中的关系及解释,8.1,构件图概要,8.,构件图,实例1.,图中的构件名称是,Dictionary,字典。,该构件向外提供两个接口,即两个服务,Spell-check,拼写检查、,Synonyms,同义词。,图中“,Planner,计划者”构件向外提供一个“,update,更新”接口服务。,同时,该构件要求外部接口提供一个“,Reservations,预定”服务。,实例2.,8.4,构件图的例子,8.,构件图,实例,3,图中,依赖关系,包括:,顾客需要信息亭接口提供服务,售票员需要职员接口提供服务,信用卡付款需要信用卡代理提供服务,职员接口需要预订销售、个人销售和团体销售提供服务,管理接口需要数据库状态提供服务,售票处需要付款和购买提供服务,等等,图中,实现关系,包括:,信用卡付款提供付款服务,票数据库提供购买和状态查询服务,售票处提供预订购买、个人购买和团体购买服务,情景一:,购买个人票可以通过公用信息亭订购也可直接向售票员购买,但购买团体票只能通过售票员。,情景二:,买票的人可以根据任意选择预订销售或个人销售或团体销售中的一种方式,售票处为了方便销售,需要信用卡付款服务的支持,同时也必然需要票数据库处在有票可卖的状况中。,情景描述,8.,构件图,1.,构件图用于那种建模阶段?,A.,动态建模,B.,静态建模,2.,一个构件只能对特定的另一个构件提供特定的一种服务。这种说法正确吗?,A.,正确,B.,错误,3.,构件图用于描述系统中各物理部件之间的服务的依赖提供关系。这种说法正确吗?,A.,正确,B.,错误,4.,构件图中实线箭头表示服务的依赖,虚线箭头表示服务的提供。这种说法正确吗?,A.,正确,B.,错误,习题答案:,1.B 2.B 3.A 4.B,8.5,习题,9.,部署图,9.2,部署图中的事物及解释,部署图用于,静态,建模,是表示运行时过程节点结构、构件实例及其对象结构的图。,如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。,部署图的两种表现形式:实例层部署图和描述层部署图,(,会在后面的实例中给出,),。,9.1,部署图概要,9.,部署图,9.4,部署图的例子,实例1 实例层部署图,实例层部署图描述各节点和它们之间的连接。,本图中的信息与上张描述层部署图中的内容是相互对应的。,图中的关系是各个节点之间存在的通信关系。,9.3,部署图中的关系及解释,9.,部署图,实例,2,描述层部署图,图中,顾客购票,的情景如下:,顾客通过位于,Kiosk,节点的顾客接口控件进行购票的操作,该顾客接口构件的购票操作依赖于处于,TicketServer,节点上的售票构件提供的服务,售票构件要完成售票操作,又要依赖统一节点上信用卡付款构件提供的付款服务和票数据库构件,图中包括的各种关系如下:,通信链关系,(,不带箭头的直线,),TicketServe,票服务器与,Kiosk,信息厅之间存在一对多的通信关联;与,SalesTerminal,售票终端也存在一对多的通信关联;,依赖关系,(,带箭头的虚线,),TicketSeller,售票构件依赖,CreditCardCharges,信用卡付款构件和,TicketDB,票数据库构件提供的服务。,节点,TicketServer(,售票服务,),上的构件:,CreditCardCharges/ManagerInterface/ TicketSeller/TicketDB,节点,Kiosk(,信息亭,),上的构件:,CustomerInterface,SalesTerminal(,销售终端,),上的构件:,ClerkInterface,描述层部署图表示了系统中的各节点和每个节点包含的构件。,9.,部署图,9.5,关于部署图与构件图,部署图与构件图相同的构成元素:,构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务。,部署图与,构件图,的关系:,部署图表现构件实例;,构件图表现构件类型的定义。,部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境;,构件图偏向于描述构件之间相互依赖支持的基本关系。,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,习题,附录,WAVE,测试,1,W,hat to do?,(,Not how to do.,),2,A,ctors point of view?,3,V,alue for the actor?,4,E,ntire flow of events?,1,用例描述了系统应该做什么,而不是如何去做。,2,用例必须依据参与者的视点。(即应该从参与者如何使用系统的角度出发定义用例,而不是从系统自身的角度)。,3,用例必须为参与者提供可辨识的价值。,4,用例及其参与者必须捕获系统使用过程中的一个完整的事件流。,附录,UML,学习参考书籍,附录,UML,学习参考书籍,1.,用例驱动,UML,对象建模应用,范例分析,Doug Rosenberg,、,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,著,车立红 译,清华大学出版社,,2003,。,6.,用例建模,,,Kurt Bittner,著,姜昊 译,清华大学出版社,,2003,7.UML,和统一过程实用面向对象的分析和设计,Jim Arlow,,,Ila Neustadt,,机械工业出版社,,2003,。,8. UML,风格,Scott W. Ambler,著,王少峰 译,清华大学出版社,,2004,。,9. UML,用户指南,Grady Booch,,,Ivar Jacobson,著,邵维忠等译,机械工业出版社,,2001,年,6,月。,10. UML,参考手册,Ivar Jacobson,,,James Rumbaugh,。姚淑兰,唐发根译。机械工业出版社,,2001,。,附录,UML,建模工具,1.,2.,3.,4.,需求分析,B
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!