CSDN|程序猿都应学习的语言:看 25 张图学 UML
本文插图
作者 | 逸珺 责编 | 屠敏 来源 | 嵌入式客栈 作为程序猿都最好掌握的一门语言 , 那就是UML(Unified Modeling Language) , 统一建模语言(UML)是软件工程领域中一种通用的开发建模语言 , 旨在提供一种可视化系统设计的标准方法 。 是开发人员、系统设计人员交流的有效工具 。 今天来分享一下UML的一些体会 , 如有错误请帮忙指正 。
注:UML工具有很多 , 本文描述的基于Enterprise Architect 。
UML前世今生
UML时间进化线:
说到UML不得不提的三位大神 , Grady Booch、Jacobson、James Rumbaugh , 三位是UML的创始人 , 均为软件工程界的权威 , 除了著有多部软件工程方面的著作之外 , 在对象技术发展上也有诸多杰出贡献 , 其中包括Booch方法、对象建模技术(OMT)和Objectory(OOSE)过程 。 三人被合称为“UML三友” 。
面向对象编程方法以及描述符号进化历史:
本文插图
然后逐步发展到UML2.5标准 。
UML目前的官方组织是https://www.uml.org/
宏观看UML UML用图去描述一个软件系统 , 从需求、设计、到部署的方方面面都以及覆盖 。 那么从总体上先来看看UML有哪些图呢?
从描述系统建模目的 , UML图可以分成下面4大类:
本文插图
从建模的动态视角/静态视角 , 可以这样去分类:
微观看UML UML由基本的组成可以从三大块去了解:事物/关系/图
- 构件事物:UML模型的静态部分 , 描述概念或物理元素
- 类:具有相同属性相同操作 相同关系相同语义的对象的描述
- 接口:描述元素的外部可见行为 , 即服务集合的定义说明
- 协作 描述了事物间的相互作用的集合
- 用例:代表一个系统或系统的一部分行为 , 是一组动作序列的集合
- 构件:系统中物理存在 , 可替换的部件
- 节点:运行时存在的物理元素
- 另外 , 参与者、信号应用、文档库、页表等都是上述基本事物的变体
- 行为事物:UML模型图的动态部分 , 描述跨越空间和时间的行为
- 状态机:描述事物或交互在生命周期内响应事件所经历的状态序列
- 交互:实现某功能的一组构件事物之间的消息的集合 , 涉及消息、动作序列、链接
- 分组事物:UML模型图的组织部分 , 描述事物的组织结构
- 注释事物:UML模型的解释部分 , 用来对模型中的元素进行说明 , 解释
- 实现(realization)是类元之间的语义关系 , 其中的一个类元指定了由另一个类元保证执行的契约
- 泛化(generalization)是一种特殊/一般的关系 。 也可以看作是常说的继承关系
- 关联(association)是一种结构关系 , 它指明一个事物的对象与另一个事物的对象间的联系
- 依赖(dependency)是两个事物之间的语义关系 , 其中一个事物(独立事物)发生变化 , 会影响到另一个事物(依赖事物)的语义