什么是流程图?

 

设计和文档化是一个过程,需要将不同的步骤从开始到结束都绘制出来。在这种情况下,一个错误就会导致整个系统崩溃,造成时间、金钱、资本设备的重大损失,甚至可能威胁到执行该过程的人力的安全。因此,构建流程图是为了设计和记录的一种方法。

流程图是一个程序的逻辑步骤顺序的图解表示。流程图使用简单的几何图形来描述过程,用箭头来显示关系和过程/数据流。

流程图是一种描述过程、系统或计算机算法的图表。它们被广泛用于多个领域,以清晰、易懂的图表来记录、研究、计划、改进和沟通通常复杂的过程,也用于表示工作流程、程序、过程和表示算法。流程图使用矩形、椭圆形、菱形和潜在的许多其他形状来定义步骤的类型,同时使用连接箭头来定义流程和顺序。它们的范围从简单的手绘图表到全面的计算机绘制的图表,描述了多个步骤和路线。如果我们考虑到所有各种形式的流程图,它们是地球上最常见的图表之一,被众多领域的技术人员和非技术人员使用。流程图有时被称为更专业的名称,如Process Flowchart, Process Map, Functional Flowchart, Business Process Mapping, Business Process Modeling and Notation (BPMN),  or Process Flow Diagram (PFD)。它们与其他流行的图表有关,如Data Flow Diagrams(DFDs)和统一建模语言(UML)活动图(Activity Diagrams)。

下面就是一个最简单的流程图:

历史

记录商业流程的流程图在20世纪20年代和30年代开始使用。1921年,工业工程师Frank和Lillian Gilbreth向美国机械工程师协会(ASME)介绍了 "流程图"。 20世纪30年代初,工业工程师艾伦-H-摩根森使用Gilbreth的工具向其公司的业务人员介绍了关于使工作更有效率的会议。 20世纪40年代,Morgensen的两个学生Art Spinanger和Ben S. Graham更广泛地传播这些方法。Spinanger将工作简化方法介绍给了宝洁公司(Procter and Gamble)。Graham是标准注册工业公司的董事,他将流程图改编为信息处理。1947年,ASME采用了流程图的符号系统,源自Gilbreths的原始工作。

同样在40年代末,Herman Goldstine和John Van Neumann使用流程图来开发计算机程序,这种做图法很快在计算机程序和各种算法中变得越来越流行。流程图今天仍然被用于编程,尽管伪代码,一种旨在供人阅读的文字和编码语言的组合,经常被用来描述更深层次的细节,并更接近最终产品。

在日本,石川薰(1915-1989)是制造业质量举措的关键人物,他将流程图与直方图、检查表和因果图等补充工具一起命名为质量控制的关键工具之一,现在通常称为石川图。

流程图的目的

流程图是用来记录、设计和描述一个过程、程序或算法的。流程图有助于描绘上述内容,以可视化的方式描述流程,并控制资源。流程图被用来沟通各个领域的流程。演示流程图可以作为一种工具,将信息分解并向观众清楚地解释,使其易于理解和遵循。

流程图的符号

以下是绘制流程图时使用的一些常用符号(symbol), 还有其名字和目的(name & purpose):

- Terminal/Terminator/Start/Stop

在算法的开始和结束时使用,显示程序的开始和结束。

- Process

这是一个矩形的形状,用于表示一组具有形式、位置、数据、价值等变化的操作。它是流程图中表示的行动步骤或过程。

- Decision

流程图中的决策符号以钻石形状表示,带有一个yes/no或true/false的问题或测试,决定了程序的执行路径。

- Document

文件符号代表一个或多个文件。对于单个文件,使用单个波浪形矩形,而堆叠的波浪形矩形形状代表多个文件。

- Data, or Input/Output

菱形的输入/输出符号表示数据的输入或输出。

- Stored Data / Data File

- Flow Arrow / Flow line

显示不同形状之间的关系。

- Comment or Annotation ( 左边一种,右边一种,也有其他方式添加注释)

这个开放的矩形形状表示流程图中某个步骤的额外信息。

- Predefined process

这个符号有一个矩形的形状,两边有垂直的边缘,表示图表中的是一个子程序或预定义过程。

- On-page connector/reference

用一个小圆圈表示,里面时数字或字母,用来连接流程图的两个或多个部分,它们在同一页上。

如下图所示:

- Off-page connector/reference

连接分布在不同页面上的流程图的两个部分。

- Manual Operation / 手动操作:

流程图中的梯形符号代表需要手动的操作或过程调整。

- Preparation or Initialization/准备或初始化:

这个拉长的六边形符号在初始化一个程序或设置一个开关时使用。

计算机编程/算法的流程图

