前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一篇文章学会统一建模语言UML

一篇文章学会统一建模语言UML

作者头像
wsuo
发布2020-12-29 10:33:49
1.1K0
发布2020-12-29 10:33:49
举报
文章被收录于专栏:技术进阶之路技术进阶之路
  • 简单消息:对于同步和异步无关紧要时使用;
  • 同步消息:当发送者发送一个消息同时接受者已经做好接收的准备时可以传送的消息,用实心箭头表头;
  • 异步消息:发送者不管接收者是否做好准备都可以传送的消息,用普通箭头表示;
  • 反身消息和返回消息:一个对象将消息发给他自己就是反身消息,返回消息表示消息的返回,用虚线箭头表示;

消息内容的格式为:

代码语言:javascript
复制
[序号][监护条件]*[重复次数][返回值表:=]操作名(参数表)

监护条件:用布尔表达式表示;

在系统动态行为建模的过程中,当强调按 时间 展开信息的传递时,一般使用顺序图建模技术。

下面是一个借阅图书的顺序图:

2.4、协作图(通信图)

协作图与顺序图几乎一致,二者可以互相转化。

构成协作图的图形元素有 3 种:

  • 对象
  • 链接
  • 消息

链接是两个对象之间的连接,表示协作图中对象间的连接在交互中所扮演的 角色

在链接的两端可以标明约束,主要有以下 3 种:

  1. 全局性:表明该角色是全局的;
  2. 局部性:表明该角色是一个操作中的局部变量;
  3. 参数性:表明该角色是一个操作中的参数。

我们将上面的借阅图书的顺序图例子用协作图表示如下:

2.5、用例图(需求建模)

用例图中有三种关系:

  • 泛化关系;
  • 包含关系;
  • 扩展关系;

泛化关系

子用例和父用例相似,类似于面向对象中的继承。

箭头由子用例指向父用例。

包含关系

基础用例 指向 包含用例 ,基础用例的执行必然会使用包含用例。

我们可以理解为包含用例封装了可以供很多个用例使用的功能。

箭头指向被包含的用例。

扩展关系

扩展用例 指向 基础用例 ,基础用例的执行可能会使用扩展用例。

在扩展关系中,基本用例是一个结构完整的用例,即可以独立存在。

箭头执行被扩展的用例。

用例描述

虽然用例图通过图形符号描述了参与者与系统之间的关系,但是对于细节有所欠缺,通常还需要以书面文档的形式对用例进行描述,每个用例应具有一个用例描述。

下面以归还图书用例为例,它的用例描述如下:

用例名称

ReturnBook

标识符

UC0002

用例描述

图书管理员代替借阅者办理还书手续

参与者

图书管理员

前置条件

图书管理员登录进入系统

后置条件

如果这个用例成功,删除相关的借阅记录

基本操作流程

1、图书管理员输入要归还的图书信息;2、系统验证图书信息的有效性;3、删除借阅记录。

可选操作流程

该借阅者有超期的借阅信息,进行超期处理;归还的图书不是本馆藏书,用例终止;

二、活用 UML

流程分析三剑客

活动图、状态机图、顺序图 是分析流程的三大利器。三种图有不同的特点和使用场景。

顺序图的特点:

  1. 强调角色之间的交互, 信息传递 很明确;
  2. 强调按 时间顺序 分别发生了什么事情;
  3. 不太适合表达复杂的流程(循环、分支);

活动图的特点:

  1. 强调每个 角色 都做了什么事情,这些事情的 先后 关系;
  2. 适合表达各种特殊流程,分支、并发

状态图的特点:

  1. 这件事情围绕某事物展开;
  2. 该事物有不同的状态,状态会因为发生了一些事情而变化;

实际工作中对于三者的取舍:

  1. 如果事情是围绕某个东西展开的,可以考虑使用 状态机图
  2. 如果事情不是围绕某东西展开的,可以考虑使用 顺序图 或者 活动图
  3. 如果没有复杂的特殊流程,可以考虑 顺序图
  4. 如果有复杂的特殊流程,可以考虑 活动图
  5. 优势可以同时使用两三种图,从多个角度进行分析。

系统设计

我们做系统分析,无论是否使用 UML 类图,其目的无非想表达以下内容:

  • 系统所涉及业务的静态概念及他们之间的关系(结构建模);
  • 系统所涉及业务的动态内容,一般就是各种业务流程(行为建模);
  • 我们希望这个系统能为用户做什么事情。

参考文献:

  • 《火球——UML大战需求分析》—— 中国水利水电出版社
  • 《UML实用基础教程》——北京大学出版社
  • 《UML面向对象分析与建模》——电子工业出版社
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、总览 UML
    • 1、结构型 UML
      • 1.1、类图(静态建模)
      • 1.2、对象图
      • 1.3、组件图(构件图)
      • 1.4、部署图
      • 1.5、包图
    • 2、行为型 UML
      • 2.1、状态图
      • 2.2、活动图
      • 2.3、顺序图(时序图)
      • 2.4、协作图(通信图)
      • 2.5、用例图(需求建模)
  • 二、活用 UML
    • 流程分析三剑客
      • 系统设计
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档