面向对象问题解决的核心是构建一个模型。该模型从其通常复杂的现实世界中抽象出基本问题的基本细节。几个建模工具被包裹在UML ™ 的标题下,代表统一建模语言™。本课程的目的是介绍UML的重要亮点。

UML的中心是我们在这里描述的九种建模图。

  • 用例图
  • 类图
  • 对象图
  • 序列图
  • 协作图
  • 状态图
  • 活动图
  • 组件图
  • 部署图

本课程的某些部分包含具有更详细信息的页面的链接。每个部分都有简短的问题。使用它们来测试您对本节主题的理解。

为什么UML很重要?

从建造业的角度来看,我们来看看这个问题。建筑师设计建筑。建筑商使用设计来创建建筑物。建筑越复杂,建筑师和建筑师之间的沟通越重要。蓝图是建筑师和建筑商必须学习的标准图形语言,作为其交易的一部分。

写作软件与建筑物不同。底层系统越复杂,每个参与创建和部署软件的人之间的沟通就越重要。在过去十年中,UML已经成为分析师,设计师和程序员的软件蓝图语言。它现在是软件贸易的一部分。UML让所有人从业务分析师到设计人员到程序员一个常见的词汇来谈论软件设计。

UML适用于面向对象的问题解决。任何有兴趣学习UML的人都必须熟悉面向对象问题解决的基本原则 - 这一切都是从构建模型开始的。甲模型是根本问题的抽象。该领域是问题来自的实际世界。

模型由通过发送彼此消息进行交互的对象组成。把一个对象看成是“活着的”。对象有他们知道的东西(属性)和他们可以做的事情(行为操作)。对象属性的值决定其状态

是对象的“蓝图”。类将属性(数据)和行为(方法或函数)包装到单个不同的实体中。对象是实例的类。

用例图

用例图从外部观察者的角度描述系统的作用。重点是什么样的系统呢,而不是如何。

用例图与情景密切相关。一个情景是当某人与系统进行交互时会发生的情况的示例。这是一个诊所的场景。

  • “病人呼叫诊所预约一年一次的检查,接待员找到预约书中最近的空时间段,并安排该时间段的约会。

一个 用例是单个任务或目标的场景概要。一个演员是谁或什么启动与该任务有关的事件。演员只是人或物体的角色。下面的图片是医疗诊所的预约用例。演员是病人。actor和用例之间的连接是通信关联简称为通信)。

隐藏图像

演员是棒人物。用例是椭圆形。通信是将演员与用例联系起来的线条。

用例图是一组actor,用例和通信。我们已经将“约会”作为四个演员和四个用例的图表的一部分。请注意,单个用例可以有多个actor。

隐藏图像

用例图在三个方面有所帮助。

类图

类图通过显示系统的类和它们之间的关系来概述系统。类图是静态的 - 它们显示出什么交互,但不会发生什么交互。

下面的类图从零售目录模拟客户订单。中央阶级是秩序。与此相关的是客户进行购买和付款。一个付款是三种:现金检查,或信用。该订单包含OrderDetails(行项目),每个都有其关联的项目

隐藏图像

UML类符号是一个矩形,分为三个部分:类名,属性和操作。抽象类的名称,如Payment以斜体表示。类之间的关系是连接链接。

我们的类图有三种关系。

协会有两方面。结束可能有一个角色名称来澄清协会的性质。例如, OrderDetail是每个订单的一个订单项。

一个 关联上的导航箭头显示可以遍历或查询关联的方向。一个的OrderDetail可以查询有关其项目周围,而不是其他方式。箭头还可以让您知道谁拥有该协会的实施; 在这种情况下, OrderDetail有一个项目。没有导航箭头的协会是双向的。

该 关联端的多重性是与另一端的单个实例相关联的类的可能实例的数量。倍数是单个数字或数字范围。在我们的示例中,每个订单只能有一个客户,但客户可以有任意数量的订单

这个表给出了最常见的多重性。

  • 多重 含义
    0..1 零或一个实例。符号n。。m表示nm个实例。
    0 .. *  或  * 对实例数量没有限制(包括无)。
    1 正是一个例子
    1 .. * 至少一个实例

每个类图都有类,关联和多重性。导航和角色是放置在图中以提供清晰度的可选项。

软件包和对象图

