软件设计师-UML基础教程

场景

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

UML概述

UML简介

UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。

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

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

(1) UML语义:

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

(2) UML表示法:

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

提供了标准。

UML模型图的构成

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

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

图(Diagrams ):图是事物和关系的可视化表示

UML事物

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

构件事物:

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

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

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

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

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

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

节点:运行时存在的物理元素

另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体

行为事物:

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

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

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

分组事物:

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

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

注释事物:

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

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

UML关系

依赖

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

会影响到另一个事物(依赖事物)的语义

关联

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

泛化

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

实现

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

注:

博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客

UML图及特征

用例图(Use Case Diagram)

用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,

用例是系统中的一个功能单元

用例图中的事物及解释

 事物名称 解释 UML表示
 参与者(Actor) 在系统外部与系统直接交互的人或事物(如另一个计算
机系统或一些可运行的进程)。我们需要注意的是:
1.参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
2.参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
3.在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。
 
 用例(Use Case) 系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达 。 

用例图中的关系和解释

类图(Class Diagram)

类图描述系统中类的静态结构。

不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)

类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联 

类图中的事物及解释

1、类

从上到下分为三部分,分别是类名、属性和操作。类名是必须有的

类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等

类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、

参数缺省值和操作的返回值的类型等

2、接口

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

3、抽象类

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

4、模板类

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

类图中的关系及解释

1、关联关系

描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。

也有两种语义较强,分别是聚合与组合

聚合关系

特殊关联关系,指明一个聚集(整体)和组成部分之间的关系

组合关系

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

2、泛化关系

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

3、实现关系

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

类Circle、Rectangle实现了接口Shape的操作

4、依赖关系

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

对象图(Object Diagram)

对象图是类图的实例,几乎使用与类图完全相同的标识。

他们的不同点在于对象图显示类的多个对象实例,而不是实际的类

顺序图(Sequence Diagram)

顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互  

顺序图的一个用途是用来表示用例中的行为顺序。

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

顺序图中的事物和解释

顺序图与用例图和类图的关系

协作图(Collaboration Diagram)

协作图描述对象间的协作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。

除显示信息交换外,协作图还显示对象以及它们之间的关系.

协作图的一个用途是表示一个类操作的实现

协作图中的事物和解释

协作图中的关系及解释

1、链接

用线条来表示链接,链接表示两个对象共享一个消息,位于对象之间或参与者与对象之间

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

协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同。

顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。

协作图清楚地表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。

协作图和顺序图可以相互转化

状态图(State Chart Diagram)

状态图是一个类对象所可能经历的所有历程的模型图。

状态图由对象的各个状态和连接这些状态的转换组成

状态图用于揭示Actor、类、子系统和组件的复杂特性,为实时系统建模。

状态图中的事物及解释

活动图(Activity Diagram)

活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动

活动图描述了一组顺序的或并发的活动

活动图事物及解释

活动图关系

构件图(Component Diagram)

构件图为系统的构件建模型,构件即构造应用的软件单元

还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响

构件图中的事物及解释

构件图中的关系及解释

部署图(Deployment Diagram)

部署视图描述位于节点实例上的运行构件实例的安排。

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

这个视图允许评估分配结果和资源分配

部署图中的事物及解释

部署图中的关系和解释

UML语法描述

UML全部图之间的关系


 


 


 


 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CVPR2021】MVDNet论文阅读分析与总结

Challenge: 现有的目标检测器主要融合激光雷达和相机,通常提供丰富和冗余的视觉信息 利用最先进的成像雷达,其分辨率比RadarNet和LiRaNet中使用的分辨率要细得多,提出了一种有效的深度后期融合方法来结合雷达和激光雷达信号。 MV…

输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)

效果视频:输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)_哔哩哔哩_bilibili 1.数据 仿真平台 仿真模型分别获取单相接地故障、两相接地故障、两相间短路故障、三相接地故障、…

2023年浦东新区数字化安全风险智慧管控技能比武初赛-技能题一

目录 二、技能题 2.1 MD5===MD5 三、业*&&&务**&&联&&&*&&系 二、技能题 2.1 MD5===MD5

线性代数的本质(九)——二次型与合同

文章目录 二次型与合同二次型与标准型二次型的分类度量矩阵与合同 二次型与合同 二次型与标准型 Grant:二次型研究的是二次曲面在不同基下的坐标变换 由解析几何的知识,我们了解到二次函数的一次项和常数项只是对函数图像进行平移,并不会改变…

day40 设计模式、jdk8新特性

一、代理模式 为其他对象提供一种代理控制此对象的访问 若一个对象不适合直接引用另一个对象, 代理对象在客户端和目标对象之间起到中介作用 组成: 抽象角色:通过接口 抽象类 真实角色实现了哪些方法 代理角色:实现抽象角色…

k8s集群中部署服务之部署描述文件准备

