转会对应转会单据,体检对应体检单据,签合同对应合同单据,训练对应训练指标单据,比赛对应比赛指标单据,新闻发布会对应采访单据 。根据分析绘制如下时标对象:
文章插图
(2) 参与方、地、物这三类对象在四色建模中用绿色表示,我们以电商场景为例进行说明 。用户支付购买商家的商品时,用户和商家是参与方 。物流系统发货时配送单据需要有配送地址对象,地址对象就是地 。订单需要商品对象,物流配送需要有货品,商品和货品就是物 。
我们分析本例可以知道参与方包含总经理、队医、教练、球迷、采访人员,地包含训练地址、比赛地址、采访地址,物包含签名球衣和签名足球:
文章插图
(3) 角色对象在四色建模中用黄色表示,这类对象表示参与方、地、物以什么角色参与到业务流程:
文章插图
(4) 描述对象我们可以为对象增加相关描述信息,在四色建模中用蓝色表示:
文章插图
3.1.3 划分领域在四色建模过程中我们体会到时标对象是最重要的对象,因为其承载了业务系统核心单据 。在划分领域时我们同样离不开时标对象,通过收敛相关时标对象划分领域 。
文章插图
3.1.4 领域事件当业务系统发生一件事情时,如果本领域或其它领域有后续动作跟进,那么我们把这件事情称为领域事件,这个事件需要被感知 。
例如球员比赛受伤,这是比赛子域事件,但是医疗和训练子域是需要感知的,那么比赛子域就发出一个事件,医疗和训练子域会订阅 。球员比赛取得进球,这也是比赛子域事件,但是训练和合同子域也会关注这个事件,所以比赛子域也会发出一个比赛进球事件,训练和合同子域会订阅 。
通过事件交互有一个问题需要注意,通过事件订阅实现业务只能采用最终一致性,需要放弃强一致性,可能会引入新的复杂度需要权衡 。
文章插图
3.2 用例看功能目前为止领域已经确定了,大领域已经拆分成了小领域,我们已经不再束手无策,而是可以对小领域进行用例分析了 。用例图由参与者和用例组成,目的是回答这样一个问题:什么人使用系统干什么事 。
下图表示在比赛领域,运动员视角(什么人)使用系统进行进球统计,助攻统计,犯规统计,跑动距离统计,比赛评分统计,传球成功率统计,受伤统计(干什么事),同理也可以选择四色建模中其它参与者视角绘制用例图 。
文章插图
include关键字表示包含关系 。例如比赛是基用例,包含了进球统计,助攻统计,犯规统计,跑动距离统计,比赛评分统计,传球成功率统计,受伤统计七个子用例 。包含关系表示法有两个优点:第一是可以清晰地组织子用例,第二是有利于子用例复用,例如主教练视角用例图也包含比赛评分,那么就可以直接指向比赛评分子用例 。
extend关键字表示扩展关系 。例如点球统计是进球统计的扩展,因为不一定可以获得点球,所以点球统计即使不存在,也不会影响进球统计功能 。黄牌统计、红牌统计是犯规统计的扩展,因为普通犯规不会获得红黄牌,所以红黄牌统计不存在,也不会影响犯规统计功能 。
用例图不关心实现细节,而是从外部视角描述系统功能,即使不了解实现细节的人,通过看用例图也可以快速了解系统功能,这个特性规定了用例图不宜过于复杂,能够说明核心功能即可 。
3.3 流程三剑客用例图是从外部视角描述系统,但是分析系统总是要深入系统内部的,其中流程视图就是描述系统内如何流转的视图 。
活动图、序列图、状态机图是流程视图中最重要的三种视图,我们称为流程三剑客 。三者侧重点有所不同:活动图侧重于逻辑分支,顺序图侧重于交互,状态机图侧重于状态流转 。
3.3.1 活动图活动图适合描述复杂逻辑分支,设想这样一种业务场景,球队需要选拔一名球员成为足球先生,选拔标准如下:前场、中场、后场、门将各选出一名候选球员 。前场队员依次比较进球数、助攻数,中场队员依次比较助攻数、抢断数,后场队员依次比较解围数、抢断数,门将依次比较扑救数、扑点数,如果所有指标均相同则抽签 。每个位置有人选之后,全体教练组投票,如果投票数相同则抽签 。
推荐阅读
- 一天一个睡前故事女朋友?睡前故事女朋友一万字_1
- allegro使用技巧 allegro怎么发货
- 紫金|一诺登场四周年,写长文让粉丝感动,最后一句是关键
- 圆饼茶是不是普洱茶,熟普洱茶图片
- 有限状态机 多图详解TCP三次握手和四次挥手
- AI人工智能抠图插件究竟有多强大?复杂背景抠发丝多图实例测试
- 7000字长文带你深入了解IOC启动原理
- 万字详文讲解视频和视频帧基础知识,关于视频和帧看这篇就够了
- 2000余字长文讲解Excel中的“数据验证”,我收藏了
- 万字干货,Python语法大合集,一篇文章带你入门