解决方案

UML基础教程

seo靠我 2023-09-25 19:12:19

作者:许东明

邮件:leafsunshin@163.com

最近更新时间:2019/9/9

文章目录

一、前言1.1UML概述1.1.1UML简介1.1.2UML模型图的构成 1.2UML事物1.2.1构件事SEO靠我物1.2.2行为事物1.2.3分组事物1.2.4注释事物 1.3UML关系1.3.1依赖1.3.2关联1.3.3泛化1.3.4实现 1.4各UML图及特征1.4.1 用例图( Use Case DiaSEO靠我gram )1.4.2 类图(Class Diagram)1.4.3对象图( Object Diagram )1.4.4 顺序图(Sequence Diagram)1.4.5协作图(CollaboraSEO靠我tion Diagram)1.4.6 状态图(State Chart Diagram)1.4.7 活动图(Activity Diagram)1.4.8 构件图(Component Diagram)1.SEO靠我4.9 部署图(Deployment Diagram) 1.5各UML图的关系1.6UML语法描述 二、用例图2.1用例图概要2.2用例图中的事物及解释2.3用例图中的关系及解释2.4例子实例1 参与SEO靠我者之间的泛化关系实例2 用例之间扩展和包含关系实例3. 航空售票的用例图 三、类图3.1类图概要3.2类图中的事物及解释3.2.1类3.2.2接口3.2.3抽象类3.2.4模板类 3.3类图中的关系及SEO靠我解释3.3.1关联关系3.3.2泛化关系3.3.3实现关系3.3.4依赖关系 3.4类图与代码的映射3.4.1类的映射3.4.2关联关系的映射3.4.3泛化关系的映射3.4.4实现关系的映射3.4.5SEO靠我依赖关系的映射 3.5类图例子3.5.1图形编辑器3.5.2演出售票系统 四、顺序图4.1概要4.2顺序图中的事物及解释4.3顺序图与用例图和类图的关系4.4顺序图例子 五、协作图5.1概要5.2协作SEO靠我图中的事物及解释5.3协议图中的关系及解释5.4消息标签5.5协作图与顺序图的区别和联系5.6协作图例子1.打印操作的协作图2.乘坐电梯的协作图 六、状态图6.1状态图概要6.1.1状态图6.1.2状SEO靠我态图用于 6.2状态图的组成6.2.1状态6.2.2转移 6.3状态图中的事物及解释6.4状态的可选活动表6.5例子(1)对象的状态图(2)网上银行登录系统 七、活动图7.1活动图概要7.2活动图事物SEO靠我7.3活动图关系7.4活动图实例1.一般的活动图2.带泳道的活动图 八、构件图8.1构件图概要8.2构件图中的事物及解释8.3构件图中的关系及解释8.4构件图的例子实例1实例2 九、部署图9.1部署图SEO靠我概要9.2部署图中的事物及解释9.3部署图中的关系及解释9.4部署图例子实例1实例2 9.5关于部署图与构件图 十、附录

一、前言

对UML1.5各种模型图的构成和功能进行说明

1.1UML概述

1.1.1USEO靠我ML简介

UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。UML的定义包SEO靠我括UML语义和UML表示法两个部分。UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。UML表示法:UML表示法定义UML符号的表示法,为开发者或开发SEO靠我工具使用这些图形符号和文本语法为系统建模提供了标准。

1.1.2UML模型图的构成

1.事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象 2.关系(RelatiSEO靠我onships):关系把事物紧密联系在一起 3.图(Diagrams ):图是事物和关系的可视化表示

1.2UML事物

UML包含4种事物:构件事物行为事物分组事物注释事物

1.2.1SEO靠我构件事物

UML模型的静态部分,描述概念或物理元素

他包含以下几种:1.类:具有相同属性相同操作 相同关系相同语义的对象的描述2.接口:描述元素的外部可见行为,即服务集合的定义说明3.协作:描述了一组事物SEO靠我间的相互作用的集合4.用例:代表一个系统或系统的一部分行为,是一组动作序列的集合5.构件:系统中物理存在,可替换的部件6.节点:运行时存在的物理元素另外,参与者、信号应用、文档库、页表等都是上述基本事SEO靠我物的变体

1.2.2行为事物

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

交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接 状态机:描述事物或交互在生命周期内响SEO靠我应事件所经历的状态序

1.2.3分组事物

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

包:把元素组织成组的机制

1.2.4注释事物

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

注解:对元素进行约束或解SEO靠我释的简单符号

1.3UML关系

1.3.1依赖

依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义

1.3.2关联

关联(associaSEO靠我tion)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系

