Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
事项审批设计过程
14-06-10
showerxp
一、流程的变更
1、5月5日,需求分析人员根据前期工作,流程画出的流程图,提交客户确认。
需求人员询问:“请领导审核一下,特别是:1、审批不同意后的处理流程。2、问号处的流程处理。”
2、5月25日客户回复需要修改,分管领导和财务分管领导不同意之后不流转到主要领导,而是财务科长直接通知大队。另外,问号处的问题依旧没有得到明确答复。
由流程变更的过程可以看到,因为对业务领域的理解、时间问题、单位结构等诸多因素,和客户交流可能是一件效率非常低的事情。如以上例子,20日只确定了一件事情。而我们在此之间设计、代码、测试只能等吗?未必。这就要通过抽象业务,直接捕获用户的本质需求,方能实现收敛的迭代开发。
二、收敛的迭代开发——抽象的捕获本质需求
引用百度“抽象”词条:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程,就是一个抽象的过程。
具体本例,从图中找出反复出现的因素,得出的共性有:1、蓝色方框可以归纳为“审批操作”;2、箭头归纳为“跳转”;3、“审批操作”基本上又可以归纳为“某某人”进行“审批操作”;4、根据箭头“跳转”又可以得出单条件、双条件、三条件跳转。
……
好了,根据目前情况,我们起码能确认的是——系统关乎于“审批”、“审批操作”、“跳转”等概念。经过一轮抽象之后,得出的产物基本上很稳定,下一轮新的需求,新的抽象,新的产物出现后,起码不会推倒之前的劳动成果,而只是局部细节的稍微改动,这样就能实现收敛的迭代过程。
最后,贴出根据实际业务规则,“丰满”后的设计类图。
banq
2014-06-11 09:12
这个案例很好,这是一个与时间有关的流式系统,可以用工作流之类概念。
抽象时要注意时间与空间的区别。动与静结合。
业务流程BPM工作流