核心工作流
要迈向“低成本制造好卖的各款产品”的境界,并非喊喊口号就能达到,需要静下心来,学习和
实践以下各个核心工作流中的技能:
1. 业务建模─描述组织内部各系统(人肉系统、机械系统、电脑系统......)如何协作,使得组织可
以为其他组织提供有价值的服务。新系统只不过是组织为了对外提供更好的服务,对自己的内部重新
设计而购买的一个零件。组织引进一个软件系统,和招聘一名新员工没有本质区别。如果能学会通过
业务建模去推导新系统的需求,而不是拍脑袋得出需求,假的“需求变更”会大大减少。
2. 需求─聚焦于待开发系统的边界,详细描述系统要卖得出去必须具有的表现─功能和性能。这
项技能的意义在于强迫我们从“卖”的角度思考哪些是涉众(Stakeholder)在意的、不能改变的契约,
哪些不是,严防“做”污染“卖”。需求工作流的结果─需求规格说明书是“卖”和“做”的衔接点。
3. 分析─提炼系统内需要封装的核心领域机制。可运行的系统需要封装各个领域的知识,其中只
有一个领域(核心域)的知识是系统能在市场上生存的理由。对核心域作研究,可以帮助我们获得基
于核心域的复用。
4. 设计─将核心域知识和非核心域知识结合,最终实现系统。说“代码就是设计”指的是这狭义
的“设计”。代码确实是设计,但代码不是分析,不是需求,不是业务建模。
组织要解决什么问题 业务建模 提升销售
为了解决组织的问题,待开发系统应该提供什么功能和性能 需求
需求规格
为了提供功能,系统内部应该有的什么样的核心机制 分析 降低成本
为了提供性能,系统的核心机制如何用选定技术实现 设计
图1-3 核心工作流
作流 思考焦点 可选UML 元素 推荐UML 元素
业务建模 组织内系统之间 用例图、类图、序列图、活动图 用例图、类图、序列图
需求 系统边界 用例图、序列图、状态图、活动图、文本用例图、文本
分析 系统内核心域 类图、序列图、状态图、活动图、通信图、
包图
类图、序列图、(状态图)
设计 系统内各域之间 类图、序列图、状态图、活动图、通信图、
组件图、部署图、时间图、组合结构图、
包图