分享

轻松学习UML建模知识,学会更好的表达

 老码识途 2023-10-10 发布于广东

统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言,UML因其简单、统一的特点,而且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标准。在快速应用程序开发(RAD,Rap Application Development)中,逻辑视图是软件设计阶段的产物。本文主要讲解UML图中的类图,状态图,用例图(Use Case Diagram),时序图(Sequence Diagram)相关内容,如有不足之处,还请指正。

工具


在本篇文章中,使用到的工具,如下所示:

  1. XMind 一款非常实用的可视化思维导图软件,简单易用,功能强大。

  2. Star UML 是一种创建UML类图,是一种生成类图和其他类型的统一建模语言(UML)图表的工具。

涉及知识点


UML共有9种图:类图(Class diagram),对象图(Object diagram),用例图(Use case diagram),时序图(Sequence diagram),协作图(Collaboration diagram),状态图(Statechart diagram),活动图(Activity diagram),组件图(Component diagram),部署图(Deployment diagram)。本篇文章主要介绍,常用的4种图,如下所示:


  • 类图(Class Diagram)显示了一组类、接口、协作以及他们之间的关系,描述的是一种静态关系。

  • 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。

  • 用例图:由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。

  • 时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。

UML 4+1视图


UML语言是一种可视化的的面向对象建模语言,描述软件模型的静态结构、动态行为及模块组织与管理。

逻辑视图关注的静态元素是:层、子系统、类、接口,用类图来描述。关注的动态因素是协作关系,用时序图、协作图、状态图等来描述。是否需要在架构设计中体现类和类之间的关系?这取决于设计的层级。

开发视图(实现实体)关注的元素是程序包(SDK、解析器、中间件)、文件组织结构、编译依赖关系、目标单元(jar、exe、dll等)。它和逻辑视图的静态元素通常有映射关系。

运行视图(进程视图)关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。运行架构和开发架构的关系:开发架构一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题。

部署视图关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。部署视图和运行视图的关系:运行视图特别关注目标程序的动态执行情况,而部署视图重视目标程序的静态位置问题;部署视图还要考虑软件系统和包括硬件在内的整个IT系统之间是如何相互影响的。

类图Class diagram


UML类图6种关系如下图所示:

类图示例 如下图所示:

状态图 Statechart diagram


状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在于描述状态图的控制流。状态图的各个关系,如下图所示

状态图示例,如下图所示:

用例图 Use case diagram


用例图的几种关系,如下图所示

用例图示例

时序图 Statechart diagram


时序图如下图所示:

时序图示例如下

备注


UML是一种建模语言,并不是开发语言,但是通过建模软件,可以进行正向工程与逆向工程进行相互转换。虽然对于功能相对简单的系统需求,平时不用UML建模也能把功能需求了解说明清楚,但是功能稍微复杂的系统,则显得有些顾此失彼,此时工具的使用则可以提高工作的效率。

参考资料


[1] https://www.cnblogs.com/hsiang/p/9278597.html

[2] https://www.cnblogs.com/hsiang/p/9314124.html

学习编程,从关注【老码识途】开始!!!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多