uml基础教程概要.ppt

上传人:聆听****声音 文档编号:10851409 上传时间:2023-05-28 格式:PPT 页数:126 大小:4.27MB
下载 相关 举报
uml基础教程概要.ppt_第1页
第1页 / 共126页
uml基础教程概要.ppt_第2页
第2页 / 共126页
uml基础教程概要.ppt_第3页
第3页 / 共126页
uml基础教程概要.ppt_第4页
第4页 / 共126页
uml基础教程概要.ppt_第5页
第5页 / 共126页
uml基础教程概要.ppt_第6页
第6页 / 共126页
uml基础教程概要.ppt_第7页
第7页 / 共126页
uml基础教程概要.ppt_第8页
第8页 / 共126页
uml基础教程概要.ppt_第9页
第9页 / 共126页
uml基础教程概要.ppt_第10页
第10页 / 共126页
uml基础教程概要.ppt_第11页
第11页 / 共126页
uml基础教程概要.ppt_第12页
第12页 / 共126页
uml基础教程概要.ppt_第13页
第13页 / 共126页
uml基础教程概要.ppt_第14页
第14页 / 共126页
uml基础教程概要.ppt_第15页
第15页 / 共126页
uml基础教程概要.ppt_第16页
第16页 / 共126页
uml基础教程概要.ppt_第17页
第17页 / 共126页
uml基础教程概要.ppt_第18页
第18页 / 共126页
uml基础教程概要.ppt_第19页
第19页 / 共126页
uml基础教程概要.ppt_第20页
第20页 / 共126页
亲,该文档总共126页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

uml基础教程概要.ppt

《uml基础教程概要.ppt》由会员分享,可在线阅读,更多相关《uml基础教程概要.ppt(126页珍藏版)》请在冰点文库上搜索。

uml基础教程概要.ppt

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.2UML概述1.2.1UML简介UML(UnifiedModelingLanguage)为面向对象软件设计提供统一的、标准的、可视化的建模语言。

适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

UML的定义包括UML语义和UML表示法两个部分。

(1)UML语义:

UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。

(2)UML表示法:

UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

1.2.2UML模型图的构成事物(Things):

UML模型中最基本的构成元素,是具有代表性的成分的抽象关系(Relationships):

关系把事物紧密联系在一起图(Diagrams):

图是事物和关系的可视化表示,1.前言,1.3UML事物UML包含4种事物:

构件事物行为事物分组事物注释事物1.3.1构件事物:

UML模型的静态部分,描述概念或物理元素它包括以下几种:

类:

具有相同属性相同操作相同关系相同语义的对象的描述接口:

描述元素的外部可见行为,即服务集合的定义说明协作:

描述了一组事物间的相互作用的集合用例:

代表一个系统或系统的一部分行为,是一组动作序列的集合构件:

系统中物理存在,可替换的部件节点:

运行时存在的物理元素另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体1.3.2行为事物:

UML模型图的动态部分,描述跨越空间和时间的行为交互:

实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:

描述事物或交互在生命周期内响应事件所经历的状态序列1.3.3分组事物:

UML模型图的组织部分,描述事物的组织结构包:

把元素组织成组的机制1.3.4注释事物:

UML模型的解释部分,用来对模型中的元素进行说明,解释注解:

对元素进行约束或解释的简单符号,1.前言,1.4UML关系1.4.1依赖依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义1.4.2关联关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系1.4.3泛化泛化(generalization)是一种特殊/一般的关系。

也可以看作是常说的继承关系1.4.4实现实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约,1.前言,1.5各UML图及特征1.5.1用例图(UseCaseDiagram),用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元,类图描述系统中类的静态结构。

不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联,1.5.2类图(ClassDiagram),1.前言,1.5各UML图及特征1.5.3对象图(ObjectDiagram),对象图是类图的实例,几乎使用与类图完全相同的标识。

他们的不同点在于对象图显示类的多个对象实例,而不是实际的类,1.5.4顺序图(SequenceDiagram),顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互顺序图的一个用途是用来表示用例中的行为顺序。

当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件,1.前言,1.5各UML图及特征1.5.5协作图(CollaborationDiagram),协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。

除显示信息交换外,协作图还显示对象以及它们之间的关系.协作图的一个用途是表示一个类操作的实现,1.5.6状态图(StateChartDiagram),状态图是一个类对象所可能经历的所有历程的模型图。

