软考中级软件设计师——UML(统一建模语言)篇

【软考笔记——软件设计师】(六) UML上午题总结 & UML 下午题试题三 强调时间顺序交互对象的关系。 @[toc] # UML 上午 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0d3c9fba95214b08889ffda5cf02d122.png) # UML事物 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c352eb3470ea4599be5962e241fc879f.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/2f3c4f74071741a1 阅读详情
AI摘要

本文围绕软考中级软件设计师涉及的UML展开。介绍了UML的构造块,包括事物(结构、行为、分组、注释事物)、关系及图。详细阐述了UML的13种图,如类图、用例图、序列图等,还说明了静态、动态、物理建模及交互图所包含的图类型。

        UML的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。

一、事物

UML 事物是模型中的基本元素,分为 结构事物、行为事物、分组事物、注释事物。

1. 结构事物

  • 类(Class):具有相同属性和方法的对象的抽象(如 Student 类)。

  • 接口(Interface):定义一组操作的契约(如 Payment 接口)。

  • 协作(Collaboration):一组对象及其交互,共同实现特定功能(如 订单处理 协作,包含订单、支付、库存等对象的交互)。

  • 用例(Use Case):系统功能的描述(如 用户登录 用例)。

  • 构件(Component):可重用的软件模块(如 .dll 文件)。

  • 制品(Artifact):物理文件或文档(如源代码文件 User.java、配置文件 config.xml)。

  • 节点(Node):物理设备或运行时资源(如 服务器)。

  • 主动类(Active Class):拥有独立线程的类(如 多线程控制器)。

                   

 

2. 行为事物

  • 交互(Interaction):对象间的消息传递(如方法调用)。

  • 状态机(State Machine):对象状态的变化(如订单状态从 待支付 到 已支付)。

  • 活动(Activity):流程中的步骤(如业务流程中的 审核 步骤)。

                

3. 分组事物

  • 包(Package):对模型元素的分组(如将 用户管理模块 放入一个包)。

                                                   

4. 注释事物

  • 注释(Note):对模型的解释性说明(如附加的文字描述)。

                                                    

 

二、 关系

UML 关系描述事物之间的关联方式。

关系类型描述及示例表示符号
关联(Association)对象间的结构关系,它描述了一组链,链是对象之间的连接。实线,可带箭头(导航方向)
依赖(Dependency)依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。虚线箭头(指向被依赖方)
泛化(Generalization)泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。空心三角箭头(指向父类)
实现(Realization)实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:一种是在接口和实现它们的类或构件之间:另一种是在用例和实现它们的协作之间。空心三角箭头 + 虚线(指向接口)
聚合(Aggregation)弱“整体-部分”关系(如 汽车 与 轮胎)空心菱形 + 实线(菱形在整体端)
组合(Composition)强“整体-部分”关系(如 公司 与 部门)实心菱形 + 实线(菱形在整体端)

 

注意:

聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在部分可以脱离整体存在。
组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体而存在。


三、UML 的图

UML 定义了 13 种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、组合结构图、部署图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。

1. 类图(Class Diagram)

     类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系。 类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。      

        核心元素:

  • 类:矩形框,分三栏(类名、属性、方法)。

  • 关系:关联(实线)、依赖(虚线箭头)、泛化(空心三角箭头)、实现(虚线空心三角箭头)、聚合(空心菱形)、组合(实心菱形)。

                                                         

        当对系统的静态设计视图建模时,通常以下述3种方式之一使用类图:

  •  对系统的词汇建模。
  •  对简单的协作建模。
  •  对逻辑数据库模式建模。

2. 用例图(Use Case Diagram)

        用例图(Use Case Diagram)展现了一组用例、参与者(Actor)以及它们之间的关系。

核心元素:

  • 参与者:小人图标(如 用户、管理员)。

  • 用例:椭圆框(如 登录、支付)。

  • 关系:包含(<<include>>)、扩展(<<extend>>)、泛化。

注意:

  • 一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例。
  • 关联是参与者和用例之间的关系。
  • 包含是用例和用例之间的关系。
  • 扩展是用例和用例之间的关系。
  • 泛化是参与者和参与者之间的关系也是用例和用例之间的关系。

        当对系统的静态用例视图建模时,可以用下列两种方式来使用用例图:

        (1)对系统的语境建模。
        (2)对系统的需求建模。

3. 序列图(Sequence Diagram)

        序列图是场景(Scenario)的图形化表示,描述了以时间顺序组织的对象之间的交互活动。

        把参加交互的对象放在图的上方,沿水平方向排列。通常把发起交互的对象放在左边,下级对象依次放在右边。然后,把这些象发送和接收的消息沿垂直方向按时间顺序从上到下放置。   

