UML中的状态图、交互图、类图

本文介绍了UML中的状态图与交互图的基本概念及其应用场景。状态图用于描述对象在生命周期中的状态变化,交互图则关注对象间的交互过程。此外,还探讨了类图的构成及类间关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.状态图

    UML中状态图侧重于描述某个对象在生命周期中的状态变化,包括对象在各个不同的状态间的跳转以及触发这些跳转的外部事件。状态图的组成元素包括状态、事件、转换、活动、动作。在实际的项目中,并不是所有的系统都必须要创建状态图,一般只对复杂的对象使用状态图。状态图中的状态转移可以由三部分组成:事件[条件]/动作

    事件导致对象从一个状态变换到另一个状态,但有时也没有事件而自动发生对象的状态转移,这时对象可能在一个状态下完成某些活动后自动转移到其他状态。上面蓝色的括号中的条件是控制转移发生的条件,如:借书[证件有效]/出库。

    活动图和状态图的区别:在分析用例、理解业务流程时、处理多线程应用等情况下,一般使用活动图;活动图描述的是从活动到活动的控制流。在描述一个对象在生命周期中的状态变化时,使用状态图;状态图描述的是某个对象的状态到状态之间的转移。

2.交互图     

    交互图用于系统的动态建模,它描述的是对象之间的交互过程。UML提供了另种交互图:一种是按时间顺序反映对象交互关系的顺序图(上篇文章已经介绍过);另一种是集中反映各个对象之间通信关系的合作图。

    交互图主要包括对象和消息两类元素,创建交互图的过程实际上就是向对象分配责任的过程。在顺序图中重点反映的是消息的时间顺序,而在合作图中,重点反映的是对象之间的关系。下面是Android多线程断点续传下载器中的UML协作图(合作图):

     如果已经绘制了对象之间的Link线,那么想要添加ForwardStimulus或ReverseStimulus的话,可以首先选中要添加的那个XXStimulus,然后单击已经绘制好的Link线,即可添加上。然后双击已经绘制的XXStimulus,即可在矩形框中添加相关说明信息或者调用信息。


3.类图

    类图描述系统的静态结构,表示系统中类与类之间的关系。类之间的关系有关联、聚合、组合、泛化等。类图中的类由一个矩形表示,该矩形被分为3个部分,最上面的是类名,中间部分是类的属性,最下面的部分是类的操作。类的命名最好是使用应用领域的术语,以便于开发人员与用户的理解和沟通。类的属性和操作是可以省略的。

    关联关系:类之间的一种连接联系,可以是双向的也可以是单向的。两个有关联的类之间可以相互发送消息。它用一根连接类的实线表示,如果是双向关联的话,两端是没有箭头的。如果关联是双向的,可以使用黑三角表示某一个关联的方向。如果一个关联需要记录一些信息,可以引入一个关联类来记录这些信息,关联类通过一根虚线与关联连接。

    聚合关系:表示类之间具有整体和部分的关系。如果一个整体不存在或者被撤销了,它的部分还在,这种聚合用空心菱形表示。


    组合关系:也是一种整体和部分的关系。如果整体不存在了,部分也要随之消失。它用实心菱形表示。

     泛化关系:是一般与特殊的关系,也叫做继承关系。子类除具有父类的属性和操作外,还可以有一些自己特殊的属性和操作。








    









