UML概述

初步学习了解UML

1.自己的小思考

刚开始了解UML

啥是UML

根据我的初步理解,UML首先自己猜测一下这个名字应该是英文缩写吧,果然百度一搜,U是统一—–Unified,M是建模——Modeling,L是语言—–Language,合在一块就是叫做Unified Modeling Language,统一建模语言,咦咦咦,Java是一种面向对象的语言,那UML是一种统一建模语言,它们两者之间有什么关系嘞

2.csdn学习初步了解

一,UML概述

UML是一个为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于 描述以用例为驱动,以体系结构为中心的软件设计的全过程。

image-20211218193050710
2.行为事物:UML模型图的动态部分,描述跨越空间和时间的行为

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

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

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

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

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

(二)关系[Relationships]:关系把事物紧密联系在一起

image-20211218193511327
2.用例图[Use Case Diagram]:用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图, 用例是系统中的一个功能单元

image-20211218193547347
4.顺序图[Sequence Diagram]:(1)顺序图显示对象之间的动态合作关系,他强调对象之间消息发送的顺序,同时显示对象之间的交互;(2)顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件

image-20211218193658233
6.状态图[State Chart Diagram]:状态图是一个类对象所可能经历的所有历程的模型图。 状态图由对象的各个状态和连接这些状态的转换组成

image-20211218193728440
8.构件图[Component Diagram]:构件图为系统的构件建模型——构件即构造应用的软件单元——还包括 各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响

image-20211218193824153
总结

image-20211218194050170

三、UML语法描述

image-20220115182953821

对一些设计相关术语的定义

1.软件设计表示法

是一种使用图形或文本方式或同时使用图形和文本描述软件设计的方法。

2.软件设计思想

是一种可以用于设计系统的根本性的思想。例如,信息隐藏是一种软件设计思想。

3.软件设计策略

是一种对设计的整体规划和方向的性的指导。

4.软件结构组织准则

是用于帮助设计者将软件系统组织为构件的启发式规则或指导方针。例如,对象结构设计准则为如何将系统分解为对象提供了指导方针。

5.软件设计方法

是一种描述了用于在给定的应用系统软件需求基础上创建”个设计方案的步骤序列的系统化方法。

这种方法可帮助设计者或设计团队确定需要做出的决策、做出决策的顺序以及决策时使用的结构设计准则。设计方法建立在一组设计思想基础上,使用一种或多种设计策略,并且使用某种设计表示法描述所得到的设计。在一个给定的设计步骤中,设计方法可能会提供一组结构设计准则来帮助设计者将系统分解为构件。

6.协作的对象建模和设计方法

使用 UML 表示法来描述设计。COMET 基于信息隐藏、类、继承和并发任务等设计思想。该方法使用并发对象设计的设计策略,该策略将软件系统的结构组织为一组主动和被动对象并
且定义它们相互之间的接口。此外,该方法还为分析过程提供了结构设计准则来帮助将系统的结构组织为对象,而且为设计过程提供了附加的准则来确定子系统和并发任务。


1.5COMET:一种基于UML的软件应用建模和设计方法

描述了一种称为 COMET 的基于 UML 的软件建模和体系结构设计方法。

COMET是一种迭代的用例驱动和面向对象的软件开发方法,涵盖了软件开发生存周期的需求、分析设计建模阶段。系统的功能性需求被定义为参与者和用例。每个用例定义了一个或多个参与者与系统之间的交互序列。用例可以在各种不同的细节层次上进行考虑。在需求模型中,系统的功能性需求被定义为参与者和用例。在分析模型中,用例被具体化为参与用例的对象及其交互关系。而设计模型中则会开发软件体系结构,考虑分布、并发和信息隐藏等问题。

1.6UML标准

UML 0.9 统一了 Booch、Pcobson(1992)和 Rumbaugh et al(1991)所述的表示法。这一版本与各种厂商和系统集成商的参与一起构成了 UML 标准化工作的基础。

