解决复杂思考之流程图:如何规范并描绘易于理解的流程图?

在推进工作的过程中,有效的沟通至关重要。

一、背景

最近负责公司流程再造这个项目,这个项目的背景是:为了跟上公司业务的发展,要将公司已有内部系统中的业务流程功能全部梳理和重构,解决大部分历史遗留的混乱问题并增强扩展性。系统由两个ERP系统和一个CRM系统及一些独立工具构成,包含销售、运营、市场、财务、人事、客户管理等模块。

在推进工作的过程中,不断的遭遇了大量问题并努力解决,这次主要聊一个由于系统的复杂性,影响概念设计及沟通交流的问题。由于系统本身既庞大又结构复杂,且设计时需要协调沟通极多的的部门负责人与项目干系人配合,而他们对于软件工程或组织系统的认识水平又参差不齐,就导致很难在统一的概念上进行沟通,尤其是在业务层面到开发层面的鸿沟,着实给我造成了许多困惑。

二、问题分析

仔细细考后,基于易理解性和工作流合理性提出以下几点假设原因:

而其中第一点问题从解决真实问题的角度适合引入系统论思考,第三点问题则正是项目立项之初就明确需要解决的问题,第四点就只剩降低我的自我效能感这一个用处了。

(这里不聊为什么选择用图的形式表达,我认为信息可视化是在制作难度和可理解性中最平衡的沟通方式。)

三、问题研究1、图的类型

先来熟悉一下惯用的几种作图方式,流程图、泳道图、时序图、用例图、原型图,不过下文的图并没有按照严谨的UML方式作图(现在连开发都不用严格的UML了吧?),仅作参考使用。好,开始一个个分析优缺点,仔细研究问题。

流程图

优点:逻辑、概念清晰,且很容易做颗粒度把控。

缺点:更多表达系统的行为,较为忽视人员角色与系统的互动,实际制图中更多是偏向开发侧表达,对跨部门沟通不够友好;表达数据、状态等信息时略显力不从心,因为如果引入其他形式表示会导致图表过于复杂,都用同一种形式展示又很难区分。

泳道图

优点:较为完整描述流程,相当于在普通流程图中加入角色,展示所有涉及模块的交互;能直观感受特定泳道内的所有行为。

缺点:系统高于复杂的时候,图极大极复杂,可读性很差;且信息展示方式不够直观,与常规认知习惯不匹配。

时序图

优点:可以说是很细了,甚至能完全表达系统各细节环节的最细小行为,不但能表示各行为顺序,还能在数据层面表示网络请求的方式。能达到一张图不用解释的境地,可以算泳道图的升级版。

缺点:以我目前的经验来看,这种图如果开发同学不需要就没什么用,因为它的可读性也差,且颗粒度很细的时候也有信息量过载问题,当涉及回调及同步异步问题时需要更专业的读图技巧,增加沟通成本,不如让开发同学自己处理设计。

用例图

优点:好处是很容易理解,尤其是在遍历单角色任务时很实用,且容易按照颗粒度划分层次。

缺点:在概念设计上容易忽视整体,流程完整性难以直观感受。除了对单个角色做MECE分析的时候比较有用,其余用处不大,毕竟测试同学会自己处理用例。

原型图

优点:这应该是所有人都最喜欢看的图,好处很多,既直观,又能很好的展示功能,还可以做交互标记。按颗粒度可分低保证高保真,低保证便于沟通,高保真方便用户测试。

缺点:原型图已经很贴近实际开发的阶段了,而不是所有项目(甚至不建议任何项目)都是直接到原型阶段的,前期的思考和论证至关重要,原型只不过是之前所有阶段的结果总结,反复修改原型极易导致严重的项目进度管理问题,所以直达原型的设计流程是很成问题的。

2、表达元素分析3、设计阶段

先细分几个设计阶段,方便明确在各个阶段的目标以选择需要的方案。

四、解决方案

在经历了一大波实际环境尝试之后,得出了一些目前比较适用的方案。首先明确不存在一张解决所有问题的图表达方式,这也是为了在可读性和完整性中寻求平衡。

1、业务用例图

首先在业务概念阶段,需要一种能表示系统内全部流程的图,并能展示角色的差别,方便跨部门沟通。重点在于简单快速易理解,在开始设计前敲定所有业务影响的范围。

所以选用普通流程图易理解的表达方式,直接引入角色的概念,若图表过于复杂则从颗粒度着手,再引入「包」和「领域」切分的概念就很完美了。

一整张图的形式

可调颗粒度行为并引入角色概念,真是和概念思维较弱的同学沟通的利器,也方便进行整个系统架构的思考,因为合理切分/加大颗粒度后,对大信息量的支持很友好。

例图前半部分被我截掉了,实际是一整张业务流程图,表达了全部主要的业务流程。图中也可以用一些小标签的方式表达一些额外概念。例如我图例紫色的小图标表示该操作允许业务员协助客户完成。

切分引入集合的形式