目录: 第一部分 基础知识 第1章 UML简介 3 1.1 在纷繁复杂中寻求解决问题的办法 3 1.2 UML的诞生 4 1.3 UML的组成 5 1.3.1 5 1.3.2 对象 6 1.3.3 用例 7 1.3.4 状态图 7 1.3.5 顺序 8 1.3.6 活动 9 1.3.7 协作 10 1.3.8 构件 11 1.3.9 部署 11 1.4 其他特征 12 1.4.1 注释 12 1.4.2 关键字和构造型 12 1.5 UML 2.0中的 13 1.5.1 组成结构 13 1.5.2 交互纵览 14 1.5.3 计时 15 1.5.4 有创新也有保留的包 15 1.6 为什么需要这么多种 16 1.7 这不仅仅是一系列 16 1.8 小结 17 1.9 常见问题解答 17 1.10 小测验和习题 18 1.10.1 小测验 18 1.10.2 习题 18 第2章 理解面向对象 20 2.1 无处不在的对象 20 2.2 一些面向对象的概念 22 2.2.1 抽象 22 2.2.2 继承 23 2.2.3 多态性 24 2.2.4 封装 24 2.2.5 消息传递 25 2.2.6 关联 26 2.2.7 聚集 27 2.3 意义 28 2.4 小结 29 2.5 常见问题解答 29 2.6 小测验和习题 30 第3章 运用面向对象 31 3.1 的可视化表示 31 3.2 属性 32 3.3 操作 33 3.4 属性、操作和可视化表达 34 3.5 职责和约束 35 3.6 附加注释 36 3.7 ——应该做什么和如何识别它们 37 3.8 小结 39 3.9 常见问题解答 39 3.10 小测验和习题 39 3.10.1 小测验 39 3.10.2 习题 40 第4章 关系 41 4.1 关联 41 4.1.1 关联上的约束 42 4.1.2 关联 43 4.1.3 链 43 4.2 多重性 43 4.3 限定关联 45 4.4 自身关联 45 4.5 继承和泛化 46 4.5.1 找出继承关系 47 4.5.2 抽象 48 4.6 依赖 48 4.7 和对象 49 4.8 小结 50 4.9 常见问题解答 51 4.10 小测验和习题 51 4.10.1 小测验 51 4.10.2 习题 51 第5章 聚集、组成、接口和实现 53 5.1 聚集 53 5.2 组成 54 5.3 组成结构 54 5.4 接口和实现 55 5.5 接口和端口 58 5.5.1 可见性 58 5.5.2 作用域 59 5.6 小结 59 5.7 常见问题解答 60 5.8 小测验和习题 60 5.8.1 小测验 60 5.8.2 习题 60 第6章 介绍用例 61 6.1 什么是用例 61 6.2 用例的重要性 62 6.3 举例:饮料销售机 62 6.3.1 用例“买饮料” 62 6.3.2 其他用例 63 6.4 包含用例 64 6.5 扩展用例 65 6.6 开始用例分析 66 6.7 小结 66 6.8 常见问题解答 66 6.9 小测验和习题 67 6.9.1 小测验 67 6.9.2 习题 67 第7章 用例 68 7.1 用例模型的表示法 68 7.1.1 回顾饮料销售机 69 7.1.2 跟踪场景中的步骤 69 7.2 用例之间关系的可视化表示 70 7.2.1 包含 70 7.2.2 扩展 71 7.2.3 泛化 72 7.2.4 分组 73 7.3 用例在分析过程中的作用 73 7.4 运用用例模型:举例 73 7.4.1 理解领域 73 7.4.2 理解用户 74 7.4.3 理解用例 75 7.4.4 进一步深入 76 7.5 “清查存货” 77 7.5.1 结构元素 77 7.5.2 关系 77 7.5.3 分组 78 7.5.4 注释 78 7.5.5 扩展 78 7.5.6 其他 78 7.6 UML“大” 78 7.7 小结 79 7.8 常见问题解答 79 7.9 小测验和习题 79 7.9.1 小测验 80 7.9.2 习题 80 第8章 状态图 81 8.1 什么是状态图 81 8.1.1 基本符号集 82 8.1.2 在状态图标中增加细节 82 8.1.3 增加转移的细节:事件和动作 83 8.1.4 增加转移的细节:保护条件 84 8.2 子状态 84 8.2.1 顺序子状态 84 8.2.2 并发子状态 85 8.3 历史状态 86 8.4 UML 2.0中的新变化 86 8.5 为什么状态图很重要 87 8.6 UML“大” 87 8.7 小结 88 8.8 常见问题解答 89 8.9 小测验和习题 89
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值