作为数据流的可视化表示,流程图在编写程序或算法并向他人解释或与他人合作时非常有用。你可以使用一个算法流程图,在开始编写程序代码之前,阐明一个程序背后的逻辑。它可以帮助组织整体大局的思考,并在编码时提供一个指南。更具体地说,流程图可以:

- 展示代码的组织方式。

- 可视化程序中的代码执行。

- 显示一个网站或应用程序的结构。

- 了解用户如何浏览一个网站或程序。

这些是在开发计算机流程图时需要记住的几点 -

- 流程图只能有一个开始和一个停止符号

- 页面上的连接器用数字来表示

- 页面外的连接器用字母来表示

- 流程的一般流向是从上到下或从左到右

- 箭头不应相互交叉

下面是一个计算两个数字的平均值的流程图:

通常,程序员可能会写伪代码,这是一种自然语言和计算机语言的结合,能够被人们阅读。这可能比流程图更详细,可以作为流程图的替代品或作为实际代码的下一步。

计算机软件中使用的相关图表包括:

- 统一建模语言(UML)。这是一种在软件工程中用于建模的通用语言。

- Nassi-Shneiderman图。用于结构化计算机编程。以Isaac Nassi和Ben Shneiderman命名,他们于1972年在SUNY-Stony Brook开发了它。也叫Structograms。

- DRAKON图表。DRAKON是一种算法的可视化编程语言,用于制作流程图。

流程图在众多领域中的应用

除了计算机编程,流程图在许多不同的领域也有许多用途。

这些领域包括教育、销售和营销、商务、制造、工程等。

- 记录和分析一个过程。

- 为提高效率和质量而对一个过程进行标准化。

- 方便一个流程的沟通,以便组织的其他部门的培训或理解。

- 识别流程中的瓶颈、冗余和不必要的步骤并加以改进。

- 计划课程作业和学术要求。

- 创建一个课程计划或口头报告。

- 组织一个小组或个人项目。

- 展示一个法律或民事程序,如选民登记。

- 计划和组织创意写作,如歌词或诗歌。

- 展示文学和电影的人物发展。

- 表现算法或逻辑谜题的流程。

- 理解一个科学过程,如克雷布斯循环(Krebs cycle)。

- 绘制解剖学过程,如消化。

- 描绘出疾病/障碍的症状和治疗方法。

- 用来沟通假设或理论,如马斯洛的需求层次。

- 描绘出调查的流程。

- 绘制销售流程图。

- 规划研究策略。

- 显示注册流程。

- 传播沟通政策,如紧急公关(PR: public relation)计划。

- 了解订单和采购流程。

- 表现一个员工的任务或日常工作。

- 了解用户在网上或实体店中的足迹。

- 制定一个商业计划或产品实现计划。

- 记录为审计做准备的过程,包括为了遵守法规,例如遵守萨班斯-奥克斯利法案(under the Sarbanes-Oxley Act)。

- 记录准备出售或合并的过程。

- 表示一个产品的物理或化学构成。

- 说明从头到尾的制造过程。

- 发现并解决制造或采购过程中的低效率问题。

- 表现工艺流程或系统流程。

- 设计和更新化学和工厂流程。

- 评估一个结构的生命周期。

- 绘制逆向工程流程图。

- 展示一个新结构或产品的设计和原型阶段。

更多流程图技巧

- 牢记你的听众,在你的图表中为他们展示细节。清晰的沟通是流程图的一个关键目标。

- 如果你所绘制的流程涉及到不同的团队或部门,可以考虑使用泳道图(Swimlane Diagram)来明确划分责任和交接。

- 使用页内或跨页连接器来 "编辑 "你的图表,使其更好的展现流程的逻辑。这可以让你把图表分解成独立的页面,并且仍然很流畅。

关于使用泳道图的例子:

流程图的类型

不同的作者用不同的术语描述各种类型的流程图。这些人包括为此著书发表的专家,如Alan B. Sterneckert, Andrew Veronis, Marilyn Bohl和Mark A. Fryman。

Sterneckert在他2003年出版的《关键事件管理》一书中,列出了四种流行的流程图类型,围绕着流程控制的概念而不是流程本身:

- 文件流程图:这些 "目的是显示通过系统组件的文件流的现有控制。该图从左到右阅读,记录了文件在各个业务部门的流动。

- 数据流图:这些图表显示了 "在一个系统中对数据流的控制。数据流图主要用于显示数据在系统中传输的渠道,而不是相关的控制如何流动。

- 系统流程图。这些 "显示数据流向和通过系统的主要组成部分,如数据输入、程序、存储介质、处理器和通信网络"。系统流程图显示物理或资源层面的控制。这种类型的图表显示了系统内的数据流以及根据控制事件而做出的决定。