状态图由对象的各个状态和连接这些状态的转换组成,1.前言,1.5各UML图及特征1.5.7活动图(ActivityDiagram),活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活动,1.5.8构件图(ComponentDiagram),构件图为系统的构件建模型构件即构造应用的软件单元还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响,1.前言,1.5各UML图及特征1.5.9部署图(DeploymentDiagram),部署视图描述位于节点实例上的运行构件实例的安排。

节点是一组运行资源,如计算机、设备或存储器。

这个视图允许评估分配结果和资源分配,1.6各UML图的关系,1.前言,1.7UML语法描述,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,监督员,信用卡服务商,信息亭用例(usecase):

Buytickets,BuySubscription,Makecharges,Surveysales参与者Clerk参与(或称发起)Buytickets和BuySubscription两个用例(关联关系)。

这两个用例的事件流都包含Makecharges用例(包含关系)。

系统由:

Buytickets,BuySubscription,Makecharges,Surveysales组成。

该系统主要包含:

Buytickets,BuySubscription,Makecharges,Surveysales这几个功能。

该系统主要面向的用户(参与者):

clerk,监督员,信用卡服务商,信息亭。

2.用例图,右图中的参与者有?

(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能够参与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类从上到下分为三部分,分别是类名、属性和操作。

类名是必须有的类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等,3.1类图概要类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象,3.类图,抽象类,3.2类图中的事物及解释3.2.2接口一组操作的集合,只有操作的声明而没有实现3.2.3抽象类不能被实例化的类,一般至少包含一个抽象操作3.2.4模版类一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类,3.类图,聚合关系特殊关联关系,指明一个聚集(整体)和组成部分之间的关系组合关系语义更强的聚合,部分和整体具有相同的生命周期,3.3类图中的关系及解释3.3.1关联关系描述了类的结构之间的关系。

具有方向、名字、角色和多重性等信息。

一般的关联关系语义较弱。

也有两种语义较强,分别是聚合与组合,3.类图,3.3.3实现关系对应于类和接口之间的关系,类Circle、Rectangle实现了接口Shape的操作,关联、泛化、实现、依赖都是一种关系,类、接口都是一种事物,3.3.2泛化关系在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间,3.3.4依赖关系描述了一个类的变化对依赖于它的类产生影响的情况。

有多种表现形式,例如绑定(bind)、友元(friend)等,模板类Stack定义了栈相关的操作;IntStack将参数T与实际类型int绑定,使得所有操作都针对int类型的数据,类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量state,3.类图,C+代码classVehiclepublic:

virtualintStart()=0;virtualintStop()=0;virtualintRun(floatfSpeed)=0;private:

floatfMaxSpeed;,Java代码publicabstractclassVehiclepublicabstractintStart();publicabstractintStop();publicabstractintRun(floatfSpeed);privatefloatfMaxSpeed;,3.4类图与代码的映射3.4.1类的映射,3.类图,3.4.2关联关系的映射,C+代码classDialogprivate:

ButtonbtnOK;ButtonbtnCancel;TextBoxtxtInfo;classButton;classTextBox;,组合关系,代码表现为Dialog的属性有Button和TextBox的对象,3.4.3泛化关系的映射,Java代码publicclassSavingsAccountextendsAccount,C+代码classSavingsAccount:

publicAccount;,3.类图,C+代码classShapepublic:

virtualvoidDraw()=0;classCircle:

publicShapepublic:

voidDraw();private;PointptCenter;intnRadius;,Java代码publicinterfaceShapepublicabstractvoidDraw();publicclassCircleimplementsShapepublicvoidDraw();privatePointptCenter;privateintnRadius;,在C+语言里面,使用抽象类代替接口,使用泛化关系代替实现关系在Java语言里面,有相应的关键字interface、implements,3.4.4实现关系的映射,3.4.5依赖关系的映射,绑定依赖,C+代码templateclassStackprivate:

intsize;public:

intPush(Telem);intPop();constT,C+代码(编译器生成)classFloatStackprivate:

intsize;public:

intPush(floatelem);intPop();constfloat,3.类图,Graphics:

基本图形和组合图形的父类,声明了所有图形共同的操作,如Draw;也声明了专用于组合图形管理子图形的操作,如Add、RemoveLine、Rectangle:

基本图形类GroupGraphics:

组合图形类,与父类有组合关系,从而可以组合所有图形对象(基本图形和组合图形),泛化,组合,组合模式,3.5类图例子3.5.1图形编辑器图形编辑器一般都具有一些基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的组合模式可以用相同的方式处理两种图形,3.类图,3.5.2演出售票系统在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。

分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作,在这里只考虑以下三个用例:

Buytickets:

买个人票BuySubscription:

买套票Makecharges:

信用卡付款,用例图,类图,使用泛化关系处理客户购买个人票和套票两种不同情况,设计类的属性和操作,3.类图,

(1)哪两个类之间存在组合关系Menu、MenuItemMenuItem、CommandCommand、OpenCommandCommand、PasteCommand

(2)OpenCommand和PasteCommand是什么关系组合泛化聚合没关系,(3)编辑菜单(EditMenu)是一种菜单,下面哪个图较好的描述了二者之间的关系,(4)下面哪份代码(C+)最接近于图中对MenuItem的描述,3.6习题右图描述了菜单(Menu)、菜单项(MenuItem)、抽象命令类(Command)和具体命令类(OpenCommand,PasteCommand)之间的关系,完成1-4题,3.类图,右图描述了图形接口(Graphics)、线段(Segment)、矩形(Rectangle)、点(Point)和三维点(Point3D)之间的关系,完成5-7题,(5)下面哪个关系没有在图中出现关联泛化实现依赖(6)下面对图中四处的多重性的描述哪个不正确0.*10.*1(7)下面哪份代码(Java)最接近于图中对Segment的描述,4.顺序图,UML,-30-,4.1概要顺序图用来表示用例中的行为顺序。

当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。

顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。

顺序图属于动态建模。

顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。

表示了对象之间传送消息的时间顺序。

浏览顺序图的方法是:

从上到下查看对象间交换的消息。

4.2顺序图中的事物及解释,4.顺序图,UML,-31-,4.3顺序图与用例图和类图的关系,4.顺序图,UML,-32-,4.4顺序图例子,简单的例子,从参与者到对象和从对象到参与者之间发送的消息,从对象传递给另一个对象的消息,在类图中的类的对象,使用系统的参与者,这个系统是为某个用例的某个场景设计的,对象生命线表示从上到下的时间顺序,消息1在消息2之前发生,消息2在消息3之前发生,窄长方框用以强调这个部分处于活动状态,消息格式:

operation(parameterlist)向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的一个operation。

例:

订单类发消息给客户类调用客户类中的“验证客户”操作,4.顺序图,UML,-33-,复杂的例子,信息亭,售票中心,信用卡服务,从这个例子中可以看出:

Kjosk类中的操作有ShowAvailable(seat-list)DemandPayment(cost)printtickets(performance,seats)ejectcardBoxOffice中的操作有Request(count,performance)SelectSeatsInsertCard(CardNumber)authorizedCreditCardService类中的操作有charge(cardnumber,cost),此图是描述购票这个用例的顺序图。

顾客在信息亭与售票中心通话触发了这个用例的执行。

顺序图中付款这个用例包括售票中心与信息亭和信用卡服务处使用消息进行通信过程。

此图中存在的事物有:

对象(信息亭Kjosk,售票中心BoxOffice,信用卡服务CreditCardService),生命线,消息符号。

信息亭发Request(count,performance)消息给售票中心,表示调用售票中心类的Request(count,performance)操作,来查询演出的信息。

售票中心发ShowAvailable(seat-list)消息给信息亭,表示调用信息亭类中的ShowAvailable(seat-list)操作,给出可用的座位表。

4.顺序图,UML,-34-,1指出左图中的参与者?

ABCD2哪些是对象?

ABCD3Server类调用了CreditService类中的什么操作?

ABCD,4.5练习题,1.A2.B3.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=01.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=display1.2.3.7:

redraw()A.序列表达式返回值消息名B.守卫条件序列表达式消息名2*n:

=a.z:

prim:

=nextPrim(prim)A.守卫条件序列表达式消息名B.序列表达式返回值消息名3.1x0:

foo()A.序列表达式守卫条件B.守卫条件消息名C.序列表达式消息名1.1a,1.1b/1.2:

continue()A.前缀序列表达式消息名B.后缀守卫条件消息名,UML,-39-,5.协作图,3.练习题答案1.ABBCA2.AA,2.请对比本章中的协作图与其相应的顺序图,做练习题。

请在下图中指出,循环计算各个电梯的工作队列长度的消息的顺序号。

A1.1B1.2C1.3D2请说明消息1.3所进行的操作Invoke(job),应属于哪个类所具有的方法。

AQueue类BElevatorControl类CElevator类DButton类,6.1状态图概要6.1.1状态图说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应。

6.1.2状态图用于揭示Actor、类、子系统和组件的复杂特性。

为实时系统建模。

6.2状态图的组成6.2.1状态对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件。

6.2.2转移转移是由

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

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2