首页 > 其他分享 >UML用户指南(一)-----入门

UML用户指南(一)-----入门

时间:2022-11-21 20:03:18浏览次数:32  
标签:入门 事物 元素 衍型 diagram ----- UML 模型

为什么要建模

 

 

如果想搭建一个狗窝,备好木材、钉子和一些基本工具之后就可以开始工作了。如果没有达到希望的,反工总是可以的,无非是让狗受点委屈。如果想建造一座房子,备好东西之后也可以开始工作,但是家庭对于房子的需求肯定比狗对于狗窝的需求要多。在这种情况下,至少应该先绘制一些表明房子是什么样子的简图。如果你要建造高楼大厦,那么准备好工具就开始工作是非常愚蠢的。负责建筑物设计和施工的是一个庞大的组织机构,这个组织需要各种各样的设计图和模型,以供各方沟通。

 

奇怪的是,很多软件开发组织者想建造一座大厦式的软件,而在动手的时候却好像它们正在仓促的造一个狗窝。

 

不成功的软件项目失败的原因各有不同,而所有成功的项目由很多方面都是相似的。成功的软件组织由很多成功的因素,其中共同的一点就是对建模的采用。

 

简单的说,建模是对显示的简化,是为了能够更好的理解正在开发的系统。通过建模要达到4个目的:

 

1.模型有助于按照实际情况或按照所需要的样式对系统进行可视化。

2.模型能够规约系统的结构或行为

3.模型给了指导构造系统的模板

4.模型对做出的决策进行文档化。

 

因为不能完整的理解一个复杂的系统,所以要对它进行建模。

 

 

UML介绍

 

 

UML是一种用于可视化的语言。它不仅仅是一组图形符号。确切地讲,UML表示法中的每个符号都有明确的语义。这样,一个开发者可以用UML绘制一个模型,而另一个开发者可以无歧义地理解这个模型。

 

UML是一种可用于详细描述的语言

UML是一种用于构造的语言

UML是一种用于文档化的语言

 

UML的构造块

 

(1) 事物

(2) 关系

(3) 图

 

事物是对模型中首要成分的抽象;关系把事物结合在一起;图聚集了相关的事物。

 

A.UML中的事物

 

UML中由4种事物:

 

(1) 结构事物

(2) 行为事物

(3) 分组事物

(4) 注释事物

 

1.结构事物:描述概念元素或物理元素。结构事物总称为类目(classifier)。

 

一、类。

UML用户指南(一)-----入门_UML 

 

二、接口。


UML用户指南(一)-----入门_脚本_02     UML用户指南(一)-----入门_脚本_03
 
    

 

三、协作:定义了一个交互,他是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的总和。

 
 

UML用户指南(一)-----入门_脚本_04

 

四、用例

 

  

UML用户指南(一)-----入门_D语言_05

五、主动类:其对象至少拥有一个进程或者线程,因此他能控制活动。

 

 

UML用户指南(一)-----入门_脚本_06

 

 

六、构件:设计系统设计的模块化部件,将实现隐藏一组外部接口之后。


UML用户指南(一)-----入门_活动_07
 

七、制品:是系统中物理的而且可代替的部件,它包括物理信息,如源代码文           件、可执行程序和脚本。


UML用户指南(一)-----入门_脚本_08
 

 

八、结点:运行时的物理元素,它表示一个计算机资源,通常至少由一些记忆  能力和处理能力。
 

UML用户指南(一)-----入门_活动_09

 

 

上面这些元素是UML模型中可以包含的基本结构事物。它们也接受变体,如参与者、信号、是用程序、进程、线程、应用、文档、文件、库、页、表。

 

 

2.行为事物

 

 

   3.分组事物:

 

包:不像构件,纯粹是概念上的。


UML用户指南(一)-----入门_D语言_10
 

 

 

4.注释事物

 

UML用户指南(一)-----入门_工作_11

B.UML中的关系

 

UML中由4种关系:依赖、关联、泛化、实现。

 

 1.依赖(dependency)

 

是UML中的语义关系,其中一个元素(独立元素)发生变化会影响到另一个元素(依赖元素)的语义。


UML用户指南(一)-----入门_活动_12 

 

 2.关联(association):是类之间的结构关系。

 

 


UML用户指南(一)-----入门_D语言_13
 

 

             3.泛化(generalization):是一种特殊/一般关系。

 


UML用户指南(一)-----入门_脚本_14
 

 

 4.实现(realization):是类目之间的语义关系,其中一个类目指定了由另一个铃木保证执行的合约。

 


