基于 UML 的业务建模举例

2023-11-17

基于 UML 的业务建模
 

2011-05-30 作者:杨敏强 来源:网络

 

简介:

对于管理流程咨询项目、大型信息化建设项目和套装管理软件实施项目,对业务环境的分析和理解对项目的成功至关重要。系统、全面理解 IT 系统所处的业务环境,可以帮助 IT 系统能提供正确系统功能,并加速 IT 系统的部署和推广,从而实现 IT 和业务的一致性。统一建模语言(Unified Modeling Language, UML)作为完备的、标准化的建模语言,可应用于业务系统建模。

本文将基于一个技术评审管理流程范例来阐述如何利用 UML 进行业务建模,并介绍如何在大型业务建模项目中应用 IBM Rational 建模工具和团队协作工具。

概述

在当前,由于 IT 系统和业务之间的联系越来越密切,对业务进行系统、全面的理解和分析对 IT 系统需求定义和套装软件的部署以及信息化建设越来越重要。传统的业务分析方法更多基于文档或图形,不能对信息进行结构化抽取和组织,不便于发现业务系统中的问题,更不能快速重用于 IT 系统开发和实施环节,最后导致 IT 系统实现的功能并不能很好满足业务需求,或者花了大量精力输理的流程文档不能得以贯彻落实。

本文将介绍基于 UML 的业务建模方法,该方法通过规范化的图形化标记语言,从人员、信息、活动、流程等方面对业务系统进行全面的、结构化的抽象和描述。此外,本文还将介绍 Rational Software Architect 如何支持该业务建模方法,实现业务模型的有效组织,模型度量和报告生成,以及如何利用 Rational Team Concert 支持团队建模。该 UML 业务建模方法可应用于套装软件(如项目管理软件、企业资源规划软件)的实施、大型信息系统的需求调研以及管理流程再造项目。

UML 业务建模方法

UML 业务建模方法是指对业务系统从静态和动态两个方面进行抽象,并利用 UML 标记语言记录下来。根据业务系统的特点,UML 业务建模方法主要包括业务角色、业务实体、业务活动和业务流程等建模元素以及业务实体关系图、业务流程活动图和业务流程状态图等图形表示。

很多人认为建模就是画图,甚至认为业务流程梳理就是画流程图,这个观点是不正确的。建模的本质是通过抽象获得被建模对象的关键要素,然后基于特定的目的和视角利用图形把模型元素展示出来。图和建模元素之间是关联关系,而不是包含关系。下图描述了进行业务建模时的核心建模元素和图形。后续章节将详细介绍这些建模元素和图形。

图 1. 业务建模元素和图形

建模元素

任何业务系统都涉及人员、信息、活动和流程,与之对应业务系统建模要素是业务角色(Business Role)、业务实体(Business Entity)、业务活动(Business Activity)和业务流程(Business Process)。下表总结了业务建模元素的图示、定义和范例。

表 1. 业务建模元素

业务角色

在确定业务角色时,一种方法是业务角色直接对一个组织定义的岗位,该方法不足是当组织机构发生调整时,流程需要进行调整;另外一种方法是根据管理流程的本质来定义业务角色,该方法让流程定义能更好适应组织机构变化。我建议采取第二种思路来定义业务角色,下表描述了技术评审管理业务流程的业务角色。

表 2. 技术评审管理流程业务角色

业务实体

业务实体是业务角色在进行业务活动时使用或产生的事物,在表现形式上可以是一个文档,或者是一个物品的一部分。比如在技术评审管理流程中,评审申请人将提交评审申请材料,专家将对评审材料提出评审意见,因此我们可确定的业务实体是“评审申请”和“评审意见”。每个业务实体通常具有特定的属性,比如“评审申请”业务实体具有的属性包括:申请人、评审类型、评审材料等信息。
在进行业务流程梳理时,经常会忽视对业务实体的分析。要让业务流程落地,通常需要借助信息系统,而业务实体对信息系统的建设至关重要。业务实体分析的成果是逻辑数据模型,该模型将指导信息系统的建设以及不同信息系统的整合。
下表简要描述了技术评审管理流程中涉及的业务实体以及属性信息。

