基于 UML 的业务建模举例
简介:
对于管理流程咨询项目、大型信息化建设项目和套装管理软件实施项目,对业务环境的分析和理解对项目的成功至关重要。系统、全面理解 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
基于 UML 的业务建模举例的更多相关文章
- 使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处
使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处 作者:Arthur V. English 出处:IBM 本文内容包括: 背景 业务用例模型与系统用例模型有什么相似之处? 业 ...
- 基于UML的时空建模
一.基本信息 标题:基于UML的时空建模 时间:2018 出版源:东北大学学报(自然科学版) 领域分类:UML模型:RCC-8空间拓扑:Allen-13时态拓扑:时空数据:建模 二.研究背景 问题定义 ...
- 直播开始:'云榨汁机'诞生记--聊聊JavaScript中的'业务建模'
闭包是JavaScript中的一个重要特性,在之前的博文中,我们说闭包是一个'看似简单,其实很有内涵'的特性.当我们用JavaScript来实现相对复杂的业务建模时,我们可以如何利用'闭包'这个特性呢 ...
- 基于UML的中职班主任工作管理系统的分析与设计--文献随笔(二)
一.基本信息 标题:基于UML的中职班主任工作管理系统的分析与设计 时间:2016 出版源:遵义航天工业学校 关键字:中职学校; 班主任工作管理; UML建模 二.研究背景 问题定义:班主任是一项特殊 ...
- 基于UML的文献管理系统建模研究
一.基本信息 标题:基于UML的文献管理系统建模研究 时间:2016 出版源:信息与电脑(理论版) 领域分类:UML:文献管理系统:系统建模: 二.研究背景 问题定义:图书的管理与规划 难点:系统和管 ...
- 基于UML的需求分析和系统设计
小序: 从学生时代就接触到UML,几年的工作中也没少使用,各种图形的概念.图形的元素和属性,以及图形的画法都不能说不熟悉.但是怎样在实际中有效地使用UML使之发挥应有的作用,怎样捕捉用户心中的需求并转 ...
- [转载]基于UML的需求分析和系统设计(完整案例和UML图形演示)
小序: 从学生时代就接触到UML,几年的工作中也没少使用,各种图形的概念.图形的元素和属性,以及图形的画法都不能说不熟悉.但是怎样在实际中有效地使用UML使之发挥应有的作用,怎样捕捉用户心中的需求并转 ...
- 文献综述一:基于UML技术的商品管理系统设计与实现
一.基本信息 标题:基于UML技术的商品管理系统设计与实现 时间:2018 出版源:福建电脑 文件分类:uml技术的研究 二.研究背景 使用 UML 技术对商品管理系统进行了分析与研究,使用户对商品信 ...
- 【DDD】领域驱动设计实践 —— 业务建模实例(‘发布帖子’)
本文是基于上一篇‘业务建模小招数’的实践,后面的多篇博文类似.本文主要讲解‘发表帖子’场景的业务建模,包括:业务建模.业务模型.示例代码:示例代码会使用java编写,文末附有github地址.相比于& ...
随机推荐
- Jigsaw 项目:Java 模块系统新手引导
前言 随着 2017 年 10 月 Java 9 的发布,Java 能够使用模块系统了,但是中文互联网上的资料太少,许多关于 Java 模块系统的文章都只是介绍了模块系统的好处,或者给了一些毫无组织的 ...
- 11、Pickle序列化
概念: 常用语法:DUMP:把现在内存中的对象状态装到硬盘文件上 常用语法:LOAD:把磁盘文件中的对象导入到内存中 小练习: 字典中存账号信息,用pickle dump到文件中,并load进行修 ...
- Spark下载与入门(Spark自学二)
2.1 下载Spark 略 2.2 Spark中Python和Scala的shell Spark shell可用来与分布式存储在许多机器的内存或者硬盘上的数据进行交互,并且处理过程的分发由Spark自 ...
- 常见BUG问题汇总[待更新]
1.字符串数据库长度问题,特别是与java接口对接的过程中要注意 2.存储数据库之前所有的数据都需要在存储前进行验证
- JAVA学习笔记 -- 多线程之共享资源
在多线程程序执行过程中,可能会涉及到两个或者多个线程试图同一时候訪问同一个资源.为了防止这样的情况的发生,必须在线程使用共享资源时给资源"上锁",以阻挡其他线程的訪问. 而这样的机 ...
- Unity iOS打开AppStore评星页面,浅谈Application.OpenURL()方法。
http://fairwoodgame.com/blog/?p=38 Unity iOS打开AppStore评星页面,浅谈Application.OpenURL()方法. Posted in Uni ...
- Python程序员的10个常见错误
关于Python Python是一门解释性的,面向对象的,并具有动态语义的高级编程语言.它高级的内置数据结构,结合其动态类型和动态绑定的特性,使得它在快速应用程序开发(Rapid Applicatio ...
- MySQL错误Another MySQL daemon already running with the same unix socket.v
etc/init.d/mysqld start 结果显示 Another MySQL daemon already running with the same unix socket.显示另一个MyS ...
- CentOS最常用命令
快捷键.常用命令: 文件和目录:# cd /home 进入 '/home' 目录# cd .. 返回上一级目录# cd ../.. 返回上两级目录# cd - 返回上次所在目录# cp file1 f ...
- C语言-gdb调试工具详解
回车 重复上一次命令 产生可调试的可执行文件:gcc -g main.c -o main, 必须加上-g选线, 表示在可执行文件中加入源文件信息, 但并不是将源文件嵌入可执行文件, 所以在调试时必须保 ...