1.3.3泛化

泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系

1.3.4实现

实现(realSEO靠我ization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约

1.4各UML图及特征

1.4.1 用例图( Use Case Diagram )

用例图是从用户角度描述系统功能, 是SEO靠我用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元

1.4.2 类图(Class Diagram)

类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类SEO靠我的内部结构(类的属性和操作)类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联

1.4.3对象图( Object Diagram )

对象图是类图的实例,几乎使用与类图完全相同的标识。他们SEO靠我的不同点在于对象图显示类的多个对象实例,而不是实际的类

1.4.4 顺序图(Sequence Diagram)

顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互顺序图SEO靠我的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件

1.4.5协作图(Collaboration Diagram)

协作图描述对象间的协SEO靠我作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系.协作图的一个用途是表示一个类操作的实现

1.4.6 状态图(State Chart DiagSEO靠我ram)

状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成

1.4.7 活动图(Activity Diagram)

活动图是状态图的一个变体,用来描述执行算法的SEO靠我工作流程中涉及的活动活动图描述了一组顺序的或并发的活动

1.4.8 构件图(Component Diagram)

构件图为系统的构件建模型—构件即构造应用的软件单元—还包括各构件之间的依赖关系,以便通过这SEO靠我些依赖关系来估计对系统构件的修改给系统可能带来的影响

1.4.9 部署图(Deployment Diagram)

部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器SEO靠我。这个视图允许评估分配结果和资源分配

1.5各UML图的关系

1.6UML语法描述

二、用例图

2.1用例图概要

用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。 (《UML参考手册》)用例图列出系SEO靠我统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)。用例图多用于静态建模阶段(主要是业务建模和需求建模)。

2.2用例图中的事物及解释

2.3用例图中的关系及解释

2.SEO靠我4例子

实例1 参与者之间的泛化关系

参与者

:经理,安全主管,保安

用例:管理人事,批准预算,批准安全证书,监视周边

在参与者之间不存在泛化关系的情况下,各个参与者参与 用例的情况分别是:经理参与用例管理人事SEO靠我和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全SEO靠我主管就可以参与全部4个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。

实例2 用例之间扩展和包含关系

用例的上下文是:短途旅行但汽车的油不足以应付全部路程。那么为汽车加油的动SEO靠我作在旅行的每个场景(事件流)中都会出现,不加油就不会完成旅行。吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。

实例3. 航空售票的用例图

参与者(actor):clerk,监督员,信用卡服务商,SEO靠我信息亭用例(use case): Buy tickets, Buy Subscription, Make charges, Survey sales参与者Clerk参与(或称发起)Buy ticketSEO靠我s和Buy Subscription 两个用例(关联关系)。两个用例的事件流都包含Make charges用例(包含关系)。系统由:Buy tickets, Buy Subscription, MakSEO靠我e charges, Survey sales组成。该系统主要包含:Buy tickets, Buy Subscription, Make charges, Survey sales这几个功能。该系统SEO靠我主要面向的用户(参与者):clerk,监督员,信用卡服务商,信息亭。

三、类图

3.1类图概要

类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法类图中的“SEO靠我类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象

3.2类图中的事物及解释

3.2.1类

从上到下分为三部分,分别是类名、属性和操作。类名是必须有的类如果有属性,则每一个属性都必须有一SEO靠我个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等

3.2.2接口SEO靠我

一组操作的集合,只有操作的声明而没有实现

3.2.3抽象类

不能被实例化的类,一般至少包含一个抽象操作

3.2.4模板类

一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类

3.3类图中的SEO靠我关系及解释

3.3.1关联关系

描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合 聚合关系:特殊关联关SEO靠我系,指明一个聚集(整体)和组成部分之间的关系

组合关系:语义更强的聚合,部分和整体具有相同的生命周期

3.3.2泛化关系

在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间

3.3.3实现关系SEO靠我

对应于类和接口之间的关系

3.3.4依赖关系

描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式,例如绑定(bind)、友元(friend)等

3.4类图与代码的映射

3.4.1类的映射

//C++SEO靠我代码 class Vehicle { public:virtual int Start() = 0;virtual int Stop() = 0;virSEO靠我tual int Run(float fSpeed) = 0; private:float fMaxSpeed; }; //java代码 SEO靠我 public abstract class Vehicle {public abstract int Start();public abstract int Stop();publSEO靠我ic abstract int Run(float fSpeed);private float fMaxSpeed; }

3.4.2关联关系的映射

//C++代码 clasSEO靠我s Dialog { private:Button btnOK;Button btnCancel;TextBox txtInfo; }; SEO靠我 class Button {}; class TextBox {};

