应用 UML 2 建模

UML2提供了两类(结构图和行为图)14种图形用于系统建模。

  • 结构模型

    • 类模型
      • 类图:类、接口以及它们之间的关系
      • 包图:包以及它们之间的依赖关系
      • 对象图:对象以及它们之间的链接关系
    • 构件模型
      • 构件图:构件以及之间的依赖关系
    • 组合结构模型
      • 组合结构图:系统某一部分(组合结构)的内部结构
    • 部署模型
      • 部署图:构件在节点上的部署情况
    • 外廓模型
      • 外廓图:外廓以及所包含构造型、标记值、约束和基类等
  • 行为模型

    • 活动模型
      • 活动图:动作及活动执行的控制流或数据流
    • 交互模型
      • 顺序图:对象间交互序列的执行顺序
      • 通信图:对象间的协作以及交互序列
      • 时间图:对象交互中真实的时间信息
      • 交互纵览图:多个交互之间的执行顺序
    • 状态机模型
      • 状态机图:对象所经历的状态迁移过程
    • 用例模型
      • 用例图:以外部用户视角描述系统能力

UML建模工具

  • IBM Rational Suite

    • Rational Rose 2003
      • 经典的UML建模工具,目前仍有广泛的应用
      • 不支持UML2.0
    • Rational Software Architecture
      • IBM兼并Rational之后,重新基于Eclipse平台构建的集成开发平台,提供从业务建模、需求分析、设计到系统实现的完整环境
    • IBM Rational Rhapsody
      • IBM兼并另一家UML建模工具后重新发布的产品
      • 主要用于嵌入式领域建模,涉及软硬件等各个层次的模型
  • Enterprise Architect

  • Sybase PowerDesigner

  • Microsoft Visio

  • 数以百计的各类共享/开源工具

示例:图书馆管理系统

  • 某图书馆管理系统
    • 是一个基于Web的计算机应用系统
    • 读者可以查询图书信息以及借阅信息
    • 读者可以通过系统预约所需的图书
    • 图书馆工作人员利用该系统完成读者的借书、还书业务
    • 图书馆工作人员可以对图书信息、读者信息等进行维护
    • 对于到期的图书,系统会自动向读者发送催还信息
    • 管理员会定期进行系统维护

1、用例图

  • 用例图(Use Case Diagram)是被称为参与者(Actor)的外部用户所能观察到的系统功能的模型图
    • 列出系统中的用例和参与者
    • 显示哪个参与者参与了哪个用例的执行
  • 核心概念
    • 用例:系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用
    • 参与者(Actor):通过系统边界与系统进行有意义交互的外部实体。
    • 泛化:参与者与参与者之间的关系。
    • 关联:用例与参与者之间的关系。
    • 扩展、包含、泛化:用例之间的关系。
  • 推荐使用场合
    • 业务建模、需求获取、定义

用例图元语

image-1673936552420

image-1673950192591

UC01:“借书”用例文档 用例名称:借书 用例标识:UC01 涉及的参与者:工作人员 涉及的用例:无 描述:工作人员利用该用例为读者完成借书过程 前置条件:工作人员必须登录到当前系统 涉众利益: 读者:能够方便的找到并借出所需的图书 工作人员:能够快速并准确的完成借书工作 基本事件流:工作人员帮助读者借阅图书 1.用例起始于读者带着所要借的图书来到借阅前台; 2.工作人员录入读者信息; 3.工作人员逐一录入所有的图书信息: *3.1 工作人员录入一本图书信息; *3.2 系统确认该读者可以借阅当前图书; 4.工作人员确认本次借阅信息; 5.系统记录本次借阅情况。 后置条件:系统将读者借阅信息正确地记录到数据库中 备选事件流 2a. 读者身份不合法 2b. 读者存在欠费信息,不允许借书 3.2a. 该读者不允许借阅当前图书

2、活动图

活动图(Activity Diagram)是一种动态行为图,将业务流程或其他计算的结构展示为内部一步步的控制流和数据流﹐主要用于描述某一方法﹑机制或用例的内部行为。活动图中的核心概念包括以下几个。

  • 活动﹑组合活动:表示某个内部的控制逻辑。
  • 对象、对象流:与活动相关的数据对象。
  • 转移、分支:控制活动之间的先后顺序。
  • 并发、同步:支持活动间的并发和同步。
  • 分区(泳道 ):描述活动的不同参与者。

活动图的推荐使用场合:包括业务建模、需求,类设计等场合。

image-1673950978061

image-1673951841786

3、类图、对象图、包图和组合结构图

  • 类图(Class Diagram) 是软件的蓝图,详细描述了系统内各个对象的相关的类,以及这些类之间的静态关系
  • 对象图(Object Diagram) 表示在某一时刻类的对象静态结构和行为
  • 包图(Package Diagram) 展现有模型本身分解而成的组织单元(包)以及它们的依赖关系
  • 组合结构图(Composite Structure Diagram) 描述系统中某一部分(组合结构)的内部结构,包括该部分与系统其它部分的交互点
  • 核心概念 类图:类、接口、依赖、关联、泛化、实现 对象图:对象、链接、多重性 包图:包(、框架、层、子系统) 、依赖 组合结构图:组合结构、部件、端口、协议
  • 推荐使用场合 系统静态结构建模的核心模型 业务建模、分析、设计、实现

3.1 类图、对象图、包图元语

image-1673952236189

3.2 组合结构图元语