核心元素:

  • 生命线(Lifeline):垂直虚线表示对象存活时间。

  • 消息(Message):箭头表示同步消息(实线箭头)、异步消息(虚线箭头)、返回消息(虚线返回箭头)。

  • 激活条(Activation Bar):矩形条表示对象执行操作的时间段。

        序列图有两个不同于通信图的特征:

  • 序列图有对象生命线。
  • 序列图有控制焦点。

4. 活动图(Activity Diagram)

        活动图是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。

核心元素:

  • 活动节点:圆角矩形表示具体操作

  • 决策节点:菱形

  • 分叉/汇合节点:粗线表示并行流程的开始与结束。

  • 泳道(Swimlane):纵向分区,区分不同角色或模块的责任。

        

        活动图一般包括活动状态和动作状态、转换和对象。

        活动图可以表示分支、合并、分岔和汇合。

        当对一个系统的动态方面建模时,通常有两种使用活动图的方式:

  • 对工作流建模
  • 对操作建模。

5. 状态图(State Machine Diagram)

        状态图展现了一个状态机,它由状态、转换、事件和活动组成。状态图关注系统的动态视图,对于接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序。

        状态是指对象的生命周期中某个条件或者状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果。

        嵌套在另外一个状态中的状态称为子状态,含有子状态的状态称为组合状态。

        转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界(监护)条件满足时进入目标状态。

        动作是一个可执行的原子操作,是不可中断的,其执行时间是可忽略不计的。     

        在状态转换图中定义的状态主要有:初态(即初始状态)终态(即最终状态)和中间状态初态用一个黑圆点表示,终态用黑圆点外加一个圆表示,状态图中的状态用一个圆角四边形表示(可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名称和值,这部分是可选的;下面部分是活动表这部分也是可选的),状态之间为状态转换,用一条带箭头的线表示。带箭头的线上的事件发生时,状态转换开始(有时也称之为转换“点火”或转换被“触发”)。一张状态图中只能有一个初态,而终态可以没有,也可以有多个。   

                        

状态中的活动表的语法格式如下:事件名(参数表)/动作表达式

三种标准事件:entry,exit,do
entry:入口动作,进入状态,立即执行

exit:出口动作,退出状态,立即执行

do:内部活动,占有有限时间,并可以中断的工作

        事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。

  •  转换包括两个状态。
  •  事件触发转换(迁移)。
  • 活动(动作)可以在状态内执行,也可以在状态转换(迁移)时执行。

时间(time)事件
        时间事件是指在绝对时间或在某个时间间隔内发生的事情所引起的事件。例如到达某一时间或经过了某一时间段。用关键字When 或After表示。

6. 构件图(Component Diagram)

        构件图展现了一组构件之间的组织和依赖。

核心元素:

  • 构件:矩形框左侧加两个小矩形(如 用户服务组件)。

  • 接口:空心圆(提供接口)、半圆(需求接口)。

  • 依赖关系:虚线箭头指向被依赖构件。

7. 部署图(Deployment Diagram)

        部署图是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。部署图对系统的静态部署视图进行建模,它与构件图相关。  

核心元素:

  • 节点(Node):立方体表示物理设备(如 Web服务器、数据库服务器)。

  • 构件实例:节点内部标注部署的构件(如 UserService 部署在 应用服务器)。

  • 通信路径:实线表示节点间的连接(如 TCP/IP 协议)。

        部署图展现了系统的软件和硬件之间的关系在实施阶段使用。

        

8.对象图(Object Diagram)

        对象图(Object Diagram)展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链。

        在对系统的静态设计视图或静态进程视图建模时,主要是使用对象图对对象结构进行建模。对象结构建模涉及在给定时刻抓取系统中对象的快照。对象图表示了交互图表示的动态场景的一个静态画面,可以使用对象图可视化、详述、构造和文档化系统中存在的实例以及它们之间的相互关系。

9.通信图(Communication Diagram)

        通信图强调收发消息的对象的结构组织,在早期的版本中也被称作协作图。通信图强调参加交互的对象的组织。产生一张通信图,首先要将参加交互的对象作为图的顶点,然后把连接这些对象的链表示为图的弧,最后用对象发送和收的消息来修饰这些链。

                                

        通信图有两个不同于序列图的特性:

  • 通信图有路径,需要显式地表示以下几种链的路径:local(局部)、parameter(参数)、global(全局)以及self(自身),但不必表示 association(关联)。
  • 通信图有顺序号。

        通信图展现了对象之间的小溪流及其顺序。

