流程图

表示演算法、工作流或流程的一種框圖表示

流程图,又称程序框图是表示算法工作流或流程的一种框图表示,它以不同类型的框代表不同种类的步骤,每两个步骤之间则以箭头连接。这种表示方法便于说明解决已知问题的方法。流程图在分析、设计、记录及操控许多领域的流程或程序都有广泛应用。[1]

应对灯泡不亮的简单流程图

概览

编辑

流程图背后可以概括了各节点类型、其内容及其他补充用的信息。在设计或者记录一些简单的步骤或程序都会用得上流程图。与其他图表一样,这种图表可以帮助可视化发生了什么事情,从而更易去理解中间的工序。虽然有很多𧗠生出来的版本,各目有各目的标示方式,它们大都都有以下2种的符号:

  • 步骤:通常称作“活动”,常以长方形来表示
  • 决定:常以棱形来表示

当流程图被分隔成水平或垂直的不同部分的时候通常会说是‘跨功能’的,这是用来描述不同的控制单元。特定的控制单元会随着特定的部分呈现成一个图标。一个跨功能流程图能让画图者正确地给‘执行步骤’或‘做出决定’来区分职责,并且能显示出一个流程中每个不同部分的组成单元的职责。

流程图可以图像化一些指定的过程。通常配合其他种类的图表来使用。例如,20世纪著名于质量管理的日本学者石川馨认为流程图可以并行七个质量控制工具之一。流程图与直方图柏拉图查检表管制图石川图(鱼骨图)及散布图都同等重要。而是统一塑模语言中的活动图,也可以用来与众多其他图表配搭使用。

另外,盒图Drakon图英语DRAKON也可以用来表示流程。

 
在纸张上用标准尺来辅助绘图

类型

编辑

Sterneckert (2003) 认为流程图可以分为以下四种类型:[2]

绘制流程图

编辑

常用符号

编辑

美国国家标准协会是1960年代就开始制定流程图及一些标准符号[3]。而在1970年,国际标准化组织采用其方案[4]。现时通用的版本ISO 5807是在1985年修订[5]。以下图例列出一些ISO常用符号[6][7]

形状 名称 描述
  流程符号

Flowline (Arrowhead)[8]

用来表达过程的次序,用一条线由一个符号连接去到另一个符号[9]。如果不是标准的上至下、左至右图就会加上箭头[8]
  起止符号

Terminal[9]

用来表示程序或子程序的开始与完结。常以一个圆角长方形表示[9]。通常里面会标上“开始”或“结束”或其他相关字眼,如“提交查询”或“接受产品”。
  程序

Process[8]

以长方形来代表一系列程序去改变量值、形式、数据的位置[8]
  决策判断

Decision[8]

以一个菱形[8]去显示一个条件进程,用来按情况去决定下一步走向[9]。通常以“是/否”或“真/假”值去决定。
  输入/输出

Input/Output[8]

以平行四边形[9]来标示数据输入或输出的过程,即填入数据或显示工作结果的步骤[8]
  注解

Annotation[9] (Comment)[8]

用来补充某步骤的额外信息,可用一个虚线来连接一个半闭合的长方型至想注释的符号中[8]
  已定义流程

Predefined Process[9]

用一个有2条左右垂直线长方型,来表示一个已在其他地方定义了的过程[9]
  同页参考

On-page Connector[9]

用一个含有字母的小圆圈来连接目标流程画于同一页上。[9][10]
  换页参考

Off-page Connector[9]

用一个倒画的屋型来表示目标流程画于另一页上[9][10]

其他符号

编辑

除了上述的基本符号,举例以下[11][12]

形状 名称 描述
  数据档或数据库

Data File or Database

用一个圆柱来表示数据库。
  文件

Document

用一个附有波浪形底的长方形来标示文件。
  用多个附有波浪形底的长方形来标示多份文件。
  显示

Display

用一个左三角正方右圆角形状来标示结果显示的过程。
  人工操作

Manual operation

用一个直角半梯形来标示需要人手录入、修正或操作的过程。
  初始化

Preparation or Initialization

用一个拉长了的六角形来代表初始化或预备的过程。

绘制工具

编辑
 
Flowgorithm

任何绘图软件都可以创造流程图,有些软件可以将流程图背后的数据模型记录下来,方便与数据库、项目管理电子表格等软件协作。不同的软件如yEd英语yEdInkscapeMicrosoft Office Visio都可以制作流程图。也有一些软件可以将编程源代码或指定的流程图描述码来转换出来。

有些可视化程序设计语言[13]采用流程图来显示程序的运作。这些工具都可以用来教导初学者去编程,例子有Draw.ioFlowgorithm英语FlowgorithmGitMind英语GitMindLucidchart英语Lucidchart、LARP、Raptor英语RaptorVisual Logic英语Visual Logic及VisiRule。

参见

编辑

参考来源

编辑
  1. ^ SEVOCAB: Software Systems Engineering Vocabulary页面存档备份,存于互联网档案馆). Term: Flow chart. Retrieved 31 July 2008.
  2. ^ Alan B. Sterneckert (2003) Critical Incident Management. p. 126页面存档备份,存于互联网档案馆
  3. ^ Gary B. Shelly; Misty E. Vermaat. Discovering Computers, Complete: Your Interactive Guide to the Digital World. Cengage Learning. 2011: 691–693. ISBN 1-111-53032-7. 
  4. ^ Harley R. Myler. 2.3 Flowcharts. Fundamentals of Engineering Programming with C and Fortran. Cambridge University Press. 1998: 32–36 [2019-04-10]. ISBN 978-0-521-62950-8. (原始内容存档于2021-04-17). 
  5. ^ ISO 5807:1985. International Organization for Standardization. February 1985 [23 July 2017]. (原始内容存档于2021-04-17). 
  6. ^ 建立基本流程圖. support.office.com. [2019-04-09]. (原始内容存档于2019-09-04) (中文(台湾)). 
  7. ^ LAZYweb. 做事是雜亂無章?還是井然有序? —流程圖 迅速掌握任務全貌 - 今周刊. www.businesstoday.com.tw. 2018-05-04 [2019-04-09]. (原始内容存档于2019-09-05) (中文(台湾)). 
  8. ^ 8.00 8.01 8.02 8.03 8.04 8.05 8.06 8.07 8.08 8.09 Harley R. Myler. 2.3 Flowcharts. Fundamentals of Engineering Programming with C and Fortran. Cambridge University Press. 1998: 32–36 [2019-04-10]. ISBN 978-0-521-62950-8. (原始内容存档于2021-04-17). 
  9. ^ 9.00 9.01 9.02 9.03 9.04 9.05 9.06 9.07 9.08 9.09 9.10 9.11 Gary B. Shelly; Misty E. Vermaat. Discovering Computers, Complete: Your Interactive Guide to the Digital World. Cengage Learning. 2011: 691–693. ISBN 1-111-53032-7. 
  10. ^ 10.0 10.1 What do the different flowchart shapes mean?. RFF Electronics. [23 July 2017]. (原始内容存档于2021-04-17). 
  11. ^ Flowcharting Techniques GC20-8152-1. IBM. March 1970: 10. 
  12. ^ What do the different flowchart shapes mean?. RFF Electronics. [23 July 2017]. (原始内容存档于2021-04-17). 
  13. ^ Myers, Brad A. "Visual programming, programming by example, and program visualization: a taxonomy.页面存档备份,存于互联网档案馆)" ACM SIGCHI Bulletin. Vol. 17. No. 4. ACM, 1986.

外部链接

编辑