UML统一建模语言

UML包含3种构造块:事物、关系、图。

  • 事物:模型中代表性成分的抽象
  • 关系:把事物结合在一起
  • 图:聚集了相关的事物

事物

结构事务:模型的静态部分,包括类、接口、协作、用例、主动类、构件、制品、结点
行为事物:模型的动态部分,包括交互、状态、活动
分组事物:模型的组织部分,包括包
注释事物:模型的解释部分

关系

依赖:A变化会影响B
关联:描述了一组链,链是对象之间的连接。两个类之间可以有多个不同角色标识的关联。

  • 聚集:部分和整体生命周期不一致。整体消失了,部分仍然存在
  • 组合:部分和整体生命周期一致。整体消失了,部分也要消失

泛化:子元素共享父元素的结构和行为,父类泛化子类,子类继承父类
实现:一个类元指定由另一个类元保证执行的契约
关联的多重度:一个类的实例能够与另一个类的多少个实例相关联

  • 静态建模:类图、对象图、用例图
  • 动态建模:序列图、通信图、状态图、活动图
  • 物理建模:构件图、部署图

序列图、通信图被称为交互图。
类图:一组对象、接口、协作和它们之间的关系
用例图:一组用例、参与者已经它们之间的关系
对象图:某一时刻一组对象以及它们之间的关系
序列图(顺序图):以时间顺序组织对象之间的交互活动

类图

描述一组对象、接口、协作和它们之间的关系。
类图包括:

  • 接口
  • 协作
  • 依赖、泛化和关联关系

类中权限修饰符包括:

  • +:public公有的
  • -:private私有的
  • #:protected受保护的
  • ~:package包的


类图用于对系统的静态设计视图建模,支持系统的功能需求。以下三种方式使用类图:

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

对象图

展示某一时刻一组对象以及它们之间的关系。
给出系统的静态设计视图和静态进程视图。
描述对象的静态快照。对象是类图中所建立事物的实例。
对象图包括对象和链。

用例图

用例图用于对系统的静态用例视图建模,支持系统的行为。两种使用方式:

  • 对系统的语境建模
  • 对系统的需求建模

展现一组用例、参与者以及它们之间的关系。
参与者:系统交互的外部实体,包括使用者、与系统交互的外部系统、基础设备。
用例:一个类,代表一类功能而不是使用该功能的某一具体实例。
关联:参与者和参与者之间。
包含、扩展:用例和用例之间。
扩展:一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例。
泛化:子类继承父类,父类泛化子类。

交互图

对系统的动态方面建模。
有一组对象和它们之间的关系组成,包含它们之间可能传递的消息。
表现为序列图、通信图、交互概览图和计时图

  • 序列图:强调消息时间顺序
  • 通信图:强调接收和发送消息的对象的结构组织

一般包含对象、链和消息

序列(顺序)图

强调对象之间信息的时间顺序,用于展示系统中一个用例和多个对象的行为。
是场景的图形化表示,描述以时间顺序组织的对象之间的交互活动。

  • 参加交互的对象放在图的上方,水平排列
  • 通常,发起交互的对象放在左边,下级对象依次放在右边
  • 1.2.1:create():发送消息调用SR的create()方法,该方法须在SR中实现。

序列图有对象生命线:垂直的虚线,表示对象在一段时间内存在。
序列图有控制焦点:瘦高的矩形,表示一个对象执行一个动作所经历的时间段。

通信(协作)图

强调收发消息的对象的结构组织。展现对象之间的消息流及其顺序。

  • 通信图有路径:链的末端附上一个路径构造型。
  • 通信图有顺序号:消息前加数字前缀。

序列图和通信图是同构的,可以相互转换。
image.png

状态图

展现一个状态机:由状态、转换、事件和活动组成。
关注系统的动态视图。对反应型对象建模。描述一个对象在多个用例之间的行为。
状态:系统的行为模式,规定系统对事件的响应方式。

  • 响应包括:做动作、改变状态

状态图定义的状态有:初态、终态、中间状态

  • 初态:·黑圆点
  • 终态:黑圆点外加一个圆,可以没有,也可以有多个。
  • 状态:圆角四边形,必有状态名,可选状态变量、可选活动。

状态中活动表的语法格式:事件名(参数表)/动作表达式
事件:引起系统做动作或转换状态的控制信息:事件(监护信息)/动作

  • 事件触发转换(迁移)
  • 如果没有事件名,则会自动触发转换。
  • 转换包括两个状态:源状态、目标状态。

动作可以在状态内执行,也可以在状态转换时执行。
三种标准事件:entryexitdo

  • entry:进入状态,立即执行
  • exit:退出状态、立即执行
  • do:内部活动、占有限时间、可以中断