10.UML总和

  • 静态建模:类图、对象图、用例图
  • 动态建模:序列图(顺序图,时序图)、通信图(协作图)、状态图、活动图
  • 物理建模:构件图(组件图)、部图
  • 交互图:序列图(顺序图,时序图)、:通信图(协作图)

 

软考:软件设计师 — 11.UML 建模 计算机软考 — 软件设计师学习计划。 阅读详情

相关推荐

软考中级软件设计师--考试准备

准备参加软考–中级软件设计师,作为非计算机专业的前端开发,前期多准备一些是很有必要的。

mjzhang1993的博客 4639

什么是UML,UML类图

1.什么是UML?        UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。   UML的概念包括了UML语义(Semantics)和UML表示符(Notation)两个部分。UML语义定义了静态模型和动态模型。...

qq_40138785的博客 13万+

软考-软件设计师(UML习题)

软考-软件设计师(UML习题)

大学生小郑的博客 1328

UML学习入门就这一篇文章

1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。 你可能会问:这明明是一种图形,为什么说是语言呢?伟大的汉字还不是从图形(象形文字)开始的吗?语言是包括文字和图形的!其实有很多内容文字是无法表达的,你见过建筑设计图纸吗?里面还不是很多图形,光用文字能表达清楚建筑设计吗?在建筑界,...

weixin_33860553的博客 1万+

2024下半年软考中级《软件设计师》—— 基础篇

2024-08-21 09:00 ~ 2024-09-09 23:59(四川)

仁希的博客 3228

一个非计算机专业的 软考中级 软件设计师考试之路

今天是2018年7月6日 在半个小时之前我查看了2018 年上半年的软考成绩 通过成功软考中级软件设计师的考试 费用总结 备考资料 150 报名费 140 食宿费 200 总计 490 500 块钱+ 空闲时间备考== 软件设计师中级证书 其实还挺值! 总结一下我用到的几个工具 1,Evernote 2,Onedrive ...

一个非计算机专业的 博客 7898

论45天通过软考中级软件设计师

论45天通过软考中级软件设计师前言1.解答问题:2.备考经历:3.经验教训:4.感悟:需要资料的老铁们可以私聊我一下 前言 大家好,下面我来给大家介绍一下我的软件设计师备考经历emmm以及经验感悟 本来打算在闲鱼上卖一波… 文章分为解答问题,备考经历,经验教训,感悟四部分 1.解答问题: 首先回答一下大家考证之前的几个疑问: 1.这个证有没有用? 我的回答是:有点用 emmm不要喷我 目前总体...

qq_40472328的博客 3843

【软考】信息系统开发基础 - UML

一、UML入门介绍 1.1 UML是什么 关键字:可视化、图形化、建模语言 通用的、图形化、可视化的建模语言,统一或标准建模语言 (不是可视化的编程语言/程序设计语言) 支持模型化和软件开发的图形化语言 面向对象分析与设计的一种标准表示 用于对软件进行可视化描述 1.2 UML的特征 UML不是一种可视化的程序设计语言,而是一种可视化的建模语言。 UML不是过程也不是方法,但允许每一种过程和方法使用它。 简单、并且可扩展,不因扩展而修改核心 属于建模语言的规范说明,是面向对象分析与设计的一种标准表

奶爸的编程之路,也就一周冷个三天 969

软考中级-软件设计师 UML图详解( 类图,对象图,用例图,序列图,通信图,状态图,活动图,构件图,部署图)

软考中级-软件设计师 UML图详解( 类图,对象图,用例图,序列图,通信图,状态图,活动图,构件图,部署图)

Hanson的博客 4379

【软考】信息系统开发基础 - UML事物、用例图关系 和类图关系(类模型)详解

由参与者(Actor)、用例图(Use Case)、系统边界、箭头组成,用画图的方法来完成。用例描述用来详细描述用例图中每个用例,用文本文档来完成,以及由箭头所组成的所有关系包括泛化,包括,扩展等。

奶爸的编程之路,也就一周冷个三天 2297

软考中级-软件设计师 UML建模

软考中级-软件设计师 UML建模

片言可决讼,半纸能缚龙 1万+

软考中级软件设计师-【UML图】必考题完整汇总【6】

进入专栏可以看到软件设计师所有上午题的题型总结。

潜意识Java的博客 2194

软考中级_【软件设计师】知识点之【UML图】

UML(统一建模语言)由于其简单,通义又能够表达软件设计中的动态和静态信息。UML的词汇表包含了3中构造块:事物、关系、图。事物是对模型中最具有代表性的成分的抽象,关系把事务结合在一起,图聚集了相关的事务。

Varin 1629

【2026年】软考中级-软件设计师备考攻略

