关于系统设计中的流程图

在平时的软件开发和方案总体设计中,往往需要绘制各种各样的流程图,比如业务流程图、数据流程图、系统流程图等等。由于各种图所反应的侧重点不一样,这三种图所使用的场景也会有差异,本文介绍了各种图的使用场合和绘制方法,以及各种图之间的区别,以便于在具体的应用场景中灵活使用。

首先要搞清楚什么是流程。流程是一个或一系列连续有规律的行动,这些行动以确定的方式发生或执行,促使特定结果的实现。ISO9001:2000质量管理体系标准中给出的定义是:“流程是一组将输入转化为输出的相互关联或相互作用的活动”。流程不可或缺的因素包括六个:参与者(对象)、活动(动作)、次序、输入、输出、标准化。各要素的定义如下所示:
参与者(对象):谁在这个流程中?可以是系统,可以是个外部设备,更多的指什么角色。比如客服同时有小A和小B两人,但是若他们的工作性质完全一样,那么在流程图里只需要写一个客服角色就可以了。

活动(动作):一个处理动作,具体做了什么事,比如点餐、结帐等活动。

次序:这些事情发生的前后顺序如何,哪个任务是其他任务的前置条件?比如客人不结帐,就不会产生送他优惠卡的活动。

输入:每项活动开始取决于什么样的输入物或数据,比如做饭的师傅开始做菜时,需要拿到具体的点菜单。

输出:每项活动结束后,会输入什么样的文档或数据传递给下一方,比如师傅做好菜后,如何让负责传菜的人知道菜已经做好?

标准化:采用一套标准化的符号传递你的流程图,从而使受众更快明白。

而流程图是将流程表达清楚的图形,即用图形表示什么对象在什么前置条件下执行了什么操作,产生了什么结果。

接下来对软件开发与设计领域中常用的几种流程图分别介绍如下:

业务流程图

由于信息系统的目标是尽可能解放人在工作中的作用,强调自动化,为了实现自动化,就有必要从用户的视角梳理业务流程是什么样子,通过业务流程的梳理,提供系统了简单扼要的“缩略俯瞰图”,帮助观众快速了解业务如何运转。它包含了几个关键词:谁,什么时候,在什么条件下,做了什么事情,输入什么,输出什么,输出给谁。

业务流程图应该是拿到业务需求(或BRD)后,首先输出的文档,但并不是一成不变的,会在多次讨论中不断补充完善,最后成为整个项目的标杆文件,在构建技术架构和技术分工时,将其作为主要参考。所以,绘制业务流程图时,一定要逻辑清晰,不能遗漏任何一个重要部分。

与系统流程不同,业务流程更关注于业务本身如何运作,讲的是业务故事,包含的是业务规则。而系统流程则是满足业务流程,实现部分流程或全部流程的信息化和系统化。

表示方法

一般业务流程图一般用泳道进行是泳道表示,可以有横向的泳道,也会有纵向的泳道。泳道图在某些文档里会被称为“以活动为单位的流程图”,浮在泳道中的都是一个个活动。能够较好的表现出各个活动之间的关系一个各个部门之间的责任。
绘制业务流程图的符号如下:

泳道图的画法:

一个示例

通常情况下,一个业务需求不仅仅对应一个功能需求,而是由多个功能需求组成的,举例来说:业务需求是注册,那么功能需求就包括填写信息的正则校验,验证码的生成与校验,注册协议查看(和勾选),此外,后台还要有账户生成与信息记录的功能,需要手机注册的还要有短信的发送与验证功能(邮箱注册同理)。可见,业务需求要求概括精炼,功能需求要求详细具体。一个业务需求通常涵盖多个功能需求,涉及前端展示、后台记录等多个部分,所以业务流程图通常复杂详细,尽量能够涵盖各种异常情况(每种异常情况都有相应的前、后台解决方案)。

业务流程图的绘制思路:
*首先将业务按阶段划分,比如电商类可以分为下单和支付,单车类可以分为提车、骑行和停车;
*然后列出每个阶段参与的功能模块,比如下单阶段,就有商品查看、登录/注册、信息记录、个人中心等功能。
*最后按照时间顺序,画出业务需求在各个功能模块之间的流转情况。
*为了输出一份完整的业务流程图,一般有两个原则:先思考主干流程,再思考分支流程,主干流程逻辑准确,分支流程全面无遗漏;表达清楚后台产生的各种判断及相应的前端展示,这将作为接口设计的重要根据。

