需求分析中,领域建模是理解业务概念、理清数据关系的关键。但很多需求人员面对一堆业务名词,不知从何下手。这里介绍一种实战利器——四色建模法,由Peter Coad提出,用红、绿、黄、蓝四种颜色,把领域类分成四类,按顺序识别,再合并成系统模型。
四色建模法:红绿黄蓝,各有其责
红色:过程数据(Moment Interval)
系统需要记录的动作、时刻。比如“入住登记”“温度调节”“订单提交”。它们是业务发生的瞬间,未来通常转成数据库表,初始为空,随业务不断新增。
绿色:自然数据(Party、Place、Thing)
问题域中的参与者(人、公司)、地点、东西(物品、服务)。比如酒店系统中的“客人”“房间”“前台员工”;嵌入式温控器中的“用户”“温控器”“房间”。它们通常有基础数据,随系统应用增加记录。
黄色:角色数据(Role)
自然数据在不同场景下扮演的角色。比如“客人”可以是“VIP客人”或“普通客人”;“用户”可以是“管理员”或“普通用户”。角色让模型更灵活。黄色通常转成字段,或拆成多种表。
蓝色:描述类数据(Description)
概述类或规则类。概述类如“房型”(标准间、大床房);规则类如“价格规则”“温度模式”。它们初始化就有内容,且不断调整,体现可配置性。
识别顺序:红→绿(考虑黄)→蓝
先找过程数据,再找自然数据并考虑角色,最后找描述类数据。
示例一:酒店管理系统
主业务流程“入住登记”:
-
红色:入住记录。 -
绿色:客人、房间、前台员工。 -
黄色:客人角色(VIP/普通)。 -
蓝色:房型(概述)、价格规则(规则)。
示例二:嵌入式温控器
主业务流程“温度调节”:
-
红色:温度调节事件。 -
绿色:用户、温控器、房间。 -
黄色:用户角色(管理员/普通)。 -
蓝色:温度模式(节能/舒适)、阈值规则。
自底向上:片段合并成系统模型
一口气画整个领域类图很难。采用“自底向上”:找出所有主业务流程,每个流程画一个领域类图片段,再合并。
合并用建模工具(Rational Rose、EA),不是Visio。每引入一个类,左侧树会出现。新建空图,把类拉进去,关系自动连接。
合并后要做三件事:
- 合并“不同名、实际相同”的类
:不同流程可能对同一数据用不同名称,如“客户”和“客人”,要统一。 - 优化关系
:合并后可能出现传递依赖等复杂关系,适度简化。 - 补充字段
:为每个领域类补充关键字段。
检查模型:四色缺一不可
-
缺红?系统不可能没有要记录的动作。 -
缺绿?总会涉及人、地点、东西。 -
缺黄?模型不灵活。一黄一绿搭配要小心,可能没必要抽象角色。 -
缺蓝?可配置性太差。
总结
领域建模就是找主流程,用四色法画片段,再合并成系统模型。红色记动作,绿色找实体,黄色定角色,蓝色管配置。自底向上,合并优化,系统的骨架就清晰了。
最后,四句诗总结:
四色建模分赤绿,黄蓝相间见真章。
自底向上合片段,领域骨架自昭彰。
参考书目:有效需求分析 ,作者: 徐锋,出版社: 电子工业出版社

