大数跨境

领域建模:用四色法画出系统的“骨架”

领域建模:用四色法画出系统的“骨架” 软件工程之思
2026-10-21
2
导读:四色建模分赤绿,黄蓝相间见真章。自底向上合片段,领域骨架自昭彰。

需求分析中,领域建模是理解业务概念、理清数据关系的关键。但很多需求人员面对一堆业务名词,不知从何下手。这里介绍一种实战利器——四色建模法,由Peter Coad提出,用红、绿、黄、蓝四种颜色,把领域类分成四类,按顺序识别,再合并成系统模型。

四色建模法:红绿黄蓝,各有其责

红色:过程数据(Moment Interval)

系统需要记录的动作、时刻。比如“入住登记”“温度调节”“订单提交”。它们是业务发生的瞬间,未来通常转成数据库表,初始为空,随业务不断新增。

绿色:自然数据(Party、Place、Thing)

问题域中的参与者(人、公司)、地点、东西(物品、服务)。比如酒店系统中的“客人”“房间”“前台员工”;嵌入式温控器中的“用户”“温控器”“房间”。它们通常有基础数据,随系统应用增加记录。

黄色:角色数据(Role)

自然数据在不同场景下扮演的角色。比如“客人”可以是“VIP客人”或“普通客人”;“用户”可以是“管理员”或“普通用户”。角色让模型更灵活。黄色通常转成字段,或拆成多种表。

蓝色:描述类数据(Description)

概述类或规则类。概述类如“房型”(标准间、大床房);规则类如“价格规则”“温度模式”。它们初始化就有内容,且不断调整,体现可配置性。

识别顺序:红→绿(考虑黄)→蓝

先找过程数据,再找自然数据并考虑角色,最后找描述类数据。

示例一:酒店管理系统

主业务流程“入住登记”:

  • 红色:入住记录。
  • 绿色:客人、房间、前台员工。
  • 黄色:客人角色(VIP/普通)。
  • 蓝色:房型(概述)、价格规则(规则)。

示例二:嵌入式温控器

主业务流程“温度调节”:

  • 红色:温度调节事件。
  • 绿色:用户、温控器、房间。
  • 黄色:用户角色(管理员/普通)。
  • 蓝色:温度模式(节能/舒适)、阈值规则。

自底向上:片段合并成系统模型

一口气画整个领域类图很难。采用“自底向上”:找出所有主业务流程,每个流程画一个领域类图片段,再合并。

合并用建模工具(Rational Rose、EA),不是Visio。每引入一个类,左侧树会出现。新建空图,把类拉进去,关系自动连接。

合并后要做三件事:

  1. 合并“不同名、实际相同”的类
    :不同流程可能对同一数据用不同名称,如“客户”和“客人”,要统一。
  2. 优化关系
    :合并后可能出现传递依赖等复杂关系,适度简化。
  3. 补充字段
    :为每个领域类补充关键字段。

检查模型:四色缺一不可

  • 缺红?系统不可能没有要记录的动作。
  • 缺绿?总会涉及人、地点、东西。
  • 缺黄?模型不灵活。一黄一绿搭配要小心,可能没必要抽象角色。
  • 缺蓝?可配置性太差。

总结

领域建模就是找主流程,用四色法画片段,再合并成系统模型。红色记动作,绿色找实体,黄色定角色,蓝色管配置。自底向上,合并优化,系统的骨架就清晰了。

最后,四句诗总结:

四色建模分赤绿,黄蓝相间见真章。
自底向上合片段,领域骨架自昭彰。

参考书目:有效需求分析 ,作者: 徐锋,出版社: 电子工业出版社

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000培训、内外部评价以及软件过程改进、软件工程能力提升的研究工作。

【声明】内容源于网络
0
0
软件工程之思
软件工程之思,一个探讨软件工程的优秀实践的芳草之地,这里有前辈的成熟经验,也有晚辈的奇思妙想,无论哪种,都希望能给你带来一点启迪。软件工程之思,愿成为推进软件工程浪潮中的一朵浪花,营造软件工程燎原之势的星星之火。
内容 2688
粉丝 0
软件工程之思 软件工程之思,一个探讨软件工程的优秀实践的芳草之地,这里有前辈的成熟经验,也有晚辈的奇思妙想,无论哪种,都希望能给你带来一点启迪。软件工程之思,愿成为推进软件工程浪潮中的一朵浪花,营造软件工程燎原之势的星星之火。
总阅读25.1k
粉丝0
内容2.7k