四色原型图进行业务建模的思考
来源:互联网 发布:淘宝网实拍保护入口 编辑:程序博客网 时间:2024/05/17 08:12
一般的需求,我们利用用例图就可以表达清楚了,如果再复杂些,我们可能还得再配合序列图、状态图等加于说明。但是,在非常复杂的业务逻辑中,怎么样才能找出它们的联系?而且还能更好地拥抱OO(面向对象),OO的优点不是我们本文的话题。
这里笔者介绍一种很灵活很实用的分析方法--四色原型图,也叫彩色UML。
(图片引自JDON的BANQ大师之手)
四个元素的介绍:
moment-interval :
粉红色的时刻—时段:一个时刻或一个时段,您需要追踪它或做某事,通俗地说其实就是关键动词,就是服务,很容易在这里面抽象出事物逻辑类。
例如:计算、补偿、结算等。 mi-detail :通常,粉红色的时刻时段会有一些组成部分,称为mi-detail(时
刻时段明细),
role :
黄色的角色,角色不一定是人,这个很重要,可以理解为一些有行为的名词。
catalog-entry-like description :
蓝色的描述(类似产品的目录项),可以在这里找出
值对象,持久化的对象。
party, place or thing :
绿色的参与方—地点—物品,可以从这里找出模型、实体。
总体总结:“时刻时段”发生了,“事物”们扮演不同的“角色”参与进来“事物”变化的规
律和“描述”有关。
主要参考了BANQ的:http://www.jdon.com/mda/archetypes.html
和yananay的:http://www.javaeye.com/topic/399672#1055483
下面说一下最近学习后用到项目中的一个例子:
1、一开始最主要的其实是找出最基本的原型MI,即红色,这里的原型是住院补偿。
2、然后慢慢找出与之相关的一些东西,计算住院补偿是有一个公式的,围绕着公式可以抽象出一些元素、比如总费用。
3、再涉及到的“非基本用药费用”的时候又可以找出一个计算的MI,再围绕MI继续抽取,最终可以抽取出以上详细的流程,也很符合面向对象的思维。
总结:类图可能大家会认为没能表达出状态和时序等时间上的概念,但是四色原型其实是蕴含着时间状态的,所以在设计分析复杂的业务的时候确实是一个好的工具,这里引用一下BANQ大师的另一个图:
我个人看法,四色原型也不是万能药,但是在分析复杂业务的时候他确实很直观,非常容易找出内在的一些需求,所以我个人认为在整个开发的过程中,四色原型用于复杂业务的分析非常有用。
个人写作的水平和能力有限,这里权当抛砖引玉,希望大家对我存在的不足批评指正,谢谢。
以下附上我的部分分析文档:
实体:
实体
描述
参合农民
新农合的主要参与者
病例清单
记录了患者治疗和用药的情况
医疗证
医疗证
家庭
参加新农合的家庭
功能详细说明:
功能序号
功能名称
子功能名称
功能描述
MED_REC_MI_2
住院补偿
参合患者基本信息
§前置条件:参合患者个人编号§最终结果:查询参合患者个人信息、户信息、医疗证信息。
参合患者基本信息,根据参合患者的个人编号,获取其个人信息、户信息和医疗证信息。
1)获取“参合患者的个人”,根据“参合患者个人编号”读取“农民个人基本数据D401”数据表。
2)获取“户信息”,根据“参合患者个人编号”读取“家庭档案数据D301”。
3)获取“医疗证信息”,根据“参合患者个人编号”读取“农民缴费及家庭帐户管理部分D601”。
§
一般住院补偿
医院总医药费用- 前置条件:每一次住院费用清单
- 最后结果:医院总医药费用
1)读取病例价格清单信息。
2)计算未得到补偿的住院费用。
非基本用药费用
- 前置条件:医院药品价目单,基本用药目录,用药比例。
- 计算结果:非基本用药费用
1)读取病例价格清单信息,获取药品名称、用药数量、药品单价。
2)计算“总药费”,根据药品名称、用药数量和药品单价计算总药费。
3)计算“基本用药费用”,用病例清单的药名和“基本用药目录”进行对比,把匹配的药品费用相加。
4)计算“非基本用药费用”:
“总药费”减去“基本用药费用”。
5)返回“非基本用药费用”,
如果:“用药比例”状态关闭。
则,返回“非基本用药费用”。
如果:“用药比例”状态打开。
则,计算基本用药费用和总用药费用的比值,高于用药比例的,返回“非基本用药费用”。低于用药比例的,返回“总费用”(即全部不予报销,视“总药费”为“非基本用药费用”)。
http://www.uml.org.cn/oobject/201003043.asp
http://www.baike.com/wiki/%E5%9B%9B%E8%89%B2%E5%8E%9F%E5%9E%8B
http://www.infoq.com/cn/articles/xh-four-color-modeling
- 四色原型图进行业务建模的思考
- 对业务建模的思考——为什么要业务建模
- 彩色建模(四色原型) Object Modeling in Color
- 业务建模的范围
- 四色原型图
- 使用 UML 进行有效的业务建模: 描述业务用例和实现
- 使用 UML 进行有效的业务建模:: 描述业务用例和实现
- 使用 UML 进行有效的业务建模: 描述业务用例和实现
- 用UML进行有效业务建模(编译)
- 怎样对客户进行UML业务建模
- 用UML进行有效业务建模
- 建模的思考
- js 原型的思考
- WBI Modeler的业务建模
- 业务建模 之 业务序列图
- 运用四色建模法进行领域分析!
- 运用四色建模法进行领域分析
- 运用四色建模法进行领域分析
- USB Power Delivery快速充电通信原理
- Swift中文教程(一)基础数据类型
- 宏的使用积累
- wpa_supplicant与kernel的接口
- 展讯平台gpio 兼容调试方法------sc8830
- 四色原型图进行业务建模的思考
- Swift中文教程(二)基本运算符
- Ubuntu14.04 安装CodeBlocks
- Swift中文教程(三) 字符串和字符
- leedcode做题总结,题目Two Sum2011-03-13
- CM9源码下载和编译
- Swift中文教程(四) 集合类型
- TortoiseSVN无法查看日志
- datatables 自定义布局