下面是以电商购物为例绘制的一份业务流程图:

数据流程图

数据流图,作为一种图形化的设计方法,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。它是从数据的传递和加工角度,以图形方式来表达系统的逻辑功能,数据在系统内部的逻辑流向和逻辑交换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示放大。它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。

表示方法

在DFD中,通常会出现四种基本符号,分别是数据流,加工,数据存储和外部实体(数据源和数据终点)。数据流是具有名字和流向的数据,用标有箭头的名字表示。数据流是具有名字和流向的数据,加工是对数据流的转换,用圆圈表示。数据存储是可以访问的存储信息,用直线段表示。外部实体是位于被建模系统之外的信息生产者和消费者,是不能由计算机处理的部分,表示数据处理的来源和去向。用标有名字的方框表示:

数据流图绘制说明如下:
*DFD中所有的图形符号只限于前述4中图形元素吗,DFD中不可夹带控制流,图上每个符号必须有名字。
*顶层DFD必须包括前述4种基本元素,缺一不可,顶层DFD中的数据流必须封闭在外部实体之间。
*每个加工至少有一个输入数据流和一个输出数据流。
*需按层加工框编号。编号表明了该层加工处在哪一层,以及上下层的父图与子图的对应关系。
*规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。即父图与子图的平衡。
*数据流程图的绘制一般是从左到右进行。从左侧开始标出外部实体,然后画出由外部实体产生的数据流,再画出处理逻辑、数据流、数据存储等元素及其相互关系,最后在流程图的右侧画出接收信息的系统外部实体。
*父图与子图的平衡。子图是对父图中处理逻辑的详细描述,因此父图中数据的输入和输出必须在子数据存储输入/输出协调。数据存储必定有输入数据流和输出数据流,缺少任何一个则意味着遗漏了某些加工。只有流入没有流出,则数据处理无需存在;只有流出没有流入的数据处理不可能满足。

一个示例

下图是一个办理取款手续数据流程图的例子

系统流程图

系统流程图是描绘系统物理模型的传统工具,它的基本思想是用图形符号以黑盒子的形式描绘系统理念的每个部件,包括程序,文件,数据库,表格,人工过程等,表达信息在给个部件之间流动的情况,而不是表示对信息进行加工处理的控制过程。系统流程图是在系统分析员在做系统构架阶段,或者说,在接触实际系统时,对未来构建的信息处理系统的一种描述。这种描述是相对简单且完全的,涉及到未来系统中使用的处理部件,如磁盘,显示器,用户输入以及处理过程的先后顺序表示等,标准的系统流程图应该有10种图元。

一个示例

表示方法

各个图之间的区别

系统流程图、业务流程图、数据流程图三者区别如下:
(1)业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向。所以说业务流程图是一种物理模型。
(2)数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。它是一种逻辑模型。
打个比方,业务流程图主要是描述业务走向,比如说病人吧,病人首先要去挂号,然后在到医生那里看病开药,然后再到药房领药,然后回家。
而数据流程则是描述数据的走向,继续以病人为例,这个时候主要画的是病人挂号系统需要那些表,数据改怎么存,医生看病用到那些表,数据改怎么存等。
(3)系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。

业务流程图与数据流程图的区别

1.描述对象不同
业务流程图的描述对象是某一具体的业务;数据流程图的描述对象是数据流。

业务是指企业管理中必要且逻辑上相关的、为了完成某种管理功能的一系列相关的活动。在系统调研时,通过了解组织结构和业务功能,我们对系统的主要业务有了一个大概的认识。但由此我们得到的对业务的认识是静态的,是由组织部门映射到业务的。而实际的业务是流动的,我们称之为业务流程。一项完整的业务流程要涉及到多个部门和多项数据。例如,生产业务要涉及从采购到财务,到生产车间,到库存等多个部门;会产生从原料采购单,应收付账款,入库单等多项数据表单。因此,在考察一项业务时我们应将该业务一系列的活动即整个过程为考察对象,而不仅仅是某项单一的活动,这样才能实现对业务的全面认识。将一项业务处理过程中的每一个步骤用图形来表示,并把所有处理过程按一定的顺序都串起来就形成了业务流程图。

