解决问题的第一要务是明确问题,问题尚不知,就尝试求解,自然就是无的放矢了。全局分析的目标就是确定问题空间,在统一语言的指导下,通过各种可视化手段,由领域专家与团队一起完成对问题空间的探索,帮助领域驱动设计对准问题,输出价值需求和业务需求。
价值需求既是目标系统的目标,也是对目标系统问题空间的界定和约束,它指导着业务需求分析。
业务需求由动态的业务流程和静态的业务活动组成,二者的结合依靠业务场景按照时间点和业务目标对业务流程的切分。
通过运用商业模式画布,可以获得组成价值需求的利益相关者、系统愿景和系统范围。
业务流程的梳理可以帮助团队对问题空间的各条业务线构成一个整体认识,弄清楚各种角色如何参与到一个完整的流程中,流程的时序性也可以避免识别业务活动时可能出现的缺失。
业务流程图与服务蓝图以可视化的方式形象地呈现每一个提供了业务价值的业务流程。
业务活动是角色与目标系统之间的一次功能性交互,是体现了服务价值的功能行为。
一直以来,该如何确定业务需求层次,划分业务需求粒度,总是众说纷纭,没有一个客观的标准;业务活动将目标系统视为一个黑盒子,从功能性交互的完整性保证了每个业务活动都是正交的,就无需再考虑业务活动的层次和粒度,或者说,只要确定了完整性,保障了正交性,业务活动的层次与粒度也就确定下来了。
业务活动可以使用用例、用户故事或事件风暴中的事件来表达。
业务活动是全局分析阶段的基本业务单元,它的输出对于架构映射与领域建模具有重要意义:
- 架构映射:业务活动是识别限界上下文、确定上下文映射的基础,同时,它的粒度正好对应每个限界上下文向外公开的服务契约;
- 领域模型:业务需求分析细化的业务活动既是领域分析建模的重要参考,同时又作为服务场景成为场景驱动设计的起点。
全局分析是领域驱动设计统一过程的起点,它的目的是探索问题空间,使团队就问题空间的价值需求和业务需求达成共识,并在统一语言的指导下将其清晰地呈现出来。只有问题定义清楚了,团队才能更好地寻求解决方案。