UML常见视图介绍

您所在的位置:网站首页 在uml提供的图中 UML常见视图介绍

UML常见视图介绍

2023-10-18 15:12| 来源: 网络整理| 查看: 265

前言

UML对很多程序员来说。听过,但是没有全面了解过。本文是对UML的科普,系统的介绍了UML的知识体系。

UML是用来对软件系统进行可视化、描述、构造和文档化的通用建模语言。融合了多种面向对象的建模方法,利用图形与符号,直观地表达与展示,链接了不同行业/不同专业的人士,搭建起了业界沟通的桥梁。

UML中一共定义了4种类型,总共包含了9种视图。

UML中的视图分类 用例图

是从外部用户的角度描述系统功能,并指出功能执行者。

静态图

显示了系统的静态结构,特别是存在事物种类的内部结构相互之间的关系。包含类图、对象图、包图。

行为图

描述系统的动态模型和组成对象之间的交互关系,包括交互图、状态图、活动图。

实现图

描述软件实现系统的组成和分布状况。包括构件图、部署图。

graph LR A(UML基础)-->C1(用例图) A-->B1(静态图) A-->B2(行为图) A-->B3(实现图) B1-->C2(类图) B1-->C3(对象图) B1-->C4(包图) B2-->C5(状态图) B2-->C6(交互图) B2-->C7(活动图) B3-->C8(构件图) B3-->C9(部署图)

上图所示,就是UML的9种视图的分类。下面对9种视图分别介绍。

用例图

首先介绍用例图。那么什么是用例呢。

用例是对一个活动者使用系统的一项功能时,所进行的交互过程的一个文字描述序列。代表了系统中各相关人员之间就系统的行为所达成的契约。

软件的开发过程可以分为需求分析、设计、实现等阶段。在需求阶段,用例是分析人员与客户沟通的工具和项目规模估算的依据;在设计阶段,用例是系统功能的主要输入;在实现阶段,用例是检测类行为的正确性的文档。因此,面向对象的软件开发工程是用例驱动的。

编写用例需要识别以下元素

(1)参与者 角色(actor)是指系统以外的、需要使用系统或与系统交互的东西,包括人、设备、外部系统等。一个参与者可以使用多个用例,一个用例也可以由多个参与者使用。在用例图中,用一个小人来表示。

image.png

(2)用例 用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。

image.png

(3)关系 用例和用户之间有关联关系。用以下图形表示:

关联: image.png

用例和用例之间有包含、扩展、泛化关系。

包含:

image.png

扩展:

image.png

泛化:

image.png

(4)子系统 用来展示系统的一部分功能,这部分功能联系紧密。

image.png

下面来看一个用例图示例:

image.png

类图

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。

类 用一下图形表示:

image.png

在类图中:

-表示private #表示protected ~表示default,也就是包权限 _下划线表示static 斜体表示抽象

类与类之间的关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

泛化表示类与类之间的继承关系,用下图表示:

image.png

实现表示一个class类实现interface接口(可以是多个)的功能。 用下图表示:

image.png

依赖:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。用下图表示:

image.png

关联:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

image.png

聚合:表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。

image.png

组合:组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。

image.png

下图是一个类图示例:

image.png

对象图

对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个"对象图"。然而,"对象图"这条短语在刻画各方面特定使用时非常有用。

交互图

交互图是描述对象之间的关系以及对象之间的信息传递的图。通常描述一个用例的行为,显示该用例中所涉及的对象之间的消息传递。 交互图可以帮助分析人员对战检查每个用例中描述的用户需求,如这些需求是否已经落实到能够完成这些功能的类中去实现,提醒分析人员去补充遗漏的类或方法。

序列图(时序图)、协作图(通信图)、交互概览图统称交互图。 序列图着重描述对象按照时间顺序的消息交换,协作图着重描述系统成分如何协同工作。 下图是一个processon的免费模板:

image.png

包图

一个"包图"可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。 包被描述成文件夹,可以应用在任何一种UML图上。

状态图

状态图用来描述一个对象在其生存期间的动态行为,表现为一个对象经历的状态序列,引起状态转移的事件,以及因状态转移发生的动作。

我们非常熟悉的一个线程运行状态图:

image.png

活动图

活动图是对系统的动态行为建模的5个图之一。活动图可以用于描述系统的工作流程和并发行为。活动图其实可以看做状态图的特殊形式,活动图中的一个活动状态结束后立即进入下一个活动。 下面介绍几个基本的概念:

活动 可以表示某算法过程中语句的执行。在活动图中需要注意区分活动状态和动作状态。动作状态是原子的,不能被分解,没有内部转移,没有内部活动,动作状态占用的时间是可以忽略的,动作状态的目的是执行进入动作,然后转向另一个状态。活动状态是可以分解的,不是原子的,其完成工作需要一定的时间。 用圆角矩形表示:

image.png

泳道 是活动图中的区域的划分。根据每个活动的职责对所有活动进行划分,每个泳道代表一个责任区。泳道和活动可以使多对一的关系。 用下图表示:

image.png

分支 在活动图中,对于同一个触发事件,可以根据不同的警戒条件转向不同的活动,每个可能的转移是一个分支。 分叉和汇合 分支表示从多种可能的活动状态转移中选择一个,如果表示系统或对象中的并发行为,则可以使用分叉和汇合这两种建模元素。 对象流 在活动图中可以出现对象,对象可以作为活动的输入输出。活动图中的对象表示活动和对象之间的关系

下图是一个活动图的示例(采用自processon的一个免费模板):

image.png

构件图

构件是系统中遵从一组接口且提供其实现的物理的、可替换的部分。 构件图则显示一组构件以及他们之间的相互关系。

构件有以下几种类型:

部署构件,如dll文件、COM+对象、CORBA对象、EJB、动态Web网页和数据库表等。 工作产品构件,如源代码文件、数据库文件等,这些构件可以用来生产部署构件。 执行构件,也就是系统执行后得到的构件。

下图采用自processon的一个免费模板:

image.png

部署图

部署图也成配置图、实施图,可以用来显示系统中计算机节点的拓扑结构和通信路径与结点上运行的软构件等。一个系统只有一个部署图,部署图常用于理解分布式系统。 部署图由体系结构设计师、网络工程师、系统工程师等描述。 下图是一个简单的部署图的例子:

image.png



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3