3.4.3泛化关系的映射

//C++代码 class SavingsSEO靠我Account : public Account { }; //Java代码 public class SavingsAccount extendsSEO靠我 Account { }

3.4.4实现关系的映射

//C++代码 class Shape { public:virtual void DrSEO靠我aw() = 0; };class Circle : public Shape { public:void Draw(); privatSEO靠我e;Point ptCenter;int nRadius; }; //Java代码 public interface Shape { SEO靠我 public abstract void Draw(); } public class Circle implements Shape SEO靠我{ public void Draw(); private Point ptCenter; private int nRadius; }SEO靠我

3.4.5依赖关系的映射

//C++代码 template<typename T> class Stack { private:int sSEO靠我ize; public:int Push(T elem);int Pop();const T& GetTop(); };typedef Stack<float> FloSEO靠我atStack; //C++(编译器生成) class FloatStack { private:int size; SEO靠我public:int Push(float elem);int Pop();const float& GetTop(); };

3.5类图例子

3.5.1图形编辑器

图形编辑器一般都具有一些SEO靠我基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的组合模式可以用相同的方SEO靠我式处理两种图形

3.5.2演出售票系统

在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作

四、顺序图

4.1概要SEO靠我

顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。 顺序图属于动态建SEO靠我模。顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。浏览顺序图的方法是:从上到下查看对象间交换的消息。

4.2顺序图中的事物及解释

4.3顺序图与SEO靠我用例图和类图的关系

4.4顺序图例子

简单的例子

复杂的例子 此图是描述购票这个用例的顺序图。顾客在信息亭与售票中心通话触发了这个用例的执行。顺序图中付款这个用例包括售票中心与信息SEO靠我亭和信用卡服务处使用消息进行通信过程。此图中存在的事物有:

对象(信息亭 Kjosk ,售票中心 Box Office, 信用卡服务 Credit Card Service ),生命线,消息符号。售票中SEO靠我心发Show Available(seat-list)消息给信息亭,表示调用信息亭类中的Show Available(seat-list)操作,给出可用的座位表。

五、协作图

5.1概要

协作图是一种交互图SEO靠我,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。协作图可以表示类操作的实现。

5.2协作SEO靠我图中的事物及解释

5.3协议图中的关系及解释

5.4消息标签

消息标签的Format: [前缀] [守卫条件] 序列表达式 [返回值:=] 消息名

1. 前缀的语法规则: 序列号,序列号,…,序列号 ‘/’(前SEO靠我缀用来同步线程,意思是在发送当前消息之前指定序列号的消息被处理.例:1.1a, 1.1b/) 2. 守卫条件的语法规则: [条件短句] 说明:条件短句通常用伪代码或真正的程序语言来表示SEO靠我。 例:[x>=0] 3. 返回值和消息名:返回值表示一个消息的返回结果,消息名指出了消息的名字和所需参数。 例:x:=calc ( n ) 4. 下面是一个完整的消息SEO靠我标签:

5.5协作图与顺序图的区别和联系

1. 协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同。 2. 顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象SEO靠我间的关系。 3. 协作图清楚地表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。 4. 协作图和顺序图可以相互转化。

5.6协作图例子

1.打印操作的协作图

2.乘SEO靠我坐电梯的协作图

图中存在的事物有:参与者按钮对象电梯控制对象命令对象工作队列电梯对象图中存在的关系有:链接

参与者需要乘坐电梯,他从系统外部按下按钮,让电梯到达他想去的楼层。此时,电梯系统的操作被启动,电SEO靠我梯控制对象以循环的方式检查所有的电梯,从中选择一个工作队列长度最短的。然后,它创建一个作业命令,并将该命令放入对应电梯的工作队列,接着激活队列。电梯对象并发运行,从它的队列中选择一个作业并执行。电梯是SEO靠我一个活动对象,它与它的控制线程并发执行。

六、状态图

6.1状态图概要

6.1.1状态图

说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应。

6.1.2状态图用于

揭示Actor、类、子系SEO靠我统和组件的复杂特性。 为实时系统建模。

6.2状态图的组成

6.2.1状态

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

6.2.2转移

转移是SEO靠我由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。

6.3状态图中的事物及解释

6.4状态的可选活动表

6.5例子SEO靠我

(1)对象的状态图

图中包含以下状态:初始状态Available状态Locked状态Sold状态状态间的转移初始状态àAvailable状态票被预订(lock):AvailableàLocked预定后付SEO靠我款(buy):LockedàSold预定解除(unlock):LockedàAvailable预定过期(time out):LockedàAvailable直接购买(assigned to):AvaiSEO靠我lableàSold换其它票(exchang) ,该票重有效:SoldàAvailable