表 3. 技术评审管理流程业务实体

业务活动

业务活动是由特定业务角色进行的,并具有明确输入和输出的任务。为了描述的一致性和准确性,业务活动名称尽量采取动宾结构。比如技术评审管理流程所涉及的业务活动包括:起草评审申请、提交评审申请、初审评审申请等活动。

在经常业务流程梳理时,应该首先明确业务活动,然后再去画业务流程活动图,这样可以帮助发现冗余的业务活动和在不同业务流程中重用的业务活动。

表 4. 技术评审管理流程业务活动

业务流程

由一组业务角色通过完成一系列业务活动来操作业务实体,从而给外界提供有价值的、可感知的服务或成果。通常通过如下字段信息描述一个业务流程。

表 5. 技术评审管理流程描述

模型图示

为了能直观描述业务系统,可借助 UML 图来描述业务系统的静态和动态特性,提高流程的沟通效率。

业务实体关系图

业务实体关系图是通过 UML 类图(Class Diagram)来描述业务实体之间的相互关系。业务实体之间的常用关系包括包含关系、关联关系和泛华关系。对于技术评审管理流程,一个技术评审可能对应多个专家提的评审意见,因此“技术评审”业务实体和“评审意见”业务实体之间是包含关系。

图 2. 技术评审管理流程业务实体关系图

业务流程活动图

业务流程活动图采用 UML 的活动图(Activity Diagram)描述不同的业务角色如何进行特定业务活动来完成业务流程。为了业务流程活动图便于理解,该图中涉及的业务活动尽量不要超过 10 个。如果业务流程涉及的业务活动的确太多,可把相关的连续执行的业务活动封装成为一个业务活动,让业务流程活动图具有层次。下图描述了技术评审管理流程的活动图。

图 3. 技术评审管理流程活动图

业务流程状态图

为了对业务流程的执行进行跟踪、控制和统计分析,需要描述业务流程核心处理对象的状态图。业务流程跟踪是指能及时获得流程的处理阶段,业务流程控制是指只有完成特定的业务活动后,才能进行后续的业务活动,业务流程统计分析是指需要获得在不同阶段的业务实体的数量。状态图描述了业务对象的状态以及实现状态转换的动作。下图描述了技术评审管理流程的状态图,其中节点表示状态,通常采用副词,箭头表示动作,通常采用动词。比如对于处于“已提交”状态的技术评审,可通过“通过评审”动作转换到“已通过初审”状态。

图 4. 技术评审管理流程状态图

如何利用 IBM Rational 工具进行业务建模

对于简单的单一流程业务建模项目,利用 Microsoft PowerPoint 或 Visio 就可以应用 UML 业务建模方法完成业务梳理工作。但对于管理流程咨询项目、大型信息化建设项目和套装管理软件实施项目,由于涉及的业务角色、业务实体、业务活动以及业务流程多,为了保证业务模型的完备性和准确性,需要专业的 UML 建模工具来进行业务建模。此外,当业务建模项目由多个业务分析师共同完成时,如何合并建模成果以及进行团队协作是业务建模项目面临的重要挑战。

Rational Software Architect 是 Rational 的专业的 UML 建模工具,提供完备的 UML 建模功能以及模型分析功能;Rational Team Concert 是 Rational 新一代的版本管理和团队协作功能,可帮助管理多人进行的业务建模项目以及工作成果。

UML 建模工具 Rational Software Architect

Rational Software Architect 是 IBM Rational 新一代的 UML 建模工具,除提供标准的 UML 支持外,还提供了大量的扩展功能来实现 SOA 建模和部署建模等功能。与以前的 Rational Rose 相比,Rational Software Architect 提供了更好的易用性、继承性和扩展性。下图是 Rational Software Architect 的建模界面。

图 5. Rational Software Architect 建模界面

通过利用 Rational Software Architect 对业务系统进行建模,可实现模型分析功能,比如能获得特定业务角色所参加的所有业务流程,从而能快速进行业务角色、业务实体、业务活动以及业务流程之间的相关性分析。此外,Rational Software Architect 还提供自定义格式的报告生成功能,便于模型信息的发布和传播。下图是根据 Rational Software Architect 中的技术评审管理流程模型所生成的 PDF 格式的报告。