基于 UML 的模型驱动体系结构
按照 OMG 的观点,“建模是软件应用在编码之前的设计”。OMG 积极推动着在模型驱动的软件体系结构中将 UML 模型作为实现之前的软件体系结构建模表示。OMG 认为 UML 独立于特定的方法学,是一种描述面向对象分析和设计结果的表示法,其中的分析和设计过程可以采用各种不同的方法学。
UML 模型可以是平台无关模型也可以是平台相关模型PIM 是一种在采用特定平台的决策做出之前描述软件体系结构的精确模型。首先开发 PIM 特别有用,因为同一个 PIM 可以映射到不同的中间件平台上,

例如 COM、CORBA、.NET、J2EE、Web Services 或其他 Web 平台。本书中介绍的方法使用模型驱动体系结构的概念开发基于构件的软件体系结构,并将其表示为 UML 平台无关模型(PIM)。

1.7软件体系结构的多视图

软件体系结构可以从不同的角度进行考虑,称为不同的视图。提出了软件体系结构的 4+1 视图模型,提倡软件体系结构的多视图建模方法,其中用例视图位于中心位置(4+1 视图中的 1)。这些视图包括:逻辑视图,一种静态建模视图;进程视图,一种并发进程或任务视图;开发视图,一种子系统和构件设计视图;物理视图,一种反映物理拓扑结构及连接关系的视图。Hofimeister et al.(2000)描述了工业界对于软件体系结构的一种观点,包括四个视图:一个概念视图,描述主要的设计元素及其间的关系;一个代码视图,将源代码组织为对象代码、函数库和目录;模块视图,由子系统和模块组成;执行视图,描述了并发和分布式执行方面。
这本书描述 UML 中不同的软件体系结构建模视图。

这些视图包括:

image-20220116193444042

2.2用例图

一个参与者(actor)发起一个用例(use case )。用例定义了参与者与系统之间的一组交互序列。在用例图中,参与者用一个人形图标表示,系统则用一个方框来表示,一个用例表示为方框中的一个椭圆。通信关联将参与者与他们参与的用例进行连接。用例之间的关系通过包含(include)关系和扩展(extend)关系进行定义。

image-20220116193936667

为了区分类(类型)和对象(该类型的一个实例),对象名称需要带有下划线。可以在对象名和类名之间使用冒号分隔来完整地描绘一个对象,例如 anObject:Class。也可选择性地隐藏冒号和类名,仅剩下对象名,例如 anObject。另一种方式是隐藏对象名,仅在冒号后显示
类名,例如:Class

2.4类图

前言总说:

在类图中,类用方框描绘,类之间的静态(永久)关系被描绘成连接方框之间的连线。

UML 表示法支持以下三种类之间的主要关系类型:关联、整体/部分关系和泛化/特化关系。

第四种关系,即依赖关系,经常被用来表示包之间是如何进行关联的。

image-20220116195840331

**参与者通常显示在页面的最左端。**带有标签的水平箭头代表消息。仅有箭头连接的源对象和目标对象是相关的,消息从源对象发送到目标对象。时间从页面的顶部开始增加直至底
部。

另外,消息之间的间隔是不相关的。

2.6 状态机图

在 UML表示法中,一个状态转换图被称为状态机图。本书使用状态图这一更为通用的术语。

在 UML 表示法中,圆角框表示状态连接圆角框的弧线表示转换

image-20220116200536886

上图描述了一个被分解为正交区域BC 和 BD 的组合状态 B。在这种情况下,状态图在同一个时刻进入了每一个正交区域 BC 和 BD 中。每一个正交的子状态被进一步分解为顺序的子状态。因此,当进入组合状态 B 时,同样进入了状态 B1 和 B3。

2.7包

在UML里包是一个 一组建模元素的组合。

eg:

代表一个系统或一个子系统。

2.8并发通信图

在 UML 表示法中,一个主动对象可用于描绘一个并发对象、进程
、线程或任务。

可以用一个左右两边带有两根垂直线的方框表示—
个主动对象。

主动对象拥有自己的控制线程,并且能与其他对象并发执行。

被动对象不具有控制线程。被动对象只在其他对象调用其方法时才会执行。
主动对象在描绘系统并发视角的并发通信图中描绘。

区别:

主动对象用左右两边带有两条相互平行的垂直线的矩形框表示,被动对象则用常规的矩形框表示。

2.9 部署图