- 程序流程图。这些图表显示了 "系统内部对一个程序的控制"。

Veronis,在他1978年出版的《微处理器:设计与应用》一书中,根据范围和详细程度概述了三种流程图类型。

- 系统流程图:确定要使用的设备。

- 一般流程图:显示概要

- 详细流程图:增加了细节。

Bohl在她1978年出版的《程序员指南》一书中,只列举了两种:

- 系统流程图

- 程序流程图。

但Fryman在他2001年出版的《质量和流程改进》一书中,从更多的商业角度而不是计算机角度,对这些类型进行了多种区分:

- 决策流程图。

- 逻辑流程图。

- 系统流程图。

- 产品流程图。

- 工艺流程图。

其他由他人定义的流程图类型包括:

- 泳道图:又称泳道流程图。划分谁在跨团队过程中做什么。

- 工作流程图:用于记录工作流程,通常涉及办公室的任务、文件和信息。

- 事件驱动流程链(EPC)流程图:记录或规划一个业务流程。

- 规范和描述语言(SDL)流程图:使用三个基本组成部分对计算机算法进行头脑风暴:系统定义、块和过程。

还有其他的图有时也被认为是流程图的类型:

- 数据流图(DFD / Data Flow Diagram):绘制出任何系统或过程的信息流。

- 工艺流程图(PFD / Process Flow Diagram):又称Process Flowchart。说明一个工业工厂的主要部件之间的关系。

- 业务流程模型和符号(BPMN 2.0 / Business Process Model and Notation):为计划中的业务流程的步骤建模。

近年来,流程图已经演变成其他形式,包括统一建模语言(UML)的活动图(Activity Diagram)和事件驱动的流程链(EPC/Event-driven Process Chain)图。

如何制作流程图

你可以按照下面提到的五个基本步骤来构建一个专业的流程图。

第1步。确定流程图的目的

在你开始构建你的流程图之前,你应该明确其目的并收集信息。流程图是否应该帮助员工理解或执行一个过程,确定工作流程,促进操作或常规任务,或显示执行程序或算法的各种步骤?

第2步:选择一个流程图设计和模板

根据你的需要,你可以在各种平台上挑选不同的流程图模板。例如,要创建一个PowerPoint的流程图的演示,你可以选择一个模板。

第3步:根据正确的符号制作流程图

有时,流程图也会使用与标准流程图格式不相符的各种图像和图标来构建。例如,"法案如何成为法律的流程图 "可能包含与司法机构、议会有关的图标和符号,或其他可能在制作流程图信息图时显得醒目的图标。然而,标准的格式是按照正确的顺序使用符号,比如用标准的符号来表示开始、过程、条件、连接等。

第4步:确保你的流程图有正确的标签和连接

使用正确的符号和必要的术语是必要的,以确保流程图能够被正确阅读和理解。这对流程的执行和正确理解至关重要。在构建用于流程或程序的流程图时,即使是一个轻微的错误,有时也会产生可怕的后果。导致时间、金钱、设备的损失,影响人力。如果你使用流程图制作工具,通常流程图工具会提供文本占位符。用实际的文本来替换默认的标签是很有必要的。

第5步。使你的流程图风格化

为了使流程图易于理解和引人注目,你可以在不影响图表标准化的情况下,以视觉上令人愉悦的方式添加颜色、文本和图标。你可以使用颜色编码不同符号,以及不同的字体风格和时尚版本的流程图图标,使你的图表容易看懂。

一些建议

- 可以直接使用PPT、Word、Excel等工具来制作流程图,当然Visvo也可以

- 还可以使用UML建模工具来制作流程图,和活动图类似。还有些开发IDE里自带UML绘制功能或可以安装相应插件。

- 或者在网上搜索在线流程图,直接在网页上就可以制作,国内国外的网站都有,功能强大、界面美观,还能在线存储。

参考:

What is a Flowchart | Lucidcharthttps://www.lucidchart.com/pages/what-is-a-flowchart-tutorial/#discovery__top

https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_flowchart_elements.htm#:~:text=On%2Dpage%20Connector,are%20spread%20over%20different%20pageshttps://www.tutorialspoint.com/programming_methodologies/programming_methodologies_flowchart_elements.htm#:~:text=On-page%20Connector%2Care%20spread%20over%20different%20pages

Constructing a Flowchart - FAQs, Examples and PowerPoint Templateshttps://slidemodel.com/how-to-make-a-flowchart/

https://youtu.be/SWRDqTx8d4khttps://youtu.be/SWRDqTx8d4k