image-1673952241966

3.3 包图展示系统分层结构

包图展示了软件系统的分层结构。在图书馆管理系统中,如下图左半部分所示,系统高层分为3层,其中界面层负责用户交互;数据访问层负责访问底层信息;业务逻辑层负责协调界面层和数据访问层间的访问逻辑。此外,对于数据访问层内部,又可以采用分包的方式进行逻辑划分,如下图右半部分所示,分为借阅包、读者包,图书包。

image-1673952504537

3.4 类图展示实体类的静态关系

下图所示的类图就展示了图书类(Book)、借阅信息类(BorrowInfo)、读者类(Reader)之间的静态关系。其中,图书分为不同的类别(Catalog),如科技书(TechBook)、文学书(LitBook),新书(NewBook),而读者分为学生(Student)和教职工(Faculty)。

image-1673952549642

3.5 对象图展示我当前借书情况

对象图则用于展示某一时刻对象之间的关系。下图所示的对象图展示了一名教职工(thbin)的个人借阅信息(myInfo),他一共借了4本书:一本新书(bookl) ,两本科技书( book2 , book3)和一本文学书(book4)。

image-1673952592839

3.6 组合结构图展示借书内部结构

作为一种新增图形,组合结构图主要反映的是系统某一部分内部结构的组成。为了完成系统所需的某些功能(如借书),需要几个类之间进行相互协作,而这几个类就构成了一个组合结构。为了完成借书的功能,这些类之间存在着一定的接口(组合结构图中称为端口)和连接,这些信息即可通过组合结构图来反映。下图展示了借书过程的组合结构图,为了完成借书的过程,在该图中需要设置借阅用户界面类(BorrowUI)、借阅控制类(BorrowCtrl)、借阅信息类(BorrowInfo)、读者类(Reader)和图书类(Book)。

image-1673952646992

4、顺序图

  • 顺序图(Sequence Diagram) 用于显示对象间的交互活动 关注对象之间消息传送的时间顺序
  • 核心概念 对象、生命线、执行发生、交互、消息 交互片段(Interaction Frame)(交互帧): UML2中的新增概念,用于封装交互图中的片段,并可对片段施加一定的操作(如选择、循环、并行等),从而使UML支持复杂的交互建模。
  • 推荐使用场合 用例分析、用例设计

image-1673960901157

“借书”的顺序图(UML1表示)

image-1674057498904

“借书”的顺序图(UML2表示)

image-1674057440681

在 UML1.x版本的顺序图,可以看到,其中的第⒉步“录入图书信息”是一个循环的过程,第2.1.1步存在一个选择(如果失败了该怎么做),而这些信息无法直接在图中描述(只能通过注解或标记的方式表示)。为此,UML2引入了交互片段的概念来解决这个问题,通过交互片段可以很方便地实施各种复杂的逻辑,(loop操作表示循环、alt操作表示选择)。

5、交互概览图

  • 交互纵览图(Interaction Overview Diagram) 活动图和顺序图的混合物 直观地表达一组相关顺序图之间的流转逻辑
  • 核心概念 交互帧 分支、转移
  • 推荐使用场合 用例分析、用例设计

交互纵览图元语

image-1674057700241

交互纵览图组织多个顺序图

image-1674057805620

6、通信图

通信图和顺序图是同构的(描述的能力相同,很多工具提供了自动相互转换功能),只是侧重点不同。

  • 通信图(Communication Diagram) UML 1.x中称为协作图(Collaboration Diagram) 表示一组对象间关系以及交互活动
  • 核心概念 对象、协作角色 协作、交互、消息
  • 推荐使用场合 用例分析、用例设计

通信图元语

image-1674057919324

“借书”用例实现的通信图

image-1674058086901

7、时间图

  • 时间图(Timing Diagram)
    • 一种交互图,展现消息跨越不同对象或角色的实际时间信息
      • 具体描述单个或多个对象状态变化的时间点以及维持特定状态的时间段
      • 顺序图是表示交互的主要手段,可以在顺序图中增加时间约束来表明对象状态变化的时间点以及维持特定状态的时间段
  • 核心概念
    • 时间约束、持续时间约束、生命线
    • 状态、条件、事件

时间图元语

image-1674058387787

“打电话”顺序图的时间约束

image-1674058516177

利用时间图描述时间约束

image-1674058442326

8、状态机图

  • 状态机图(State Machine Diagram) UML1.x为状态图(Statechart Diagram) 利用状态和事件描述对象本身的行为
  • 主要概念 状态、初态、终态、复合状态 事件、转移、动作 并发
  • 推荐使用场合 类设计

状态机图元语

image-1674058643865

“图书”类的状态机图

image-1674058699984

9、构件图

  • 构件图(Component Diagram) 封装类为构件 描述在系统实现环境中的软件构件和之间的关系
  • 主要概念 构件、工件、接口(所供接口、所需接口) 依赖、实现
  • 推荐使用场合 系统设计、实现、部署

构件图元语

image-1674058783681

构件图描述类的实现环境

image-1674058819178

构件图(UML2新特性)

image-1674058841108

10、部署图

  • 部署图(Deployment Diagram) 描述系统所需的硬件构件的物理部署
  • 主要概念 节点、构件、位置 连接、依赖
  • 推荐使用场合 系统设计、实施、部署

部署图元语

image-1674059324702

部署图描述系统部署情况

image-1674058936935

11、外廓图

查看详细