关于系统设计中的流程图
在平时的软件开发和⽅案总体设计中,往往需要绘制各种各样的流程图,⽐如业务流程图、数据流程图、系统流程图等等。由于各种图所反应的侧重点不⼀样,这三种图所使⽤的场景也会有差异,本⽂介绍了各种图的使⽤场合和绘制⽅法,以及各种图之间的区别,以便于在具体的应⽤场景中灵活使⽤。
⾸先要搞清楚什么是流程。流程是⼀个或⼀系列连续有规律的⾏动,这些⾏动以确定的⽅式发⽣或执⾏,促使特定结果的实现。
ISO9001:2000质量管理体系标准中给出的定义是:“流程是⼀组将输⼊转化为输出的相互关联或相互作⽤的活动”。流程不可或缺的因素包括六个:参与者(对象)、活动(动作)、次序、输⼊、输出、标准化。各要素的定义如下所⽰:
参与者(对象):谁在这个流程中?可以是系统,可以是个外部设备,更多的指什么⾓⾊。⽐如客服同时有⼩A和⼩B两⼈,但是若他们的⼯作性质完全⼀样,那么在流程图⾥只需要写⼀个客服⾓⾊就可以了。
活动(动作):⼀个处理动作,具体做了什么事,⽐如点餐、结帐等活动。
次序:这些事情发⽣的前后顺序如何,哪个任务是其他任务的前置条件?⽐如客⼈不结帐,就不会产⽣
送他优惠卡的活动。
输⼊:每项活动开始取决于什么样的输⼊物或数据,⽐如做饭的师傅开始做菜时,需要拿到具体的点菜单。
输出:每项活动结束后,会输⼊什么样的⽂档或数据传递给下⼀⽅,⽐如师傅做好菜后,如何让负责传菜的⼈知道菜已经做好?
标准化:采⽤⼀套标准化的符号传递你的流程图,从⽽使受众更快明⽩。
流程图的要素
⽽流程图是将流程表达清楚的图形,即⽤图形表⽰什么对象在什么前置条件下执⾏了什么操作,产⽣了什么结果。
拍动画⽚的流程
接下来对软件开发与设计领域中常⽤的⼏种流程图分别介绍如下:
业务流程图
由于信息系统的⽬标是尽可能解放⼈在⼯作中的作⽤,强调⾃动化,为了实现⾃动化,就有必要从⽤户的视⾓梳理业务流程是什么样⼦,通过业务流程的梳理,提供系统了简单扼要的“缩略俯瞰图”,帮助观众快速了解业务如何运转。它包含了⼏个关键词:谁,什么时候,在什么条件下,做了什么事情,输⼊什么,输出什么,输出给谁。
业务流程图应该是拿到业务需求(或BRD)后,⾸先输出的⽂档,但并不是⼀成不变的,会在多次讨论中不断补充完善,最后成为整个项⽬的标杆⽂件,在构建技术架构和技术分⼯时,将其作为主要参考。所以,绘制业务流程图时,⼀定要逻辑清晰,不能遗漏任何⼀个重要部分。
与系统流程不同,业务流程更关注于业务本⾝如何运作,讲的是业务故事,包含的是业务规则。⽽系统流程则是满⾜业务流程,实现部分流程或全部流程的信息化和系统化。
表⽰⽅法
⼀般业务流程图⼀般⽤泳道进⾏是泳道表⽰,可以有横向的泳道,也会有纵向的泳道。泳道图在某些⽂档⾥会被称为“以活动为单位的流程图”,浮在泳道中的都是⼀个个活动。能够较好的表现出各个活动之间的关系⼀个各个部门之间的责任。
绘制业务流程图的符号如下:
业务流程图的符号
泳道图的画法:
泳道图画法
⼀个⽰例
通常情况下,⼀个业务需求不仅仅对应⼀个功能需求,⽽是由多个功能需求组成的,举例来说:业务需求是注册,那么功能需求就包括填写信息的正则校验,验证码的⽣成与校验,注册协议查看(和勾选),此外,后台还要有账户⽣成与信息记录的功能,需要⼿机注册的还要有短信的发送与验证功能(邮箱注册同理)。可见,业务需求要求概括精炼,功能需求要求详细具体。⼀个业务需求通常涵盖多个功能需求,涉及前端展⽰、后台记录等多个部分,所以业务流程图通常复杂详细,尽量能够涵盖各种异常情况(每种异常情况都有相应的前、后台解决⽅案)。
业务流程图的绘制思路:
*⾸先将业务按阶段划分,⽐如电商类可以分为下单和⽀付,单车类可以分为提车、骑⾏和停车;
*然后列出每个阶段参与的功能模块,⽐如下单阶段,就有商品查看、登录/注册、信息记录、个⼈中⼼等功能。
*最后按照时间顺序,画出业务需求在各个功能模块之间的流转情况。
*为了输出⼀份完整的业务流程图,⼀般有两个原则:先思考主⼲流程,再思考分⽀流程,主⼲流程逻辑准确,分⽀流程全⾯⽆遗漏;表达清楚后台产⽣的各种判断及相应的前端展⽰,这将作为接⼝设计的重要根据。
下⾯是以电商购物为例绘制的⼀份业务流程图:
电商⽹站购买流程
数据流程图
数据流图,作为⼀种图形化的设计⽅法,⽤来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。它是从数据的传递和加⼯⾓度,以图形⽅式来表达系统的逻辑功能,数据在系统内部的逻辑流向和逻辑交换过程,是结构化系统分析⽅法的主要表达⼯具及⽤于表⽰软件模型的⼀种图⽰放⼤。它是描绘信息流和数据从输⼊移动到输出的过程中所经受的变换。
表⽰⽅法
在DFD中,通常会出现四种基本符号,分别是数据流,加⼯,数据存储和外部实体(数据源和数据终
点)。数据流是具有名字和流向的数据,⽤标有箭头的名字表⽰。数据流是具有名字和流向的数据,加⼯是对数据流的转换,⽤圆圈表⽰。数据存储是可以访问的存储信息,⽤直线段表⽰。外部实体是位于被建模系统之外的信息⽣产者和消费者,是不能由计算机处理的部分,表⽰数据处理的来源和去向。⽤标有名字的⽅框表⽰:
数据流图的表⽰⽅法
数据流图绘制说明如下:
*DFD中所有的图形符号只限于前述4中图形元素吗,DFD中不可夹带控制流,图上每个符号必须有名字。
*顶层DFD必须包括前述4种基本元素,缺⼀不可,顶层DFD中的数据流必须封闭在外部实体之间。
*每个加⼯⾄少有⼀个输⼊数据流和⼀个输出数据流。
*需按层加⼯框编号。编号表明了该层加⼯处在哪⼀层,以及上下层的⽗图与⼦图的对应关系。
*规定任何⼀个数据流⼦图必须与它上⼀层的⼀个加⼯对应,两者的输⼊数据流和输出数据流必须⼀致。即⽗图与⼦图的平衡。
*数据流程图的绘制⼀般是从左到右进⾏。从左侧开始标出外部实体,然后画出由外部实体产⽣的数据流,再画出处理逻辑、数据流、数据存储等元素及其相互关系,最后在流程图的右侧画出接收信息的系统外部实体。
*⽗图与⼦图的平衡。⼦图是对⽗图中处理逻辑的详细描述,因此⽗图中数据的输⼊和输出必须在⼦数据存储输⼊/输出协调。数据存储必定有输⼊数据流和输出数据流,缺少任何⼀个则意味着遗漏了某些加⼯。只有流⼊没有流出,则数据处理⽆需存在;只有流出没有流⼊的数据处理不可能满⾜。
⼀个⽰例
下图是⼀个办理取款⼿续数据流程图的例⼦
数据流图的例⼦
系统流程图
系统流程图是描绘系统物理模型的传统⼯具,它的基本思想是⽤图形符号以⿊盒⼦的形式描绘系统理念的每个部件,包括程序,⽂件,数据库,表格,⼈⼯过程等,表达信息在给个部件之间流动的情况,⽽不是表⽰对信息进⾏加⼯处理的控制过程。系统流程图是在系统分析员在做系统构架阶段,或者说,在接触实际系统时,对未来构建的信息处理系统的⼀种描述。这种描述是相对简单且完全的,
涉及到未来系统中使⽤的处理部件,如磁盘,显⽰器,⽤户输⼊以及处理过程的先后顺序表⽰等,标准的系统流程图应该有10种图元。
⼀个⽰例
系统流程图表⽰
表⽰⽅法
系统流程图的例⼦
各个图之间的区别
系统流程图、业务流程图、数据流程图三者区别如下:
(1)业务流程图是⼀种描述系统内各单位、⼈员之间业务关系、作业顺序和管理信息流向的图表,利⽤它可以帮助分析⼈员出业务流程中的不合理流向。所以说业务流程图是⼀种物理模型。
(2)数据流程图是⼀种能全⾯地描述信息系统逻辑模型的主要⼯具,它可以⽤少数⼏种符号综合地反映出信息在系统中的流动、处理和存储情况。它是⼀种逻辑模型。
打个⽐⽅,业务流程图主要是描述业务⾛向,⽐如说病⼈吧,病⼈⾸先要去挂号,然后在到医⽣那⾥看病开药,然后再到药房领药,然后回家。
⽽数据流程则是描述数据的⾛向,继续以病⼈为例,这个时候主要画的是病⼈挂号系统需要那些表,数据改怎么存,医⽣看病⽤到那些表,数据改怎么存等。
(3)系统流程图⼜叫事务流程图,是在计算机事务处理应⽤进⾏系统分析时常⽤的⼀种描述⽅法(另⼀个是数据流图),它描述了计算机事务处理中从数据输⼊开始到获得输出为⽌,各个处理⼯序的逻辑过程。
业务流程图与数据流程图的区别
1.描述对象不同
业务流程图的描述对象是某⼀具体的业务;数据流程图的描述对象是数据流。
业务是指企业管理中必要且逻辑上相关的、为了完成某种管理功能的⼀系列相关的活动。在系统调研时,通过了解组织结构和业务功能,我们对系统的主要业务有了⼀个⼤概的认识。但由此我们得到的对业务的认识是静态的,是由组织部门映射到业务的。⽽实际的业务是流动的,我们称之为业务流程。⼀项完整的业务流程要涉及到多个部门和多项数据。例如,⽣产业务要涉及从采购到财务,到⽣
产车间,到库存等多个部门;会产⽣从原料采购单,应收付账款,⼊库单等多项数据表单。因此,在考察⼀项业务时我们应将该业务⼀系列的活动即整个过程为考察对象,⽽不仅仅是某项单⼀的活动,这样才能实现对业务的全⾯认识。将⼀项业务处理过程中的每⼀个步骤⽤图形来表⽰,并把所有处理过程按⼀定的顺序都串起来就形成了业务流程图。
数据流程图是对业务流程的进⼀步抽象与概括。抽象性表现在它完全舍去了具体的物质,只剩下数据的流动、加⼯处理和存储;概括性表现在它可以把各种不同业务处理过程联系起来,形成⼀个整体。
2.功能作⽤不同
业务流程图是⼀本⽤图形⽅式来反映实际业务处理过程的“流⽔帐”。绘制出这本流⽔帐对于开发者理顺和优化业务过程是很有帮助的。业务流程图的符号简单明了,易于阅读和理解业务流程。绘制流程图的⽬的是为了分析业务流程,在对现有业务流程进⾏分析的基础上进⾏业务流程重组,产⽣新的更为合理的业务流程。通过除去不必要的、多余的业务环节;合并重复的环节;增补缺少的必须的环节;确定计算机系统要处理的环节等重要步骤,在绘制流程图的过程中可以发现问题,分析不⾜,改进业务处理过程。
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的⽬的就是要发现和解决数据流通中的问题,这些问题有:数据流程不畅,前后数据不匹配,数据处理过程不合理等。
通过对这些问题的解决形成⼀个通畅的数据流程作为今后新系统的数据流程。数据流程图⽐起业务流程图更为抽象,它舍弃了业务流程图中的⼀些物理实体,更接近于信息系统的逻辑模型。对于较简单的业务,我们可以省略其业务流程图直接绘制数据流程图。
3.基本符号不同
对数据流程图的基本符号解释如下:流程图转换为ns图
外部实体表⽰数据流的始发点或终⽌点。原则上讲,它不属于数据流程图的核⼼部分,只是数据流程图的外围环境部分。在实际问题中它可能是⼈员、计算机外设、系统外部的⽂件等。在圆形框中⽤⽂字注明外部实体的编码属性和名称。
数据流是⽤箭头线及其上的数据表⽰数据流动的⽅向,数据流由⼀个或⼀组数据项组成。
数据存储表⽰逻辑意义上的数据存储环节,不考虑存储的物理介质和技术⼿段的数据存储环节。它⽤⼀个右边开⼝的长⽅形条来表⽰,图形右部填写存储的数据和数据集的名字,左边填写该数据存储的标志。
处理逻辑加⼯也称为处理或功能,它包括两⽅⾯的内容:⼀是改变数据结构;⼆是在原有数据内容基础上增加新的内容,形成新的数据。⼀般⽤⼀个长⽅形表⽰处理逻辑,图形下部填写处理的名字,上部填
写该处理的标志。
关于业务流程图和数据流程图的基本符号很多教材上都不完全⼀致,还没有形成⼀个统⼀的标准。例如,有的教材上⽤圆形表⽰外部实体,有的⽤矩形表⽰外部实体。⼆者所使⽤的符号不同,但代表的含义都相同。业务流程图中的业务处理和存储这两个符号和数据流程图中的相应的符号基本⼀致;业务流程图和数据流程图中都有箭头线的符号,但含义不同:业务流程图中的箭头线表⽰信息流向,它没有名称;数据流程图中的箭头线表⽰某⼀数据流,它有名称,通常写在数据流的上⽅。
4.绘制过程不同
业务流程图就是⽤⼀些规定的符号及连线来表⽰某个具体务处理过程。业务流程图的绘制是根据系统详细调查过程中所得的资料,按业务实际处理过程,⽤规定的符号将它们绘制在同⼀张图上。它的绘制⽆严格的规则,只需简明扼要地如实反映实际业务过程。在绘制过程中⼀般也遵循“⾃顶向下”的原则。
数据流程图的绘制⽅法较为复杂,它是按照“⾃顶向下,逐层求精”的⽅法进⾏的,也就是将整个系统当成⼀个处理功能,画出它和周围实体的数据联系过程,即⼀个粗略的数据流程图(顶层数据流程图),然后逐层向下分析,直到把系统分解为详细的低层次的数据流程图。
业务流程图和数据流程图的联系
1.业务流程图和数据流程图都是从流程的⾓度动态地去考察分析对象,都是⽤图形符号抽象地表⽰调查结果。
2.数据和业务的联系具体表现在:数据流是伴随着业务过程⽽产⽣的,它是业务过程的衍⽣物;数据资料基本上也是按组织结构或业务过程收集的;在数据汇总时,我们也是以业务流程为单位,将同⼀业务的不同处理步骤中的数据加以集中;数据流程图的绘制遵照业务处理的全过程。
3.数据流程图和业务流程图存在⼀定的对应关系。由业务流程图可以导出相应的数据流程图。有两种思路:⼀种是先按业务流程图理出的业务流程顺序,然后将相应调查过程中所掌握的数据、表单分离出来,接下来考查数据的流向,加⼯处理过程和存储,把它们串起来就绘制成⼀完整的数据流程图;另⼀种是从业务流程中分离出处理过程,再考查每⼀个处理过程的输⼊数据与输出数据,将业务过程中所有的处理过程的输⼊、输出数据流进⾏有机的集成就形成了⼀个完整的数据流程图。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论