由于系统大小限制,此处可能需要细分任务颗粒度,酌情增加细分阶段。尝试利用类似DDD领域切分的思路分割复杂系统为独立系统,概念或流程打包独立封装,来简化自上而下设计时信息量过大的问题。

将「用户首次进入」流程封装,在其他流程中直接引用,方便进行整体管理。

能把流程简化到什么程度呢?见下图

太轻松有没有?

2、数据状态图

其次我们需要在完善功能概念阶段,需要一些能更好的表达抽象对象的图,来作为产品设计的工具,补充思考边界问题并尽量穷尽所有可能性,避免出现设计BUG。还有梳理状态和数据的关键变化。

行为数据图

数据如何产生?由某种行为,引起某处的变化,产生数据。所以图中要表示「地点」(页面),「行为」(操作),「数据项」(输入输出)。

由于怕干扰开发同学数据库设计和选择数据存储方案的思路,就采用了一个「数据存储/记录」的概念集合来表示采集的数据集合。需要表示数据项额外限制的,可以在数据项后加括号,例如:版本1-1(最大字符数25,disable状态)。

表层交互即用户能感受到的交互,底层交互则为用户感受不到的系统内部交互,分开主要因为有些时候底层交互触发的节点与表层交互触发节点不一致(系统总是会在背后默默地多做一些事情)。

状态图

同理状态也是由行为产生变化,所以每步状态变化必然带着一个前置动作。

括号「(-)」内的状态表示前台展示的状态对应的状态,「[–]」处内容为注释。

3、交互原型图

最后在交互原型阶段,需要一种表示界面元素的图来展示功能,并引入交互表达,这个都很熟悉,不多说了。

五、后记

当设计过于复杂的系统时,采用自顶向下的设计方式更容易搭建合理的体系。而稳步推进项目的好方法就是细分任务阶段,阶段性确认与阶段性设计(有点类似CI/CD的概念?)。

多层确认与详细的沟通一定不会带来坏处,让伙伴们明白「业务先行」与「集体参与」,会使设计方案更稳定且耐受考验。

本文由@Jokul原创发布于人人都是产品经理。未经许可,禁止转载。