(2)网上银行登录系统

七、活动图

7.1活动图概要

描述系统的动态行为。包含活动状态(ActionState),活SEO靠我动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。类似于传统意义上的流程图。活动图主要用于: SEO靠我 + 业务建模时,用于详述业务用例,描述一项业务的执行过程; + 设计时,描述操作的流程。

7.2活动图事物

7.3活动图关系

7.4活动图实例

1.一般的活动图

本活动图描述一个处SEO靠我理订单的用例执行过

(1)执行setup order

(2)根据order的类型是执行不同的分支:

- single order:执行assign seat、charge credit card

- subsSEO靠我cription:同时执行assignseats、debit account或 award bonus

- single order与subscription两步可同时进行

(3) 最后mail packSEO靠我et。

2.带泳道的活动图

本例为一个按活动职责(带泳道)组织的处理订单用例的活动图(模型中的活动按职责组织)。活动被按职责分配到用线分开的不同区域(泳道): CustomerSalesStockroomSEO靠我

(1)顾客要求服务,Sales负责接收定单,并提交到Stockroom

(2) Stockroom处理定单,与此同时,Customer付款,并由Sales处Deliverorder至Customer。

SEO靠我、构件图

8.1构件图概要

构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。

8.2构件图中的事物及解释

可替SEO靠我换的物理部分包括软件代码、脚本或命令行文件,也可以表示运行时的对象,文档,数据库等。节点(node)是运行时的物理对象,代表一个计算机资源。具体请参见教程“部署图(deployment diagramSEO靠我)”部分。

8.3构件图中的关系及解释

8.4构件图的例子

实例1

图中的构件名称是Dictionary字典。该构件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词。

实例2

SEO靠我中“Planner计划者”构件向外提供一个“update更新”接口服务。同时,该构件要求外部接口提供一个“Reservations预定”服务。

九、部署图

9.1部署图概要

部署图用于静态建模,是表示运行时SEO靠我过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图(会在后面的实例中给出)。

9.2SEO靠我部署图中的事物及解释

9.3部署图中的关系及解释

9.4部署图例子

实例1

实例层部署图描述各节点和它们之间的连接。本图中的信息与上张描述层部署图中的内容是相互对应的。图中的关系是各个节点之间存在的通信关系。SEO靠我

实例2

描述层部署图表示了系统中的各节点和每个节点包含的构件。图中包括的各种关系如下: 通信链关系(不带箭头的直线) TicketServe票服务器与Kiosk信息厅之间存在一对多的通信关联;与SaleSEO靠我sTerminal售票终端也存在一对多的通信关联; 依赖关系(带箭头的虚线) TicketSeller售票构件依赖CreditCardCharges信用卡付款构件和TicketDB票数据库构件提供的服SEO靠我务。

9.5关于部署图与构件图

部署图与构件图相同的构成元素:构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务。 部署图与构件图的关系:部署图表现构件实例;构件图表现构件类型SEO靠我的定义。部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境;构件图偏向于描述构件之间相互依赖支持的基本关系。

十、附录

1.《用例驱动UML对象建模应用——范例分析》Doug RosenberSEO靠我g、Kendall Scott 著,人民邮电出版社,2005。 2.《UML精粹——标准对象建模语言简明指南》(第3版)Martin Fowler 著,徐家福 译,清华大学出版社,20SEO靠我05。 3.《UML对象、组件和框架——Catalysis方法》Desmond Francis D’Souza、Alan Cameron Wills 著,清华大学出版社,2004。 SEO靠我 4.《UML和模式应用》(第2版)Craig Larman 著,机械工业出版社,2004。 5.《有效用例模式》Steve Adolph, Paul Bramble 著,SEO靠我车立红 译,清华大学出版社,2003。 6.《用例建模》,Kurt Bittner 著,姜昊 译,清华大学出版社,2003 7.《UML和统一过程实用面向对象的分析和设SEO靠我计》Jim Arlow,Ila Neustadt,机械工业出版社,2003。 8.《UML风格》Scott W. Ambler 著,王少峰 译,清华大学出版社,2004。 SEO靠我 9.《UML用户指南》Grady Booch,Ivar Jacobson著,邵维忠等译,机械工业出版社,2001年6月。 10. 《UML参考手册》Ivar Jacobson,JaSEO靠我mes Rumbaugh。姚淑兰,唐发根译。机械工业出版社,2001。
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2