数据模型中的状态表与状态图解析
1. 状态表相关要点
1.1 缺失状态问题
创建状态表时,若未能正确识别所有状态,就会错失该模型的价值。当从一个状态到另一个状态的转换看起来不合理时,识别状态之间的转换有助于找出缺失的状态。
1.2 错误的“否”转换
有时大家会在未仔细考虑实际情况的前提下,一致认为某个转换不被允许。通过标记某个转换为“否”,开发团队可能会特意阻止该转换发生。例如在抵押贷款申请中,当申请进入“未结清”状态时,大家可能都觉得它不会再离开这个状态。但进一步探究会发现,长时间后,客户常常会回来想重启流程。在当前系统中,经纪人实际上会违反公司政策,将状态设置为“开启”并开始编辑原始申请。经过进一步讨论,大家可能仍认为该转换确实不被允许,但可能会发现有将信息复制到新记录的需求。复制操作能让经纪人避免重新输入系统已有的申请人信息,从而节省大量时间。新记录会包含所有原始数据和一个新的初始状态,但没有历史记录。
1.3 相关模型
与状态表相关的重要模型如下:
| 模型名称 | 描述 |
| — | — |
| 业务数据图(BDDs) | 用于确定在状态表中分析状态时应考虑哪些业务数据对象。 |
| 状态图 | 以可视化方式展示状态转换,若转换流程是关键因素,状态图更易于阅读。 |
| 流程流、系统流和用例 | 帮助查找触发状态转换的事件。同时,状态表的转换事件可确保这些模型没有漏洞。 |
| 显示 - 动作 - 响应(DAR)模型 | 将状态表中的状态用作用户界面显示和行为的可能前提条件。 |
| 数据字典 | 对于状态表中表示的业务数据对象