业务规则建模是什么
业务规则建模(Business Rule Model),提供了一种正式定义业务规则的方法,可以建模业务规则相关的元素并可以把业务规则排序,业务规则建模可以作为实现规则的应用程序(编程)代码生成的基础。
用于建模业务规则的符号包括三个主要部分:
业务策略:可以建模业务流程中的判定规则。
业务任务:描述业务流程中执行的任务。
业务术语 和元素:描述表示与业务规则相关的词汇表、信息元素。
具体业务规则符号如下图所示:
如下是对上图的说明
业务领域图:采用了UML的类图,描述了具有业务规则的业务实体。
业务规则图:它描述规则任务和业务规则之间关系。
规则任务图:采用了UML的活动图,描述规则行为方面的关系。
|
为什么要用业务规则建模
业务规则建模可以描述业务流程中的活动的处理规则,如下图所示:
如下是对上图的说明:
1.左边的规则图,描述了业务的流程,但是没有描述任务的规则。
2.右边的业务规则图,不仅描述了业务规则流程,还描述业务规则及规则任务之间对应的关系
|
接下来我们来看一下,业务规则建模具体能干什么呢?如下是详细介绍: 业务规则建模可以帮助我们理解业务规则和策略。
业务规则提供了精确性,可以明确的描述业务行为,避免对业务的误解。
统一的业务规则有利于这个团队成员之间的业务交流。
统一的业务规则可以减少业务流程图上的混乱的情况。
把信息元素和业务规则关联,能让读者快速理解领域模型的相关规则。
通过创建规则数据库或者应用程序的规则,可以为业务流程提供模块化解决方案。
如何EA中创建业务规则图
如何在EA中创建业务规则图呢?如下是创建业务规则的具体操作过程:
1. 在模型向导中选择 Business Rule Model 图建模类型->点击Starter
Business Rule Model->点击创建模式按钮, 如图所示:
业务规则图创建示例
2. 创建完成后,将在“ 浏览器”窗口中生成一个业务规则模型结构如图所示:
3. 打开对应的工具箱,里面列有业务规则图的元素和关系,具体元素和关系如下表所示:
元素 |
说明 |
|
Business Rules Model:业务规则模型
Business Rules Package:业务规则包
Business Domain Model:业务领域模型
Business Rule:业务规则
Rule Task: 规则任务
|
关系 |
说明 |
|
Dependency:业务规则和业务对象之间的依赖关系。 |
接着我们来看一下,一个完整的业务规则模型图在EA中是如何显示的?
如下是EA中业务规则模型图下的一个建模示例:
业务规则图建模示例
业务规则模型在EA中的应用
在任何业务操作或流程中,开始、进度和最终结果通常是参考一组规则来确定的。这些规则可以很简单,也可以是复杂的。
那么在进行业务规则建模时,我们应该怎么正确的使用呢? 如下我们介绍业务规则建模的过程:
如下是对上图的说明:
1.
建立业务规则组织包,用来组织后续的业务规则。
2. 在业务规则图中,开始将业务规则标识为规则元素,那么每个元素代表一个特定的业务规则。 3. 在业务领域图中创建类来表示业务域或流程中的业务对象,同时这些类提供业务词汇表作为业务规则的上下文。 4. 其中一个类表示规则的实际应用,在这个类下面是一个规则流活动图,在该图中,可以描述业务规则的执行顺序,这是通过分组的规则任务来实现的。 5. 返回到业务规则图中,为每个任务分配相应的“业务规则”元素。
|
以汽车租赁为例,下面分别详细说明业务建模规则的五个图示建立方法。
1. 业务规则模型的组织
首先我们建立业务规则组织包,用来组织后续的业务规则,业务规则涉及多个图,把业务规则包这些图组织为模型:
1) 可以用包来组织业务规则图及其元素;
2) 可以用包来组织业务领域模型图及其元素;
3) 在领域模型的类下面创建业务流程。
业务规则的模型组织如下图所示:
业务规则模型图
如下是对上图的说明:
业务规则包的下面有:
业务规则图
规则任务:例如确定处罚、确定应付总额等等
业务规则:AWD汽车的租金是每天2000元、车辆不得租给年龄不满18岁的顾客等等
业务领域包的下面有:
业务领域类图
领域类:汽车、顾客、租金等等
|
2.建立业务规则图,首先列出业务规则
业务规则定义可以很简单,比如说“客户必须提供年满18岁的书面证据”,也可以复杂,比如说“确定一份量身定制的保险单需要什么、不需要什么的精准规则”。
EA中业务规则图,可以将每个业务规则定义为业务规则元素,以汽车租赁为例。首先我们定义业务规则元素,如下图所示:
业务规则
3.建立业务领域模型
业务领域模型提供了可以用来对业务规则进行建模的业务词汇。在EA中业务领域模型表示为概念类图,业务领域模型图如下所示:
业务领域图
如下是对上图的说明:
顾客使用租赁系统申请汽车,汽车租赁需要租金,顾客支付租金。
顾客、申请、汽车、租金需要相应的属性和方法,支持业务的实现。
|
我们还可以在“租赁系统”类下,创建规则流活动作为域类之一的行为,使这个类能够处理一组规则。
4.在领域类下面建立规则任务图
在业务规则模型中设置业务领域模型时,创建规则活动,使这个类能处理一组规则。以汽车租赁系统为例的规则活动如下图所示:
规则任务图
5.在业务规则图上标识业务规则对应的规则任务
在汽车租赁中,我们可以对客户执行资格检查,确定客户是否有资格租用汽车,通过这些条件我们可以定义业务规则并对其进行了分组。如下是这些业务流程中各个活动具有的规则说明:
1.
首先确定租车资格,看客户是否年满18周岁,是否有驾照,是否不良历史记录为3级客户,如规则有一条不满足则为不合格,不能租车。 2. 如确定客户有租车资格,则确定应付租金,确定租的是小型车,豪华车还是AWD汽车,之后确定每日每车的价格,为应付每日租金 3. 确定应付租金后,看客户是否有不良记录,如没有,确定租车天数,确定应付租车的总额,完成支付则租车成功。
4. 确定应付租金后,如客户有不良记录,不良历史记录1级的客户必须缴纳租金的10%的罚款,
有2级不良历史记录的客户必须缴纳租金20%的罚款,然后确定租车天数,确定应付总额。 |
把如上业务的规则对应到相应的规则任务,建立业务规则图,一个完整业务规则图如下所示:
业务规则图
如下是和规则任务对应的业务规则的说明:
规则任务 |
业务规则 |
确定租车资格 |
车辆不得租给年龄不满18岁的顾客
不得将汽车出租给有不良历史记录的3级客户
无驾照客户不得租用有效车辆 |
确定应付租金 |
小型汽车的租金是每天300元
豪华车的租金是每天3000元
AWD汽车的租金是每天2000元
应付租金以日租金和租期的成绩计算 |
确定处罚 |
主要针对有不良记录的客户,且不是三级的客户,对应业务规则如下:
有不良历史记录1级的客户必须缴纳租金的10%的罚款
有2级不良历史记录的客户必须缴纳租金20%的罚款 |
确定应付租金总额 |
主要是计算最终应付资金,对应业务规则如下:
无牌照客户不得租用有效车辆
应付租金以日租金和租期(以日为单位)的乘积计算
|
好了,以上就是对在EA中建立业务规则模型方法的介绍,希望此文对大家了解和使用业务规则建模起到帮助作用。
后续请继续关注我们,有更多文章,视频可供大家参考.
如果您希望了解更多信息:
下载 pdf版:
《基于EA的业务规则建模》
本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp
后记
希望您读了此文后有所受益。
如果您有经验乐于分享,欢迎投稿给我们。
如果您对我们的培训、咨询和工具感兴趣:
|