活动图

特殊的状态图:展示系统内从一个活动到另一个活动的流程。
专注于系统的动态视图,强调对象间的控制流程。
包括:活动状态、动作状态、转换、对象。
常用方式:

  • 对操作流建模
  • 对操作建模

构件图


展现了一组构件之间的组织和依赖。
构件图专注于系统的静态实现视图。
将构件映射为一个或多个类、接口和协作。
image.png

部署图

面向对象系统的物理方面建模,展现制品的配置。
对静态部署视图建模,与构件图相关。
展现系统的软件和硬件的关系,在实施阶段使用。

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

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

相关文章

C#实现观察者模式

观察者模式是一种软件设计模式,当一个对象的状态发生变化时,其所有依赖者都会自动得到通知。 观察者模式也被称为“发布-订阅”模式,它定义了对象之间的一对多的依赖性,当一个对象状态改变时,所有依赖于它的对象都会得…

性能分析工具的使用

文章目录 1. 数据库服务器调优的步骤2. 查看系统性能参数3. 统计SQL的查询成本:last_query_cost4. 定位执行慢的SQL:慢查询日志4.1 开启slow_query_log4.2 修改long_query_time阈值4.3 查看慢查询数目4.4 慢查询日志分析工具:mysqldumpslow 5…

【项目设计】网络版五子棋游戏

文章目录 一、项目介绍1. 项目简介2. 开发环境3. 核心技术4. 开发阶段 二、环境搭建1. 安装 wget 工具2. 更换 yum 源3. 安装 lrzsz 传输工具4. 安装⾼版本 gcc/g 编译器5. 安装 gdb 调试器6. 安装分布式版本控制工具 git7. 安装 cmake8. 安装 boost 库9. 安装 Jsoncpp 库10. 安…

Lesson 03 C/C++内存管理

C:渴望力量吗,少年? 文章目录 一、C内存管理方式1. new/delete操作内置类型2. new和delete操作自定义类型 二、operator new与operator delete函数三、new和delete的实现原理1. 内置类型2. 自定义类型 四、内存泄漏1. 什么是内存泄漏2. 内存泄…

Python的数据分析包Pandas?示例文章完成版来啦~

文章目录 前言一、Pandas简介二、Python Pandas的使用 总结 前言 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源…

设计模式-行为型模式-责任链模式

一、什么是责任链模式 责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Vue 路由缓存 防止路由切换数据丢失 路由的生命周期

在切换路由的时候&#xff0c;如果写好了一丢数据在去切换路由在回到写好的数据的路由去将会丢失&#xff0c;这时可以使用路由缓存技术进行保存&#xff0c;这样两个界面来回换数据也不会丢失 在 < router-view >展示的内容都不会被销毁&#xff0c;路由来回切换数据也…

wpf devexpress Property Grid创建属性定义

WPF Property Grid控件使用属性定义定义如何做和显示 本教程示范如何绑定WP Property Grid控件到数据和创建属性定义。 执行如下步骤 第一步-创建属性定义 添加PropertyGridControl组件到项目。 打开工具箱在vs&#xff0c;定位到DX.23.1: Data 面板&#xff0c;选择Prope…

sqli-labs关卡18(基于http头部报错盲注)通关思路

文章目录 前言一、靶场通关需要了解的知识点1、什么是http请求头2、为什么http头部可以进行注入 二、靶场第十八关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做…

在做题中学习(30):字符串相加

思路&#xff1a; 相加时要转换成对应的数字&#xff0c;所以让字符数字-0 如‘9’-‘0’&#xff08;ASCII&#xff09;57-489 9110&#xff0c;会进1&#xff0c;把进位保存起来&#xff0c;只取0头插到新串里。 头插时要转换对应字符数字&#xff0c;所以让对应的数字‘…

freetype将字符串制作成位图并显示过程详解

在流媒体项目中字幕显示是不可或缺的一环&#xff0c;一般会有字幕流在视频播放过程中进行显示&#xff1b;不过还有很多情况是从头到尾只在视频的某个区域显示某些文字&#xff0c;例如某个电视台的log&#xff1b;这种也称为字幕&#xff0c;如果想要将这些字符串显示到视频&…

谈谈如何写作(二)

序言 没有什么比一套好理论更有用了。——库尔特勒温 谈谈如何写作系列今天进入第二篇&#xff0c;第一篇请速戳&#xff1a;谈谈如何写作&#xff08;一&#xff09; 今天&#xff0c;博主从如何写报告讲起。 Q&#xff1a;如何写报告 如何写报告呢&#xff1f; 当每位盆友接到…