为了简化复杂的类图,您可以将类分组 。一个包是逻辑上相关的UML元素的集合。下面的图是一个业务模型,其中类被分组成包。

隐藏图像

软件包显示为顶部小标签的矩形。包名称在标签上或矩形内。虚线箭头是依赖关系。一个包装取决于另一个包装是否可能会在第一个更改中强制更改。

对象图显示实例而不是类。它们用于解释具有复杂关系的小件,特别是递归关系。

这个小类图显示,大学可以包含很多其他部门

隐藏图像

下面的对象图实例化了类图,用一个具体的例子代替了它。

隐藏图像

对象图中的每个矩形对应于单个实例。实例名称在UML图中加下划线。只要图意义仍然清晰,可以从对象图中省略类或实例名称。

序列图

类和对象图是静态模型视图。 互动图是动态的。他们描述对象如何协作。

一个 序列图是一个交互图,详细介绍了如何执行操作 - 发送什么消息以及什么时间。序列图按时间组织。随着时间的推移,您在页面下滑。根据参与消息序列的时间,从左到右列出了操作中涉及的对象。

以下是进行酒店预订的序列图。启动消息序列的对象是一个预留窗口

隐藏图像

预约窗口发送makeReservation()消息到HotelChain。所述HotelChain然后发送makeReservation()消息到饭店。如果酒店有空房,那么预订确认

每条垂直虚线都是a 生命线,表示对象存在的时间。每个箭头都是一个消息调用。箭头从发送者到顶部接收机生命线上消息的激活条。激活条表示消息的执行持续时间。

在我们的图表中,酒店发出一个自我呼叫以确定房间是否可用。如果是这样,酒店将创建一个预订确认。自我呼叫上的星号意味着迭代(以确保在酒店的每一天的可用空间)。方括号[]中的表达式是一个条件

该图有一个澄清 注意,这是一个狗耳朵的矩形内的文本。Notes可以放在任何一种UML图中。

协作图

协作图也是交互图。它们传达与序列图相同的信息,但它们专注于对象角色,而不是发送消息的时间。在序列图中,对象角色是顶点,消息是连接链接。

隐藏图像

对象角色矩形用类或对象名称(或两者)标记。类名前面是冒号(:)。

协作图中的每个消息都有一个 序列号。顶级消息编号为1.相同级别的消息(在相同呼叫期间发送)具有相同的十进制前缀,而后缀为1,2等,根据发生的时间。

状态图

对象有行为和状态。对象的状态取决于当前的活动或状态。一个状态图显示了对象的可能状态和导致状态改变的转换。

我们的示例图模拟了网上银行系统的登录部分。登录包括输入有效的社会保险号码和个人身份证号码,然后提交信息进行验证。

登录可以分为四个不重叠的状态:获取SSN获取PIN验证拒绝。从每个国家来的都是一套完整的确定后续状态的转换。

隐藏图像

国家是圆角矩形。过渡是从一个国家到另一个国家的箭头。触发过渡的事件或条件写在箭头旁边。我们的图有两个自我转换,一个是获取SSN,另一个在获取PIN

初始状态(黑色圆圈)是一个虚拟的开始动作。最终状态也是终止动作的虚拟状态。

由于事件或条件而发生的动作以表单/动作表示。当处于“ 验证”状态时,对象不会等待外部事件触发转换。相反,它执行一个活动。该活动的结果决定了其后续状态。

活动图

一个 活动图本质上是一个花哨的流程图。活动图和状态图与之相关。虽然状态图将焦点集中在正在进行过程(或作为对象的进程)上的对象上,活动图集中在单个进程中涉及的活动流。活动图显示了这些活动如何依赖于彼此。

对于我们的例子,我们使用了以下过程。

  • “通过ATM从银行帐户提款”。

活动的三个课程(人员等)是客户ATM银行。该过程从顶部的黑色起始圆开始,并在底部的同心白/黑停止圆处结束。活动是圆角矩形。

隐藏图像

活动图可以分为对象 决定哪个对象负责哪个活动的泳道。单身转换出来的每一项活动,将其连接到下一个活动。

过渡可能分支到两个或多个相互排斥的转换。保护表达式(在

[]内))
标记从分支出来的转换。一个分支及其后续合并标记分支的末端在图中显示为空心钻石。