部署图以物理结点和结点间物理连接的方式(eg:网络连接)展示了一个系统的物理配置。

一个结点使用一个立方体表示,连接则用这些立方体之间的连接线表示。

本质上,部署图是以系统结点为关注点的一种类图。
在第当两个以上的计算机结点被同一网络连接在一起时,可以使用这种表示形式。

2.10 UML 扩展机制

UML 提供了三种语言扩展机制构造性,标记值和约束。

2.10.1 构造型

一个构造型定义了一个从已有 UML 建模元素中派生出来的、且针对建模者问题进行裁剪的构造块。UML 已经定义了多种标准的构造型。另外,建模者可以定义新的构造型。

扩展构造型的概念,它们允许一个建模元素被附加多个构造型。因此,一个建模元素不同的、可能正交的特性可以通过不同的构造型被描绘出来。COMET 方法就是利用了这个附加的功能。
UML 构造型表示法允许一个建模者针对一个特定的问题对 UML 建模元素进行裁剪。

然而,UML 也允许将构造型表示为符号。

2.10.2 标记值

标记值扩展了一个 UML 构造块的属性为其增加新的信息。

标记值以{标记=值}的形式书写在大括号中。

新添加的标记值用逗号分隔。
一个类可具有标记值。

2.10.3 约束

UML 表示法中的标记值和约束约束指定了一个必须为真的条件。

在UML 中,约束是一个 UML元素语义的扩展,它允许新规则的加入或修改已存在的规则。

UML也提供了对象约束语言来表达约束。

2.11 本书的约定

2.11.2 分析建模

1.类

类名单词首字母大写。

在图中,多单词的名字间没有空格,例如 CheckingAccount。

然而在文本中,为了提升可读性引入了空格,例如 CheckingAccount。
属性名单词首字母小写,例如 balance。

对于多单词组成的属性,在图中不使用空格分隔,但在文本中引人空格。多单词名称中的第一个单词首字母小写,接下来的单词首字母大
写。例如,在图中使用 accountNumber,在文本中使用 account Number。属性的类型使用首字母大写的单词表示,例如 Boolean、Integer 或 Real。

2.对象

对象可以通过多种方式表示。

在这种情况下,第一个单词的首字母小写,之后单词的首字母大写。例如,在图中,对象表示为 aCheckingAccount 和anotherCheckingAccount 的形式;在文本中,相同的对象表示为 aChecking Account 和another CheckingAccount 的形式。
一个单独的未命名对象。图中有些对象被表示为不具有对象名的类实例,例如:
CheckingAccount。在文本中,这个对象被命名为 CheckingAccount。为了提升可读性,
冒号被去除了,且在多单词组成的名字中引入了空格。这意味着,根据一个对象在图中的表示方式,在文本中有时该对象的首单词首字母大写,有时首单词的首字母小写。

3.消息

在分析模型中,由于消息的类型未被确定,因此消息总是表示为简单消息消息名字的首字母大写。在图和文本中,多单词组成的消息名字具有空格,例如 Simple Message Name。

4.状态图

在图和文本中,状态、事件、条件、动作和活动的名称都是首字母大写的,并且在多单间存在空格。

2.11.3 设计建模

设计模型的命名约定如下:
1.主动类和被动类主动类(并发类)和被动类的命名约定与分析模型中类的命名约定一致
2.主动对象和被动对象主动对象(并发对象)和被动对象的命名约定与分析模型中对象的命名约定一致。
3.消息在设计模型中,消息名字的第一个单词首字母是小写的,接下来的单词首字母大写。在图和文本中,单词之间都没有空格,如 alarmMessage。消息参数的名字用首字母小写的形式,例如 speed。在图和文本中,多单词的属性名字之间没有空格,另外,多单词名字的第一个单词首字母小写,之后的单词首字母大写,例如cumulativeDistance。
4.操作

在图和文本中,操作(也叫方法)的命名约定都遵循消息的命名约定。因此,操作及其
参数的第一个单词的首字母都是小写的,之后的单词首字母大写。单词之间不存在空格,例
如 validatePassword (userPassword )。

来源:爱你的阿白~

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月16日
下一篇 2022年3月16日

相关推荐