流程图

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

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

外部链接 编辑