过渡可能 进入两个或更多的并行活动。叉和随后从叉子出来的螺纹的连接在图中显示为实心条。

组件和部署图

组件是一个代码模块。组件图是类图的物理类型。部署图显示了软件和硬件的物理配置。

以下部署图显示了涉及房地产交易的软件和硬件组件之间的关系。

隐藏图像

物理硬件由节点组成。每个组件都属于一个节点。组件显示为在左上角有两个选项卡的矩形。

UML中的九种建模图相关推荐

  1. UML总结之九种模型图

                   UML视频中关于九种图的视频已经看完,在开始RUP的视频之前,我想先把这部分做个总结,或许是一个"归零"的过程,要不然这块的学习会乱到不可理的.   ...

  2. UML中的9种图例解析

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...

  3. 数据库中的九种数据库对象

    数据库中的九种数据库对象 数据库对象是数据库的组成部分,常见的有以下几种: 1.表(Table ) 数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的.列由同 ...

  4. (转,改)UML中的几种关系

    UML中定义的关系主要有6种: 依赖.关联.聚合.组合/合成.泛化.实现; 1.依赖关系:    含义:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被 ...

  5. Spring中的九种设计模式

    一. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. ...

  6. MyBatis 中的九种设计模式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://www.crazyant.net ...

  7. 最新公司法中的九种连带责任及解读

    连带责任一.公司股东滥用公司法人及股东有限责任而逃避债务,应当对公司债务承担连带责任. 法条解读:2014新<公司法>第二十条公司股东应当遵守法律.行政法规和公司章程,依法行使股东权利,不 ...

  8. (UML两个汇总)九种图。

    最后总结UML关系,有明确的关系,现在让我们总结一下UML九图..图往往比文字要直观,因此,当我们开发软件.文件必须是不可或缺的人物,. 以下我将这九种图分了一下: 我们还能够将这九种图分为静态图和动 ...

  9. UML总结---UML九种图关系说明

    UML中包括九种图:用例图.类图.对象图.状态图.时序图.协作图.活动图.组件图.配置图. 1)用例图(Use Case Diagram) 它是UML中最简单也是最复杂的一种图.说它简单是因为它采用了 ...

最新文章

  1. 函数式编程学习之路(三)
  2. cfiledialog指定位置和大小_位置度(True Position)中外解读2021(图文+视频)
  3. Angularjs基础(三)
  4. 30分钟学会使用grunt打包前端代码
  5. 收藏 | 深度学习调参有哪些技巧?
  6. [转]Redis内部数据结构详解-sds
  7. 幼儿园小班上计算机课 作业内容是手口一致,小班幼儿手口不能一致的点数怎么办...
  8. 如何设置 Windows 默认命令行窗口大小和缓冲区大小
  9. 水中浮力插件buoyancy_程序化河流后续——加入浮力系统
  10. 【火炉炼AI】深度学习006-移花接木-用Keras迁移学习提升性能
  11. ADO.NET入门教程(六) 谈谈Command对象与数据检索
  12. 这个录屏神器好用哭了!
  13. 如何成为一名数据分析师
  14. 计算机硬盘显示在右边,电脑中出现一个系统保留磁盘分区怎么解决
  15. 模块二、添加Customer 类
  16. 渲梦工厂V2.1.5.0简体中文官方版,作图快10倍~
  17. FOC控制中电流环带宽
  18. python 日程(待办事项) 提醒简单小程序——基于Timer和tkinter
  19. 织梦CMS的管理员密码加密方式
  20. php汉字转拼音库,汉字转拼音的PHP库

热门文章

  1. Python——二进制8位加法器(采用手算二进制加法的过程实现)(tkinter实现)【2021-07-08】
  2. 长USB线 CH340N 硬件调试——无法识别USB设备
  3. CentOS编译安装Qt(Qt可使用静态编译编译器)
  4. Android:销毁所有的Activity退出应用程序几种方式
  5. VLC一--零阶指数哥伦布码解码原理和实现
  6. 应届毕业生即将到来....程序员饭碗恐成难题
  7. 电压比较器采样电路调试
  8. 2022年最新吉林道路运输安全员模拟真题题库及答案
  9. 成都.NET俱乐部的第3次聚会^_^
  10. 第九章 java常用类