在平时的软件开发和方案总体设计中,往往需要绘制各种各样的流程图,比如业务流程图、数据流程图、系统流程图等等。由于各种图所反应的侧重点不一样,这三种图所使用的场景也会有差异,本文介绍了各种图的使用场合和绘制方法,以及各种图之间的区别,以便于在具体的应用场景中灵活使用。
首先要搞清楚什么是流程。流程是一个或一系列连续有规律的行动,这些行动以确定的方式发生或执行,促使特定结果的实现。ISO9001:2000质量管理体系标准中给出的定义是:“流程是一组将输入转化为输出的相互关联或相互作用的活动”。流程不可或缺的因素包括六个:参与者(对象)、活动(动作)、次序、输入、输出、标准化。各要素的定义如下所示:参与者(对象):谁在这个流程中?可以是系统,可以是个外部设备,更多的指什么角色。比如客服同时有小A和小B两人,但是若他们的工作性质完全一样,那么在流程图里只需要写一个客服角色就可以了。
活动(动作):一个处理动作,具体做了什么事,比如点餐、结帐等活动。
次序:这些事情发生的前后顺序如何,哪个任务是其他任务的前置条件?比如客人不结帐,就不会产生送他优惠卡的活动。
输入:每项活动开始取决于什么样的输入物或数据,比如做饭的师傅开始做菜时,需要拿到具体的点菜单。
输出:每项活动结束后,会输入什么样的文档或数据传递给下一方,比如师傅做好菜后,如何让负责传菜的人知道菜已经做好?
而流程图是将流程表达清楚的图形,即用图形表示什么对象在什么前置条件下执行了什么操作,产生了什么结果。
接下来对软件开发与设计领域中常用的几种流程图分别介绍如下:
由于信息系统的目标是尽可能解放人在工作中的作用,强调自动化,为了实现自动化,就有必要从用户的视角梳理业务流程是什么样子,通过业务流程的梳理,提供系统了简单扼要的“缩略俯瞰图”,帮助观众快速了解业务如何运转。它包含了几个关键词:谁,什么时候,在什么条件下,做了什么事情,输入什么,输出什么,输出给谁。
业务流程图应该是拿到业务需求(或BRD)后,首先输出的文档,但并不是一成不变的,会在多次讨论中不断补充完善,最后成为整个项目的标杆文件,在构建技术架构和技术分工时,将其作为主要参考。所以,绘制业务流程图时,一定要逻辑清晰,不能遗漏任何一个重要部分。
数据流图,作为一种图形化的设计方法,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。它是从数据的传递和加工角度,以图形方式来表达系统的逻辑功能,数据在系统内部的逻辑流向和逻辑交换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示放大。它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流图绘制说明如下:*DFD中所有的图形符号只限于前述4中图形元素吗,DFD中不可夹带控制流,图上每个符号必须有名字。*顶层DFD必须包括前述4种基本元素,缺一不可,顶层DFD中的数据流必须封闭在外部实体之间。*每个加工至少有一个输入数据流和一个输出数据流。*需按层加工框编号。编号表明了该层加工处在哪一层,以及上下层的父图与子图的对应关系。*规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。即父图与子图的平衡。*数据流程图的绘制一般是从左到右进行。从左侧开始标出外部实体,然后画出由外部实体产生的数据流,再画出处理逻辑、数据流、数据存储等元素及其相互关系,最后在流程图的右侧画出接收信息的系统外部实体。*父图与子图的平衡。子图是对父图中处理逻辑的详细描述,因此父图中数据的输入和输出必须在子数据存储输入/输出协调。数据存储必定有输入数据流和输出数据流,缺少任何一个则意味着遗漏了某些加工。只有流入没有流出,则数据处理无需存在;只有流出没有流入的数据处理不可能满足。
系统流程图是描绘系统物理模型的传统工具,它的基本思想是用图形符号以黑盒子的形式描绘系统理念的每个部件,包括程序,文件,数据库,表格,人工过程等,表达信息在给个部件之间流动的情况,而不是表示对信息进行加工处理的控制过程。系统流程图是在系统分析员在做系统构架阶段,或者说,在接触实际系统时,对未来构建的信息处理系统的一种描述。这种描述是相对简单且完全的,涉及到未来系统中使用的处理部件,如磁盘,显示器,用户输入以及处理过程的先后顺序表示等,标准的系统流程图应该有10种图元。
系统流程图、业务流程图、数据流程图三者区别如下:(1)业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向。所以说业务流程图是一种物理模型。(2)数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。它是一种逻辑模型。打个比方,业务流程图主要是描述业务走向,比如说病人吧,病人首先要去挂号,然后在到医生那里看病开药,然后再到药房领药,然后回家。而数据流程则是描述数据的走向,继续以病人为例,这个时候主要画的是病人挂号系统需要那些表,数据改怎么存,医生看病用到那些表,数据改怎么存等。(3)系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。
1.描述对象不同业务流程图的描述对象是某一具体的业务;数据流程图的描述对象是数据流。
数据流程图是对业务流程的进一步抽象与概括。抽象性表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理和存储;概括性表现在它可以把各种不同业务处理过程联系起来,形成一个整体。
2.功能作用不同业务流程图是一本用图形方式来反映实际业务处理过程的“流水帐”。绘制出这本流水帐对于开发者理顺和优化业务过程是很有帮助的。业务流程图的符号简单明了,易于阅读和理解业务流程。绘制流程图的目的是为了分析业务流程,在对现有业务流程进行分析的基础上进行业务流程重组,产生新的更为合理的业务流程。通过除去不必要的、多余的业务环节;合并重复的环节;增补缺少的必须的环节;确定计算机系统要处理的环节等重要步骤,在绘制流程图的过程中可以发现问题,分析不足,改进业务处理过程。
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题,这些问题有:数据流程不畅,前后数据不匹配,数据处理过程不合理等。通过对这些问题的解决形成一个通畅的数据流程作为今后新系统的数据流程。数据流程图比起业务流程图更为抽象,它舍弃了业务流程图中的一些物理实体,更接近于信息系统的逻辑模型。对于较简单的业务,我们可以省略其业务流程图直接绘制数据流程图。
3.基本符号不同对数据流程图的基本符号解释如下:外部实体表示数据流的始发点或终止点。原则上讲,它不属于数据流程图的核心部分,只是数据流程图的外围环境部分。在实际问题中它可能是人员、计算机外设、系统外部的文件等。在圆形框中用文字注明外部实体的编码属性和名称。数据流是用箭头线及其上的数据表示数据流动的方向,数据流由一个或一组数据项组成。数据存储表示逻辑意义上的数据存储环节,不考虑存储的物理介质和技术手段的数据存储环节。它用一个右边开口的长方形条来表示,图形右部填写存储的数据和数据集的名字,左边填写该数据存储的标志。
处理逻辑加工也称为处理或功能,它包括两方面的内容:一是改变数据结构;二是在原有数据内容基础上增加新的内容,形成新的数据。一般用一个长方形表示处理逻辑,图形下部填写处理的名字,上部填写该处理的标志。
关于业务流程图和数据流程图的基本符号很多教材上都不完全一致,还没有形成一个统一的标准。例如,有的教材上用圆形表示外部实体,有的用矩形表示外部实体。二者所使用的符号不同,但代表的含义都相同。业务流程图中的业务处理和存储这两个符号和数据流程图中的相应的符号基本一致;业务流程图和数据流程图中都有箭头线的符号,但含义不同:业务流程图中的箭头线表示信息流向,它没有名称;数据流程图中的箭头线表示某一数据流,它有名称,通常写在数据流的上方。
4.绘制过程不同业务流程图就是用一些规定的符号及连线来表示某个具体务处理过程。业务流程图的绘制是根据系统详细调查过程中所得的资料,按业务实际处理过程,用规定的符号将它们绘制在同一张图上。它的绘制无严格的规则,只需简明扼要地如实反映实际业务过程。在绘制过程中一般也遵循“自顶向下”的原则。
数据流程图的绘制方法较为复杂,它是按照“自顶向下,逐层求精”的方法进行的,也就是将整个系统当成一个处理功能,画出它和周围实体的数据联系过程,即一个粗略的数据流程图(顶层数据流程图),然后逐层向下分析,直到把系统分解为详细的低层次的数据流程图。
1.业务流程图和数据流程图都是从流程的角度动态地去考察分析对象,都是用图形符号抽象地表示调查结果。2.数据和业务的联系具体表现在:数据流是伴随着业务过程而产生的,它是业务过程的衍生物;数据资料基本上也是按组织结构或业务过程收集的;在数据汇总时,我们也是以业务流程为单位,将同一业务的不同处理步骤中的数据加以集中;数据流程图的绘制遵照业务处理的全过程。3.数据流程图和业务流程图存在一定的对应关系。由业务流程图可以导出相应的数据流程图。有两种思路:一种是先按业务流程图理出的业务流程顺序,然后将相应调查过程中所掌握的数据、表单分离出来,接下来考查数据的流向,加工处理过程和存储,把它们串起来就绘制成一完整的数据流程图;另一种是从业务流程中分离出处理过程,再考查每一个处理过程的输入数据与输出数据,将业务过程中所有的处理过程的输入、输出数据流进行有机的集成就形成了一个完整的数据流程图。