微服务部署描述文件Deploy.yaml 一、各微服务创建部署描述文件 1.1 mall-auth-server --- apiVersion: apps/v1 kind: Deployment metadata:name: mall-auth-servernamespace: sangomalllabels:app: mall-auth-server spec:replicas: 1selector:matchLabels:app: mall-auth-s…

Python用若干列的数据多条件筛选、去除Excel数据并批量绘制直方图

本文介绍基于Python,读取Excel数据,以一列数据的值为标准,对这一列数据处于指定范围的所有行,再用其他几列数据数值,加以筛选与剔除;同时,对筛选与剔除前、后的数据分别绘制若干直方图&#xff…

设置伙伴(buddy)-给窗口控件增加快捷键

在官方教程或者很多qt程序中经常看到能使用全键盘操作软件,那么QT creator也支持了这一特性,就是使用设置伙伴来实现的。 我们可以在设计界面按照如下几步实现: 先放置label 再放置一个lineEdit控件。 这个时候我们就可以开始伙伴绑定的步骤…

JVM 虚拟机 ----> Java 类加载机制

文章目录 JVM 虚拟机 ----> Java 类加载机制一、概述二、类的生命周期1、类加载过程(Loading)(1)加载(2)验证(3)准备(4)解析(5)初始…

Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理

文章目录 PreJunit4 / Junit5 / Spring Boot / IDEAIDEA版本Spring-Boot-Older-Release-NotesSpringBootTest 起源 & Spring-Boot-1.4-Release-Notes2.0.0.RELEASE ----- 2.0.9.RELEASE2.1.0.RELEASE ----- 2.1.18.RELEASE2.2.0.RELEASE ~ 2.2.13.RELEASE2.3.0.RELEASE ~ 2…

Docker概念通讲

目录 什么是Docker? Docker的应用场景有哪些? Docker的优点有哪些? Docker与虚拟机的区别是什么? Docker的三大核心是什么? 如何快速安装Docker? 如何修改Docker的存储位置? Docker镜像常…

ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小

文章目录 前言板子名称uboot Modelkernel 欢迎词、主机名 开机 logoLCD 控制台console 免登录命令提示符文件系统大小 前言 经过前面十篇文章的介绍,硬件部分调试基本完毕,接下来的文章开始介绍软件的个性化开发。 板子名称 uboot Model 既然是自己的…

ueditor百度富文本编辑器粘贴后html丢失class和style样式

问题 项目经理从123在线编辑上排版好的文章,粘贴到项目的编辑器上,样式完全乱了, 排版是这样的: 复制到ueditor后的格式: 这天差地别呀,于是打开代码模式,发现section的属性全没了 但是,sp…

macOS 12 Monterey:一次全新的跨设备协作体验

macOS 12 Monterey是苹果公司的一次重大突破,它打破了设备间的壁垒,将不同设备无缝地连接在一起,极大地提升了用户的工作效率和娱乐体验。Monterey带来了通用控制、AirPlay、捷径等新功能,以及一些实用的新小功能。 安装&#xf…

vue前后端分离单点登录,结合长token和短token进行登录

单点登录背景 在公司发展初期,公司拥有的系统不多,通常一个两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登陆,很方便,但是,随着企业的发展,用到的系统随之增加&#x…

软件设计模式系列之五——建造者模式

1 模式的定义 建造者模式是一种对象创建型设计模式,它将一个复杂对象的构建过程与其表示分离。这意味着你可以使用相同的构建过程来创建不同类型的对象,而不必关心每个对象的内部细节。这种模式适用于构建具有复杂配置的对象,例如具有多个可…

Linux:LVS (NAT群集搭建)

模拟环境 外网入口服务器 外网 192.168.8.88 内网ip 192.168.254.4 web1 服务器 ip 192.168.254.1 网关: 192.168.254.4 web2 服务器 ip 192.168.254.2 网关: 192.168.254.4 共享存储服务器 ip 192.168.254.3 介绍 访问 外网192.16…

Python编程指南:利用HTTP和HTTPS适配器实现智能路由

嗨,爬虫大佬们!今天我要为大家分享一篇关于如何利用HTTP和HTTPS适配器来实现智能路由的Python编程指南。在现代互联网应用中,路由功能起着至关重要的作用,而利用Python编程语言实现智能路由则可以为我们的应用带来更高的灵活性和性…

Window 平台开发基础(一)SDK

基本概念 什么是 SDK SDK 是软件开发工具包(Software Development Kit)的缩写。它是一个集成了软件开发所需工具、库文件、示例代码和文档等资源的软件包。 SDK 通常由软件开发公司或平台提供,旨在帮助开发人员构建、测试和部署特定类型的…

IAM、EIAM、CIAM、RAM、IDaaS 都是什么?

后端程序员在做 ToB 产品或者后台系统时,都不可避免的会遇到账号系统、登录系统、权限系统、日志系统等这些核心功能。这些功能一般都是以 SSO 系统、RBAC 权限管理系统等方式命名,但这些系统合起来有一个专有名词:IAM。 IAM IAM 是 Identi…