图 6. 利用 RSA 形成的 PDF 格式报告

团队建模管理工具 Rational Team Concert

对于一个复杂的业务建模项目,当需要多人共同参与时,可利用 Rational Team Concert 进行模型的集中管理和版本控制。同时 Rational Team Concert 还提供了模型的图形化比较和合并功能,确保多人进行的业务建模项目能顺利进行。下图是利用 Rational Team Concert 来比较模型文件的两个版本之间的差异。

图 7. 利用 Rational Team Concert 比较模型文件不同版本之间差异

总结

由于目前业务和 IT 的联系日益密切,业务分析对改善企业或组织的管理水平,有效地进行信息化非常重要,并催生了业务分析师(Business Analyst)这一新兴职业,并成立了业务分析师国际协会(International Institute of Business Analysis, IIBA, http://www.theiiba.org/)。基于 UML 的业务建模方法对业务进行结构化的抽象,并利用 UML 标记语言进行图形化展示,可确保对业务系统的全面、正确的理解,其成果并可被信息技术人员理解和重用。该方法已包含在业务分析知识体系(Business Analysis Body of Knowledge,BABOK)中,成为业务分析师的一个基本技能。对于大型的业务分析项目,Rational Software Architect 可帮助实现业务建模成果的模型化,而 Rational Team Concert 可有效管理多人参与的业务分析项目。


原文:http://www.uml.org.cn/oobject/201105301.asp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 UML 的业务建模举例 的相关文章

  • 子集约束在 UML 类图中意味着什么

    有subset在部门类和人员类之间 但我不知道比是什么意思 家庭作业机会 查看由子集约束链接的两个关系 每个部门有多名成员 每个部门设经理一名 子集表示这两者之间的约束 如果后一个关系的元素是第一个关系的子集 那么你会如何描述其含义 EDI
  • “包含”、“扩展”和“使用”之间有什么区别?

    在用例图中 两者有什么区别 lt
  • 在 Visual Studio 2017 中的类图中创建聚合和组合

    我正在考虑在 Visual Studio 中创建类图 我注意到工具箱似乎只允许类之间的关联关系 是否可以在类图中创建更强的关系 即聚合和组合关系 另外 是否可以从代码自动创建类图 好问题 首先 Visual Studio VS 类设计器不是
  • 用例之间的 UML 关系(扩展/包含)

    我不太理解以下主题 因为它与我读到的内容有点含糊 Inlcude就像对下一部分的引用一样 没有它 用例就不完整 这部分应该从更多地方引用 否则它的使用没有意义 但我见过一个例子 其中 include 仅在某些 IF 语句中为真 例如 添加新
  • 类图转换为关系模型;继承和匹配表

    对于一个学校项目 我应该设计上学期项目的系统 我们使用 UML 创建一个极其简单的用例图 没有 lt
  • 如何绘制java uml类图并在另一个类中创建枚举[重复]

    这个问题在这里已经有答案了 假设我有一个类名 A 在这个类中我定义了枚举 Bpublic enum B AA BB CC 现在我想画一个uml来体现这种关系 应该怎么做呢 在类类图中 表示使用 例如
  • 传统的基于代码的工程和模型驱动的工程方法有什么区别?

    我在文献中找到了这段话 但我不明白它的含义 设计实践正在从传统的基于代码的工程转向 在整个开发生命周期中进行严格的分工 模型驱动的工程方法 其中所有人员都参与设计 流程可以对模型有发言权 任何帮助将不胜感激 基于代码的工程意味着大部分工作是
  • 如何用UML表示通信协议?

    在我的 UML 模型中 我有一个系统及其相互通信的子组件 例如 我有一台计算机和一个遥控机器人 它们通过蓝牙进行通信 目前图中的流程类似于 计算机 触发 遥控车 的 setVelocity 函数 在这一点上 我想通过说以下的话来完善沟通 计
  • 将 StarUML 图转换为 Visio 绘图

    我有一个使用 Star Uml 创建的类图 但现在的要求是将其移植到 MS Visio 是否可以将 uml 移植到具有可用 xml 信息的 vsd 提前致谢 导出为 Windows 图元文件 WMF 和增强型 Windows 图元文件 EM
  • Android:从 Android Java 源代码创建 UML [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以从我的 Java Android 源代码自动创建 Uml 的程序 我测试过ArgoU
  • 如何在时序图上表示 if 条件 1 else if 条件 2?

    我想知道 如何在序列图上表示 if cond1 else if cond2 语句 if condition1 Do something else if condition2 Do something else if 我不确定是否有两个独立的
  • 在用例建模中分解 CRUD

    我有一个后续问题用例图中的 CRUD https stackoverflow com questions 7772399 crud in a use case diagram 如果我需要分解复杂的用例 例如 管理用户 假设这很复杂 可以将它
  • 用例 - 帮助 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是编写用例的新手 我听说用例是非技术表达 我有以下任务 我必须为其编写用例 我降低了对你理解的要求 ABC公司的注册客户使用凭据登录系统以检索
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • Android Studio 上的代码 Iris 插件

    我正在尝试使代码 iris 插件在 Android studio 上工作 我按右键单击 gt 创建代码虹膜图 然后我收到一条通知 表明我的图表已准备就绪 但我不知道该图何时存储 创建的文件的名称是什么以及如何打开它 有任何想法吗 CODE
  • 是否有适用于 Java 的 Harel Statechart DSL 工具?

    我正在寻找一种能够理解 DSL 的工具 在其中我可以定义生成 Java 代码的状态图 或者 DSL 中的状态图可以按原样运行 该工具最好用 Java 编写 并且必须根据 Harel 状态图 或等效的 UML 2 状态机 的定义支持超级状态和
  • UML:一对多关系表示?

    我是 UML 新手 还不太理解其表示法 这是我对图的理解 The system has many doctors Doctors can have many patients however patients can only have o
  • Eclipse Papyrus 上的 OCL 约束检查

    有人设法检查在 Eclipse Papyrus 中建模的类图上的 OCL 约束吗 我定义了一个简单的测试配置文件 对构造型属性只有一个约束 OCL self property gt 0 构造型扩展了 Property 元类 因此我将其应用于
  • 有什么好的+免费+轻量+Linux UML设计工具吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个UML设计工具 仅用于设计 不需要代码生成 主要特征 Free 对于Linux 便于使用
  • 系统间依赖关系的UML图

    哪种 UML 图最能显示我们的 IT 系统和其他外部 IT 系统之间的依赖关系 例如我想在图表上显示 系统A从系统B获取数据 系统B可以调用系统A的一些功能 我想知道组件图和序列图之间的关系 你怎么认为 你的问题不是很具体 因为所有 UML

随机推荐

  • Java中的函数使用

    Java中函数是一段可重复使用的代码块 可接受输入参数并返回结果 函数的定义通常包括函数名 参数列表和返回类型 在Java中 函数也被看作是对象 具有属性和方法 本文将从多个方面详细阐述Java中函数的使用和注意事项 一 函数的定义和使用
  • Oracle---day01

    一 简单查询语句 1 去重查询 和mysql的一样 select distinct job from emp select distinct job deptno from emp 去除job相等且deptno相等的结果 2 查询员工年薪
  • Hanlp本地化安装

    环境说明 系统 centos7 x python版本 3 9 0 这里安装完整版本hanlp full 精简版会有不少问题出现 没有找到解决方案 官网安装地址 https hanlp hankcs com install html 2 x
  • HTML简介

    目录 话不多说 先上一个HELLO WORLD 什么是 HTML HTML 标签 HTML 文档 网页 例子解释 话不多说 先上一个HELLO WORLD h1 我的第一个标题 h1 p 我的第一个段落 p 什么是 HTML HTML 是用
  • octave 机器学习_使用Octave开发机器学习算法

    octave 机器学习 Octave is an open source high level programming language designed to perform efficient numerical computation
  • 深度学习大数据

    CAFFE深度学习交流群 532629018 国内数据 链接 http pan baidu com s 1i5nyjBn 密码 26bm 好玩的数据集 链接 http pan baidu com s 1bSDIEi 密码 25zr 微软数据
  • java调用自己写的类型_Java基础——自定义类的使用

    自定义类 我们可以把类分为两种 1 一种是java中已经定义好的类 如之前用过的Scanner类 Random类 这些我们直接拿过来用就可以了 2 另一种是需要我们自己去定义的类 我们可以在类中定义多个方法和属性来供我们实际的使用 什么是类
  • Android ViewGroup提高绘制性能

    如果下面有很多子View 绘制的时候 需要开启其子View的绘制缓存功能 从而提高绘制效率 public void setChildrenDrawingCacheEnabled boolean enabled final int count
  • 全国职业院校技能大赛云计算技术与应用大赛国赛题库答案(1)

    文章目录 IaaS 云计算基础架构平台 IaaS 云平台搭建 IaaS 云平台运维 IaaS 云计算基础架构平台 IaaS 云平台搭建 1 设置主机名 防火墙设置以及 SELinux 设置如下 1 设置控制节点主机名 controller
  • 产业AI公开课正式开播!60分钟解读AI对金融科技的全新破局

    京东数科 产业AI公开课 第一季第一期 重 磅 开 播 行业热门话题 实力业内大咖 深度解读 经典对话 绝对让你这1个小时的时间欲罢不能 干货满满 从SARS到这次新冠肺炎 黑天鹅 事件对资本市场造成极大影响 不同时期的应对之道有何不同 疫
  • 欧拉函数(数论)

    include
  • 团队的远程管理_远程团队指南:如何管理您的远程软件开发团队

    团队的远程管理 Guides to help you work remotely seem to have swept through the Internet these days 这些天来 帮助您远程工作的指南似乎席卷了Internet
  • GPIO相关知识点注解

    一 GPIO工作方式 1 1 GPIO输入 输入工作方式 输入路径 输入浮空模式 I O I O I O端口 gt
  • LabVIEW组态编程的五大经验总结,助你开发过程事半功倍

    虽然NI LabVIEW软件长期以来一直帮助工程师和科学家们快速开发功能测量和控制应用 但不是所有的新用户都会遵循LabVIEW编程的最佳方法 LabVIEW图形化编程比较独特 因为只需看一眼用户的应用程序 就马上可以发现用户是否遵循编码的
  • CVPR 2023|UniDetector:7000类通用目标检测算法(港大&清华)

    作者 CV君 编辑 极市平台 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 目标检测 技术交流群 导读 论文中仅用了500个类别参与训练 就可以使UniDetector检测超过7k个类别 向大
  • Visual Leak Detector - 增强内存泄漏检测工具 for Visual C++ (翻译)

    原文及源码下载地址 http www codeproject com KB applications visualleakdetector aspx 名词解释 1 stack trace 调用堆栈信息 2 debug heap 调试堆 3
  • [服务器][服务][教程]Windows Server 2022开启WebDAV享受媒体影音以及用户权限设置

    1 前言 传输协议那么多 为什么选择Webdav做媒体影音服务器 常用的共享协议有 Samba WebDAV NFS FTP SFTP 这里对这几个协议进行一下优劣对比 Samba 优点 支持的范围广 挂载方便 缺点 445端口被运营商封闭
  • Python环境—打包

    两个步骤完成python环境打包 1 打包 pip install conda pack conda activate py38 conda pack n py38 在当前路径生成py38 tar gz 2 移植 在另一台电脑 conda的
  • 大数据腾讯TEG面经——凉经

    一面 很多原理和计算机基础 c 1 反转链表和两个字符串最大公共子串 2 osi的七层和什么的四层 3 tcp和udp 三次握手 4 进程和线程区别 5 hadoop分布 zookeeper选举 6 hive和hbase区别 hbase都是
  • 基于 UML 的业务建模举例

    基于 UML 的业务建模 2011 05 30 作者 杨敏强 来源 网络 简介 对于管理流程咨询项目 大型信息化建设项目和套装管理软件实施项目 对业务环境的分析和理解对项目的成功至关重要 系统 全面理解 IT 系统所处的业务环境 可以帮助