软考中级软件设计师考试是国家认可的职称评定考试,具有落户加分和能力证明等多重价值。考试分为基础知识(75道选择题)和应用技术(6道案例分析)两科,2024年起全面实行机考。备考建议分四轮:基础夯实(6周)、真题突破(4周)、全真模拟(3周)和冲刺复盘(1周)。重点掌握数据结构、算法、数据库设计、UML建模等核心内容。

silver-kite的博客 4969

逍遥模拟器改真机参数全指南:从ARM伪装到电池传感器模拟

本文提供逍遥模拟器深度伪装实战指南,重点讲解如何通过修改ARM架构、系统属性和模拟传感器数据,使其在硬件信息、电池状态等维度逼近真实设备,有效规避应用检测。文章详细介绍了使用Magisk模块、LSPosed框架进行设备指纹伪装和动态数据模拟的策略,帮助用户实现从静态信息到动态行为的全方位真机模拟。

weixin_29279101的博客 451

UWB灵犀遥控器方案介绍

UWB灵犀指向遥控器的技术原理和方案介绍

xiongdauwb的博客 3898

【愚公系列】软考中级-软件设计师 049-面向对象技术(UML)

UML(Unified Modeling Language)是一种用于软件系统设计的建模语言,它在面向对象技术中起着重要的作用。UML提供了一套丰富的图形符号和标记,用于描述软件系统的结构、行为和交互。常用的UML图包括类图、对象图、序列图、活动图、状态图等。在面向对象技术中,UML可以用来表示系统的静态结构,例如类的属性和方法、类之间的关系等。类图是最常用的UML图之一,用于表示类和类之间的关系,其中包括继承、关联、聚合、组合等。

愚公智库 8万+

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

软考中级-软件设计师-下午题【UML】

软考中级-软件设计师 下午题【UML】

goldfish8848的博客 1755

深入解析DMR协议中的4-CPFSK调制技术与实现

本文深入解析了DMR协议中采用的4-CPFSK调制技术。该技术凭借其连续相位、恒包络的特性,在有限的12.5kHz信道带宽内实现了稳健的通信,有效对抗干扰并提升功放效率,是DMR数字对讲机清晰、稳定通信的核心保障。文章详细阐述了其原理、实现细节及在协议栈中的协同作用。

weixin_29306875的博客 229

使用在UE5中使用AirSim插件Eigen库头文件引用报错,出现报错的解决方式

如图所示,用红线圈出的两条头文件引用会报错,提示无法找到他们,但是可以发现的是,他们的路径书写是没有问题的。在终端中运行时候,会出现如下的报错。

GFCLJY的博客 1006

【中级软件设计师】上午题08-UML(上):类图、对象图、用例图

(3)用例之间的扩展关系(<< extend>>)和包含关系(<< incude>>),参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。对象图(Obiect Diagram)展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例。泛化是一个类与它的一个或多个细化类之间的关系,也可以简单理解为一般与特殊的关系。关联是一种结构关系,它描述了一组链,链是对象之间的连接。

xzrrr的博客 1421

5分钟搞定三网话费余额查询:手把手教你用PHP+HTML搭建查询系统(含API调用避坑指南)

本文详细介绍了如何使用PHP+HTML快速搭建三网话费余额查询系统,涵盖API调用避坑指南、前端UI设计及性能优化。通过统一处理移动、电信、联通三大运营商接口差异,实现高可用查询功能,并提供安全防护与生产部署建议,帮助开发者高效构建稳定可靠的话费查询工具。

weixin_29016833的博客 259

软考中级-软件设计师 准备

软件设计师考试前期准备

Hanson的博客 2453

【漏洞复现】CVE-2024-44902 Thinkphp反序列化漏洞

Thinkphp v6.1.3至v8.0.4版本中存在反序列化漏洞,攻击者可利用此漏洞执行任意代码。

渗透之路,攻防之间皆学问 6706

习题加餐4. 冒险者工会

这个问题通过贪心算法解决,展示了贪心算法在解决一些优化问题中的强大能力。关键在于如何识别贪心选择的性质,并通过数学证明确保这种方法能够达到全局最优解。通过对问题的深入理解和逻辑推理,我们可以设计出有效的算法来解决问题,同时也需要注意代码实现中的细节,如排序和双指针的使用,以确保算法的效率和正确性。贪心算法的应用这个问题展示了贪心算法在实际问题中的应用。贪心算法通过在每一步选择当前最优的解决方案,期望最终达到全局最优解。该问题中,每次选择能力最接近但足以完成最难任务的冒险者,就是贪心选择的体现。

tang7mj的博客 1349
上一篇: 深入解析MapReduce:大数据处理的经典范式
下一篇: 大数据处理利器:Hadoop 入门指南
widder_
博客等级 码龄4年 243粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值