UML用户指南(一)-----入门_工作_15
 

 

 C.UML中的图

 

 

图是一组元素的图形表示,大多数情况下把图画成定点(代表事物)和弧(代表关系)的连通图。UML包括这13种图:

 

1) 类图(class diagram)

2) 对象图(objectdiagram)

3) 构件图(componentdiagram)

4) 组合结构图

5) 用例图(use case diagram)

6) 顺序图(sequence diagram)

7) 通信图(communication diagram)

8) 状态图(state diagram)

9) 活动图(activity diagram)

10) 部署图(deployment diagram)

11) 制品图(artifacts diagram)

12) 包图(package diagram)

13) 定时图(timing diagram)

14) 交互概览图

 

 

D.UML中的公共机制

 

在UML中有种贯穿整个语言且一致应用的公共机制,这4种机制是:

 

1.详述

 

UML不仅仅是一种图形语言。在它的图形表示法的每部分背后都有一个详述,这个详述提供了对构造块的语法和语义的文字描述。

 

2.修饰

 

UML用户指南(一)-----入门_UML_16

3.通用划分

 

① 类和对象划分

 

类是一种抽象,对象是这种抽象的具体表现,在图形上,UML用与类同样的符号表示对象,并且在对象名的下面画一道线。


UML用户指南(一)-----入门_D语言_17
 

 

前者表示一个匿名的ExamFlag对象,后者则是Elyse,明确表示是ExamFlag对象。

 

 

② 接口和实现的分离

 

 


UML用户指南(一)-----入门_活动_18
 

 

 

 

③ 类型和角色的分离

 

 

4.扩展机制

 

 

① 衍型(stereotype)

 

衍型扩展了UML词汇,可以用来创造新的构造块。可以把衍型看做元类型(一种定义其他类型的类型),因为每一个衍型将创建一个相当于UML元模型中新类的等价物。

 

 

 

 标记值(tagged value)

 

标记值扩展了UML衍型的特性,可以用来创建衍型的详述的新信息。

 

 约束

 

扩展了UML构造块的语义,可以用来增加新的规则或修改现有的规则。

标签:入门,事物,元素,衍型,diagram,-----,UML,模型
From: https://blog.51cto.com/u_15887056/5875164

相关文章

  • JVM笔记4-垃圾回收
    文章目录视频资源地址笔记资源地址我的笔记48-49.判断垃圾-引用计数50.可达分析51.可达分析-根对象视频资源地址B站https://www.bilibili.com/video/av7054......
  • cloud-consumer-order80 微服务消费者订单Module模块
    1、建cloud-provider-payment80012、改POM<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http:......
  • 3.单节点高可用-windows篇bat脚本实践版本
    问题与背景在实际的部署过程中,尤其是需要跟anaconda整合,遇到了bat脚本需要启动bat脚本的套娃操作,过程中遇到了单独启动bat脚本没问题,用bat启动bat就出问题的情况。最终发现......
  • anaconda环境迁移-1
    问题与背景anaconda开发好的程序,在简单的项目中,需要部署到服务器上(此处专门针对win系统)。这里就一定会有一个移植的问题,往往问题点会出在:环境是内网,没有外网;安装的环境不能......
  • 云原生学习笔记-1-docker
    一、基础环境说明1、操作系统:Centos7.6;1master;2node2、docker版本:docker-ce19.03.8-3二、docker安装1、使用阿里镜像仓库,mirror.aliyun.com#step1:安装必要的一些......
  • cloud-provider-payment8001 微服务提供者支付Module模块
    1、建cloud-provider-payment80012、改POM<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="ht......
  • CodeForces - 833B The Bakery
    看题解时全程:wow题意:给出n个数,将其按顺序分为k组,令每组的价值为该组不同的数的个数。求一种分法,使得所有组价值和最大。解:设dp[i][j]为将前j个数分为i组时的最大价值......
  • ls-remote --tags --heads git://github.com/adobe-webplatform/eve.git
    报错日志leepandar@localhostant-design-vue-jeecg%yarninstallyarninstallv1.22.19[1/4]......
  • Electron 打包 (electron-builder)
    本文只测试了Windows10下打包Windows基础安装包更多花哨的配置,请戳官方文档https://www.electron.build/​www.electron.build/构建基础项目,可以参考之前文章依赖安......
  • javascript - 练习题:事件练习 - 扫雷
    HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="w......