数据流程图是对业务流程的进一步抽象与概括。抽象性表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理和存储;概括性表现在它可以把各种不同业务处理过程联系起来,形成一个整体。

2.功能作用不同
业务流程图是一本用图形方式来反映实际业务处理过程的“流水帐”。绘制出这本流水帐对于开发者理顺和优化业务过程是很有帮助的。业务流程图的符号简单明了,易于阅读和理解业务流程。绘制流程图的目的是为了分析业务流程,在对现有业务流程进行分析的基础上进行业务流程重组,产生新的更为合理的业务流程。通过除去不必要的、多余的业务环节;合并重复的环节;增补缺少的必须的环节;确定计算机系统要处理的环节等重要步骤,在绘制流程图的过程中可以发现问题,分析不足,改进业务处理过程。

数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题,这些问题有:数据流程不畅,前后数据不匹配,数据处理过程不合理等。通过对这些问题的解决形成一个通畅的数据流程作为今后新系统的数据流程。数据流程图比起业务流程图更为抽象,它舍弃了业务流程图中的一些物理实体,更接近于信息系统的逻辑模型。对于较简单的业务,我们可以省略其业务流程图直接绘制数据流程图。

3.基本符号不同
对数据流程图的基本符号解释如下:
外部实体表示数据流的始发点或终止点。原则上讲,它不属于数据流程图的核心部分,只是数据流程图的外围环境部分。在实际问题中它可能是人员、计算机外设、系统外部的文件等。在圆形框中用文字注明外部实体的编码属性和名称。
数据流是用箭头线及其上的数据表示数据流动的方向,数据流由一个或一组数据项组成。
数据存储表示逻辑意义上的数据存储环节,不考虑存储的物理介质和技术手段的数据存储环节。它用一个右边开口的长方形条来表示,图形右部填写存储的数据和数据集的名字,左边填写该数据存储的标志。

处理逻辑加工也称为处理或功能,它包括两方面的内容:一是改变数据结构;二是在原有数据内容基础上增加新的内容,形成新的数据。一般用一个长方形表示处理逻辑,图形下部填写处理的名字,上部填写该处理的标志。

关于业务流程图和数据流程图的基本符号很多教材上都不完全一致,还没有形成一个统一的标准。例如,有的教材上用圆形表示外部实体,有的用矩形表示外部实体。二者所使用的符号不同,但代表的含义都相同。业务流程图中的业务处理和存储这两个符号和数据流程图中的相应的符号基本一致;业务流程图和数据流程图中都有箭头线的符号,但含义不同:业务流程图中的箭头线表示信息流向,它没有名称;数据流程图中的箭头线表示某一数据流,它有名称,通常写在数据流的上方。

4.绘制过程不同
业务流程图就是用一些规定的符号及连线来表示某个具体务处理过程。业务流程图的绘制是根据系统详细调查过程中所得的资料,按业务实际处理过程,用规定的符号将它们绘制在同一张图上。它的绘制无严格的规则,只需简明扼要地如实反映实际业务过程。在绘制过程中一般也遵循“自顶向下”的原则。

数据流程图的绘制方法较为复杂,它是按照“自顶向下,逐层求精”的方法进行的,也就是将整个系统当成一个处理功能,画出它和周围实体的数据联系过程,即一个粗略的数据流程图(顶层数据流程图),然后逐层向下分析,直到把系统分解为详细的低层次的数据流程图。

业务流程图和数据流程图的联系

1.业务流程图和数据流程图都是从流程的角度动态地去考察分析对象,都是用图形符号抽象地表示调查结果。
2.数据和业务的联系具体表现在:数据流是伴随着业务过程而产生的,它是业务过程的衍生物;数据资料基本上也是按组织结构或业务过程收集的;在数据汇总时,我们也是以业务流程为单位,将同一业务的不同处理步骤中的数据加以集中;数据流程图的绘制遵照业务处理的全过程。
3.数据流程图和业务流程图存在一定的对应关系。由业务流程图可以导出相应的数据流程图。有两种思路:一种是先按业务流程图理出的业务流程顺序,然后将相应调查过程中所掌握的数据、表单分离出来,接下来考查数据的流向,加工处理过程和存储,把它们串起来就绘制成一完整的数据流程图;另一种是从业务流程中分离出处理过程,再考查每一个处理过程的输入数据与输出数据,将业务过程中所有的处理过程的输入、输出数据流进行有机的集成就形成了一个完整的数据流程图。