THE END
1.把流程图画清楚,能解决很多问题流程图技法在工作中,流程图是我们常用的一种技能/方法,可以帮我们更好提升工作效率。本文系统整理了流程图的方法、类型和案例,希望可以帮到大家。 在我们分析需求时,有一个很重要的东西——流程。 为了梳理业务流程,让流程能走通,能够形成闭环,不让我们设计方案的逻辑缺失,这个时候就有一种很直接的方式——画个流程图。 一https://www.toutiao.com/article/7447038270527881747/
2.软件工程系统/子系统设计,子系统架构设来自莲华不著水part10定义的软件要求、设计和测试子阶段之间的关系(其中的3-7个人建议翻译为初始架构设计更合理 )系统架构的作用(借鉴 MUNIK)如下图。架构模型根据ISO26262中的定义,相关项由一个或者多个系统组成,而一个系统应该至少包括1个传感器、1个控制单元和1个执行器。https://weibo.com/2036480811/P4GMLxRbY
3.软件系统总体架构类图软件系统总体结构图用图形化的符号来记录整个系统和系统各模块的结构,描述了系统各子系统、相关文件和数据之间的关系。记录了整个系统的体系结构。系统流程图主要应用在系统架构阶段,是系统分析员或系统设计师对将要构建系统的一种描述,这种描述以简单图形化的方式给出了系统的整体结构,涉及到系统将要使用的各种部件,如子系统、数据库、https://blog.51cto.com/u_13250/7060911
4.软件工程课程设计报告3.5.2数据流程图如下 10 3.5.3 数据流图的数据字典 12 3.6 系统的性能需求 13 4.总体设计 13 4.1系统结构的总体设计https://www.unjs.com/fanwenwang/gzbg/20170729000008_1409357.html
5.软件设计师(下午)——数据流图数据字典数据流图和数据字典软件设计师(下午)——数据流图、数据字典 数据流图 数据流图也称为数据流程图(Data Flow Diagram,DFD),它是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。https://blog.csdn.net/qq_43448856/article/details/124801069
6.图书管理系统数据流程图及数据字典图书管理系统数据流程图及数据字典图书馆管理信息系统的顶层数据流图图书馆管理信息系统l层数据流图读者图书管理员图书馆管理信息系统图书查询信息图书借阅情况罚款信息读者信息图书信息借还书信息读者情况图书情况管理请求信息图书录入信息书籍情况d1读者信息表d2图书信息表d4读者类别信息表d3借阅信息表系统管理图书管理读者https://wenku.baidu.com/view/8042dec5132de2bd960590c69ec3d5bbfd0adaf0.html
7.管理信息系统(实验)系统分析数据流图数据字典(7页)管理信息系统(实验)-系统分析-数据流图、数据字典.doc 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 管理信息由信息的采集、信息的传递、信息的储存、信息的加工、信息的维护和信息的使用六个方面组成。完善的管理信息系统MIS具有以下四个标准:确定的信息需求、信息的可采集与可加工、可以通过程序https://max.book118.com/html/2021/1022/7112124143004025.shtm
8.软件工程第二章二、系统流程图 (一)是什么? (二)为什么? (三)怎么办? 三、数据流图(DFD) (一)是什么? (二)为什么? (三)怎么办? 四、数据字典 (一)是什么? (二)为什么? (三)怎么办? 五、成本/效益分析 (一)是什么? (二)为什么? (三)怎么办? 总结 https://www.jianshu.com/p/f288df57546d
9.2.结构化——数据字典(1)顶层数据流图 顶层DFD图 (2)0层DFD 0层DFD图 (3)逐步求精 对加工1进行分解: 再对借书进行细化: (4)建立系统的数据字典 数据流条目: 查询要求=[读者情况|图书情况|图书统计表] 读者情况=姓名+校园卡号+可借图书数 图书统计表=[A|B|C|D|E] https://zhuanlan.zhihu.com/p/149295020
10.图书管理系统数据流程图及数据字典.doc图书数据流数据读者数据项流程图 6、你所在的学校将开发图书管理信息系统,请对该系统进行分析:(1)画出数据流图。管理请求信息借还书信息罚款信息图书情况图书馆管理信息读者图书管理员图书查询信息系统读者信息读者情况图书借阅情况图书信息“图书馆管理信息系统”的顶层数据流图图书书籍录入情况信息书籍查询情况12权限管理https://www.docin.com/touch_new/mip_previewHtml.do?id=2133116047
11.数据流图DFD画法「建议收藏」腾讯云开发者社区数据流图(DFD- Data Flow Diagram)让系统分析者弄清楚“做什么”的问题,其重要性就不言而喻了。那么我们怎么画数据流图呢?数据流图与系统流程图又有什么区别呢? 步骤1 数据流图里包含的内容 数据流图描述的是系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是https://cloud.tencent.com/developer/article/2030083
12.软件设计师知识点100条软件设计师考点整理软件设计师模式-内模式映射,保证数据物理独立性,即当数据的物理结构发生改变时,应用程序不用改变。只需要修改概念模式和内模式之间的映像。 25、数据库设计过程 需求分析阶段产物:数据流图、数据字典、需求说明书。 概念设计阶段产物:E-R模型。 逻辑设计阶段产物:关系模式。设计依据:需求分析、E-R模型、转换原则、规范化理论。https://www.educity.cn/rk/2213375.html
13.学生信息管理系统ER图,数据流图用例图以及用例说明(部分)软件软件工程-期末考试复习总结知识点必考题型(根据老师讲的重点自己整理) 简答和应用大题着重复习课后习题,尤其是数据流图、数据字典、ER图、状态图、程序流程图、N-S图、PAD图、等价类划分与逻辑覆盖的测试用例设计方法、用例图、活动图和顺序图。 软件工程复习重点.ppt(看完理解ppt内容及格没问题) 软件工程-期末考试https://www.iteye.com/resource/m0_45272112-13585493
14.图书馆管理系统数据流图图书馆管理系统数据流图 1.1 系统分析 1.1.1 图书馆管理信息系统的基本任务 “图书馆管理信息系统”是一个面向具有万人以上用户,位于某中型企事业单位内的图书馆管理系统,藏书规模约100 多万册,每天的借阅量近万册。在手工操作方式下,图书的编目和借阅等工作量大,准确性低且不易修改维护,读者借书只能到图书馆手工https://www.mayiwenku.com/p-7109762.html
15.03级毕业论文推荐题目(6月22日更新)1、组织结构图 2、业务流程图或数据流图DFD 3、基本数据项属性表(数据字典) 第二阶段 系统设计 包括系统的总体设计(系统功能结构的划分、系统环境的配置、主要模块勾画出大致的计算机处理流程)、系统的具体物理设计(代码设计、输出设计、输入设计、数据库的概念设计及数据库的逻辑设计、其他设计) https://som.bnuz.edu.cn/info/1016/2621.htm
16.画出该系统的数据流图,数据字典,要求画出顶层图0层图和,.9网上书店系统结构化需求分析(包括数据流图和数据字典)_(2)采用结构化分析方法,画出该系统的数据流图,数据字典,要求画出顶层图、0层图和,.9 完成5.6 中的书店管理系统的结构化设计,给出其结构图,凡霜**凡霜 上传660.5 KB 文件格式 doc 软件工程需求分析 网上书店系统(包括数据流图和数据字典) https://www.coder100.com/index/index/content/id/1006086
17.《软件工程导论》第3章需求分析这一章节非常重要!!!尤其是里面的E-R图、数据流图,状态装换图的画法,非常的重要!!!目录第3章 需求分析3.1 需求分析的任务3.1.1 确定对系统的综合要求https://www.codenong.com/cs106311547/