码农的自我修养 - 流程图 Flowchart相关推荐

  1. 码农的自我修养之 软件危机和软件过程

    码农的自我修养之软件危机和软件过程 软件危机和软件过程 没有银弹 基于组件的软件工程方法 再论没有银弹 基于组件的软件供应链 软件危机的根本问题 软件危机的展望 软件过程模型 软件的生命周期概述 描述 ...

  2. 高效能码农的自我修养:5本书教你怎样科学学习,拒绝无用功

    导读:作为一枚苦逼的码农,你需要学习很多东西.但在开始的开始,你学会学习了吗?科学.高效的学习方法,会让你事半功倍.今天书单姐推荐5本书,为你带来26种黄金学习法则.11个高效能学习习惯.效率加法的2 ...

  3. 论一个糟糕的大数据码农的自我修养

    幸福的家庭都是一样的,不幸的家庭各有各的不幸 - 论一个糟糕的大数据平台工程师的自我修养 本来想写写如何成为一名优秀的大数据平台开发工程师,但说实话,这个话题太简单了!虽然我没有被Jeff dean大 ...

  4. 码农的自我修养 - 关于MinGW和Cygwin

    Windows下使用GCC套件,并且模拟Unix/Linux的操作环境,一般使用的是MinGW和Cygwin. 让我们来一起认识一下. MinGW Minimalist GNU for Windows ...

  5. 三十年软件开发之路:老码农的自我修养!

    [CSDN编者按]"千帆过尽仍少年",对于程序员来说,保留技术初心.不断提升实力是夯实自己的不二法则.而本文的作者,作为一名有着三十多年开发经验的"老"程序员, ...

  6. 码农的自我修养 - 关于ARM你需要知道的

    据ARM公司的工程师说,第九代Arm处理器架构可以在这十年的剩余时间里支持所有的分布式计算.Arm的崛起是否意味着我们所知道的中央处理器的终结? 关于Arm处理器架构在任何计算或通信市场--智能手机. ...

  7. 码农的自我修养 - 指令集架构种类

    指令集架构instruction set architecture (ISA),这是一个电脑模型的概括,有时也叫做计算机架构. ISA的具体实现有很多种,下面会介绍.不同的ISA实现在性能.物理空间和 ...

  8. 码农的自我修养 - ARM V9架构的巨大价值

    ARM'S V9 ARCHITECTURE EXPLAINS WHY NVIDIA NEEDS TO BUY IT 我们中的许多人一直在绞尽脑汁,为什么Nvidia会花费巨资--高达400亿美元--来 ...

  9. 【原创】论码农的财富修养

    <喜剧之王>里看到了演员的自我修养,然后想聊下码农的财富修养,这里不是聊理财,更多是保险Insurance: 保险是什么,是一种通过支付少量的保险费用来应对未知风险的机制,比如车险.财险. ...

最新文章

  1. matlab读入txt数据_教程合集 | MATLAB文件读写(以nc与txt为例)
  2. ssl提高组周二备考赛【2018.10.30】
  3. vs2010 mysql linq to sql 系列_linq to sql简单使用
  4. Linux内核部件分析 设备驱动模型之device
  5. 单元测试(一)使用Junit进行单元测试
  6. 固定table首行或尾行
  7. [bzoj1127][悬线法]KUP
  8. 转Genymetion
  9. 金融学期末复习重点准备
  10. 英雄联盟7月23日维修服务器,LOL7月23日更新维护结束时间 7月23日什么时候可以上线 LOL7月23日更新维护内容_蚕豆网新闻...
  11. MSP430单片机原理及应用 实验
  12. Unity Shader入门
  13. 【云栖大会】国家天文台结盟阿里云:计算100亿光年的数字宇宙
  14. R 线性模型 检验异常观测值
  15. Hadoop学习笔记——Hadoop常用命令
  16. 去掉图片上的文字的几个基本技巧
  17. svn 文件前前面的标识符
  18. IT人员要善用图表来说明问题
  19. 网络舆情热点发现及分析(single-pass聚类)
  20. 2021年7月 虾皮、OPPO、富途等十几家公司面经总结

热门文章

  1. Java游戏项目之坦克大战
  2. 彻底解决win10时间同步失败
  3. keras model weights
  4. vi使用的时候按esc后按**shift + :**时进入不了末行
  5. vscode terminal下划线显示问题
  6. React项目中请求跨域解决方法
  7. 3d渲染是显示计算机内存不足,win10系统使用3d渲染图片出现内存不足如何解决
  8. 机器学习实战--局部加权线性回归(LWR)
  9. java程序假死_分析一个常见的java多线程通信问题(假死现象)
  10. [机器学习笔记] 什么是经验风险?什么是结构风险?