参考文献

http://www.jianshu.com/p/52f671846f26
http://blogread.cn/it/article/5417?f=sr
http://blogread.cn/it/article/5770

(0)

相关推荐

  • 工作流引擎技术介绍-BPMN2.0

    将BPMN2.0放一章单独讲,是因为不管是个人接触到的流程开发人员或者技术交流群里讨论交流,大部分人都没了解BPMN2.0标准,学习过程仅仅是通过百度,了解到几个基础元素作用,文档也不会看.不了解,自 ...

  • 细数软件工程各阶段必不可少的那些图

    一.前言 软件工程中规定,软件生命周期由软件定义.软件开发和运行维护(也称为软件维护)3个时期组成,每一个时期又进一步划分为若干个阶段. 软件定义时期包括问题定义.可行性研究.需求分析三个阶段. 软件 ...

  • 手把手教你如何画好标书中的流程图

    近日,周围很多的小伙伴包括而后同学自己都「深陷」国自然中,无法自拔.国自然标书的撰写大概是每年 2-3 月学术型研究生博士生和各 PI 都在做的头等大事.而后同学身为研二的学硕,在组内缺人的情况下也不 ...

  • 大型综合医院建筑暖通空调系统设计中的一些问题

    随着国家经济持续快速发展以及政府对民生问题的高度重视,我国的医院建设处在高速发展阶段,大型综合医院越来越多,单体规模动辄5~ 6万m2,10多万m2 的规模也不鲜见. 大型综合医院建筑布局复杂,特殊功 ...

  • 《建筑防烟排烟系统》防烟系统设计中的一般规定

      3.1.4  建筑地下部分的防烟楼梯间前室及消防电梯前室,当无自然通风条件或自然通风不符合要求时,应采用机械加压送风系统.   3.1.5  防烟楼梯间及其前室的机械加压送风系统的设置应符合下列规 ...

  • 控制系统设计中的IO清册怎么做?

    导  读 控制系统设计是每个工控工程师必须掌握的基本技能,IO清册也就是我们常说的点数统计是首先要做的工作. 一般控制系统点数通常由设计院统计提供,系统点数是仪表专业I/O点数.电气专业I/O点数和控 ...

  • 供配电系统设计中怎么计算短路电流?

    - [ END ] - 感谢您对电力讲坛的关注 更多电力知识,请返回公众号点击文章回顾查阅! END

  • 变频调速系统设计中问题分析(1)

    摘要:文中分析了变频调速系统的效率,阐述了变频调速系统中的变频器容量及电动机的选择原则,并对系统实际应用中的问题提出改进措施. 关键词:效率分析  系统设计  改善措施 1.概述 交流变频调速技术发展 ...

  • 变频调速系统设计中问题分析(2)

    3.变频调速设计中应注意的问题 3.1负荷匹配问题 机泵负荷最大节能是选用型号.容量与实际负荷相匹配,其中包括机泵与所配电动机的匹配,要避免"大马拉小车",一般设计裕量应控制在10 ...

  • 借助流程图来分析多层IF嵌套中的逻辑关系(菜鸟必看!)

    公众号回复2016   下载office2016 IF函数是我们日常使用较多的一个函数,往往用来判断各种逻辑关系并且得到对应的结果,单独使用一个IF函数,或者两个IF进行嵌套使用,通常比较容易,但是当 ...

  • 系统开发中安全控制要求落地(中):系统设计、系统实现

    系统开发安全控制要求落地围绕着项目周期进行,包括项目准备.项目启动.系统设计.系统实现.上线部署.项目结项六个阶段.本篇内容包含系统设计.系统实现两个阶段的落地工作. 系统设计-安全需求 1.系统需求 ...