
フローチャートは、ワークフローまたはプロセスを表す図の一種です。フローチャートは、タスクを解決するための段階的なアプローチ であるアルゴリズムを図式的に表現したものとしても定義できます。
フローチャートは、ステップをさまざまな種類のボックスで示し、ボックスを矢印で接続して順序を示します。この図式表現は、特定の問題に対する解決モデルを示しています。フローチャートは、さまざまな分野でプロセスやプログラムの分析、設計、文書化、管理に使用されます。[1]
概要

(i=0;i<5;i++) の場合
printf("*");
ループにより 5 つのアスタリスクが印刷されます。フローチャートは、単純なプロセスやプログラムを設計および文書化するために使用されます。他の種類の図と同様に、フローチャートはプロセスを視覚化するのに役立ちます。多くの利点のうちの 2 つは、欠陥やボトルネックが明らかになることです。フローチャートでは通常、次の主要な記号が使用されます。
- プロセス ステップ (通常はアクティビティと呼ばれます) は、長方形のボックスで示されます。
- 決定は通常、ダイヤモンドで示されます。
フローチャートは、異なる組織単位の制御を説明するために、チャートが垂直または水平の異なる部分に分割されている場合、「部門横断型」と呼ばれます。特定の部分に表示されるシンボルは、その組織単位の制御下にあります。部門横断型フローチャートを使用すると、作成者はアクションの実行や決定を行う責任を正確に特定し、単一のプロセスのさまざまな部分に対する各組織単位の責任を示すことができます。
フローチャートはプロセスの特定の側面を表し、通常は他の種類の図によって補完されます。たとえば、石川馨は、フローチャートを、ヒストグラム、パレート図、チェックシート、管理図、因果関係図、散布図に次ぐ、品質管理の 7 つの基本ツールの 1 つとして定義しました。同様に、ソフトウェア開発で使用される標準的な概念モデリング表記法であるUMLでは、フローチャートの一種であるアクティビティ図は、多くの異なる種類の図の 1 つにすぎません。
Nassi-Shneiderman 図とDrakon チャートは、プロセス フローの代替表記法です。
一般的な別名には、フローチャート、プロセスフローチャート、機能フローチャート、プロセスマップ、プロセスチャート、機能プロセスチャート、ビジネスプロセスモデル、プロセスモデル、プロセスフロー図、ワークフロー図、ビジネスフロー図などがあります。「フローチャート」と「フロー チャート」という用語は同じ意味で使用されます。
フローチャートの 基本的なグラフ構造はフロー グラフであり、ノード タイプ、その内容、およびその他の補助情報を抽象化します。
歴史
プロセスフローを文書化する最初の構造化された方法である「フロープロセスチャート」は、 1921年にフランクとリリアン・ギルブレスがアメリカ機械学会(ASME)の会員に「プロセスチャート:作業を行うための最良の方法を見つけるための第一歩」というプレゼンテーションで紹介しました。 [2]ギルブレスのツールはすぐに産業工学のカリキュラムに取り入れられました。1930年代初頭、産業エンジニアのアラン・H・モーゲンセンは、ニューヨーク州レークプラシッドで開催した作業簡素化会議で、ビジネスマンに産業工学のツールの使用方法を教え始めました。
1944年にモーゲンセンのクラスを卒業したアート・スピナンジャーは、そのツールをプロクター・アンド・ギャンブルに持ち帰り、同社の「Deliberate Methods Change Program」を開発した。 同じく1944年に卒業し、スタンダード・レジスター・インダストリアルの製版エンジニアリング担当ディレクターを務めたベン・S・グラハムは、フロー・プロセス・チャートを情報処理に応用し、複数の文書とその関係を示すマルチフロー・プロセス・チャートを開発した。[3] 1947年、ASMEはギルブレスのオリジナル作品から派生したシンボルセットを「ASME規格:操作およびフロー・プロセス・チャート」として採用した。[4]
ダグラス・ハートリーは1949年に、ハーマン・ゴールドスタインとジョン・フォン・ノイマンがコンピュータプログラムを計画するためのフローチャート(元々はダイアグラム)を開発したと説明した。 [5]彼の当時の説明はIBMのエンジニアたち[6]とゴールドスタインの個人的な回想によって裏付けられている。[7]ゴールドスタインとフォン・ノイマンのオリジナルのプログラミングフローチャートは、未発表の報告書「電子計算機の問題の計画とコーディング、パートII、第1巻」(1947年)に掲載されており、フォン・ノイマンの全集に再現されている。[8]
フローチャートはコンピュータアルゴリズムを記述するための一般的なツールになりましたが、対話型コンピュータ端末と第三世代プログラミング言語がコンピュータプログラミングの一般的なツールになった1970年代にその人気は衰えました。これは、そのような言語ではソースコードとしてアルゴリズムをより簡潔に表現できるためです。多くの場合、特定の言語の詳細に厳密に従わずに、そのような言語の一般的なイディオムを使用する疑似コードが使用されます。また、フローチャートは再帰プログラミングなどの新しいプログラミング手法にはあまり適していません。
それにもかかわらず、フローチャートは21世紀初頭でもコンピュータアルゴリズムを記述するために使用されていました。[9] UML アクティビティ図やドラコンチャートなどのいくつかの手法は、フローチャートの拡張であると考えることができます。
種類

スターネッカート(2003)は、フローチャートはさまざまなユーザーグループ(管理者、システムアナリスト、事務員など)の観点からモデル化することができ、一般的に4つのタイプがあると示唆しています。[10]
- ドキュメントフローチャート、システム内のドキュメントフローの制御を示す
- データフローチャート、システム内のデータフローの制御を示す
- システムフローチャート、物理レベルまたはリソースレベルでの制御を示す
- プログラムフローチャート、システム内のプログラムの制御を示す
フローチャートの種類はどれも、特定のフローそのものよりも、何らかの制御に重点を置いていることに注意してください。[10]
ただし、いくつかの異なる分類があります。たとえば、アンドリュー・ベロニス (1978) は、フローチャートの 3 つの基本的なタイプとして、システム フローチャート、一般フローチャート、詳細フローチャートを挙げています。[11]同年、マリリン・ボール (1978) は、「実際には、ソリューション プランニングでは、システム フローチャートとプログラム フローチャートの 2 種類のフローチャートが使用されています...」と述べています。[12]さらに最近では、マーク A. フライマン (2001) がさらに多くの違いを特定しています。「意思決定フローチャート、ロジック フローチャート、システム フローチャート、製品フローチャート、プロセス フローチャートは、ビジネスや政府で使用されるさまざまな種類のフローチャートのほんの一部です」。[13]
さらに、多くのダイアグラム技法はフローチャートと似ていますが、UML アクティビティ図など、名前が異なります。
可逆フローチャート[14]は、計算プロセスの可逆性に焦点を当てたコンピューティングのパラダイムを表しています。操作が不可逆であることが多い従来のコンピューティングモデルとは異なり、可逆フローチャートは、あらゆる原子計算ステップを元に戻せることを保証します。可逆フローチャートは可逆チューリングマシンと同等の表現力があることが示されており、構造化された可逆プログラミングとエネルギー効率の高い可逆コンピューティングシステムの理論的基礎となっています。[15]
ビルディングブロック
一般的な記号
アメリカ規格協会(ANSI)は1960年代にフローチャートとそのシンボルの標準を設定しました。[16]国際標準化機構(ISO)は1970年にANSIシンボルを採用しました。[17]現在の標準であるISO 5807は1985年に発行され、最後に2019年にレビューされました。[18]一般的に、フローチャートは上から下、左から右に流れます。[19]
その他の記号
ANSI/ISO規格には、基本的な形状を超えた記号が含まれています。その一部を以下に示します。[19] [20]
並列処理
- 並列モードは、同時操作の開始時または終了時に2本の水平線で表されます[19]
並列処理と同時処理の場合、並列モードの水平線[21]または水平バー[22]は、独立して実行できるプロセスのセクションの開始または終了を示します。
- フォークでは、プロセスは 1 つ以上の追加プロセスを作成します。これは、1 つの入力パスと 2 つ以上の出力パスを持つバーで示されます。
- 結合では、2つ以上のプロセスが1つのプロセスとして継続し、複数の入力パスと1つの出力パスを持つバーで示されます。単一のプロセスが継続する前に、すべてのプロセスが完了している必要があります。[22]
作図ソフトウェア

フローチャート図の作成には任意の描画プログラムを使用できますが、これらのプログラムには、データベースやプロジェクト管理システム、スプレッドシートなどの他のプログラムとデータを共有するための基礎となるデータ モデルがありません。プログラミング言語のソース コードから直接、またはフローチャート記述言語から、フローチャートを自動的に作成できるソフトウェア パッケージが多数存在します。
フローチャートを使用してプログラムを表現および実行する アプリケーションやビジュアルプログラミング言語[23]がいくつかあります。一般的にこれらは初心者の学生向けの教育ツールとして使用されます。
参照
参考文献
- ^ SEVOCAB: ソフトウェアシステムエンジニアリング用語集。用語:フローチャート。2008年7月31日閲覧。
- ^ Gilbreth, Frank Bunker; Gilbreth, Lillian Moller (1921). 「プロセスチャート」(PDF) 。 2015年5月9日時点のオリジナル(PDF)からアーカイブ。 2016年5月6日閲覧。 アメリカ機械学会。
- ^ Graham, Ben S. Jr. (1996 年 6 月 10 日)。「People come first」。Workflow Canada での基調講演。
- ^ アメリカ機械学会 (1947) ASME 規格、操作およびフロー プロセス チャート。ニューヨーク、1947 年。(オンライン版)
- ^ ハートリー、ダグラス(1949年)。『計算機と計算装置』イリノイ大学出版局。112ページ。
- ^ Bashe, Charles (1986). IBM の初期のコンピュータ. MIT 出版局. p. 327. ISBN 9780262022255。
- ^ ゴールドスタイン、ハーマン(1972)。パスカルからノイマンまでのコンピュータ。プリンストン大学出版局。pp. 266–267。ISBN 0-691-08104-2。
- ^ タウブ、アブラハム(1963)。ジョン・フォン・ノイマン著作集。第5巻。マクミラン。pp.80–151。
- ^ Bohl, Rynn: 「構造化およびオブジェクト指向設計のためのツール」、Prentice Hall、2007 年。
- ^ a b Alan B. Sterneckert (2003)クリティカルインシデントマネジメント. p. 126
- ^ Andrew Veronis (1978)マイクロプロセッサ: 設計とアプリケーション. p. 111
- ^ Marilyn Bohl (1978)プログラマのためのガイド. p. 65.
- ^ Mark A. Fryman (2001)品質とプロセス改善. p. 169.
- ^横山哲夫、ホルガー・ボック・アクセルセン、ロバート・グリュック(2016 年1月)。「可逆フローチャート言語の基礎」理論計算機科学。611 :87–115。doi :10.1016/ j.tcs.2015.07.046。
- ^ Krakovsky, Marina (2021年6月). 「Taking the heat」. Communications of the ACM . 64 (6): 18–20. doi : 10.1145/3460214 .
- ^ abcdefghijklm ゲイリー・B・シェリー、ミスティ・E・ヴェルマート(2011年)。『コンピューターの完全発見:デジタル世界へのインタラクティブガイド』Cengage Learning。691~693ページ。ISBN 978-1-111-53032-7。
- ^ abcdefghijk Harley R. Myler (1998). 「2.3 フローチャート」C と Fortran によるエンジニアリングプログラミングの基礎ケンブリッジ大学出版局 pp. 32–36. ISBN 978-0-521-62950-8。
- ^ 「ISO 5807:1985: 情報処理 - データ、プログラム、システムフローチャート、プログラムネットワークチャート、システムリソースチャートの文書化記号と規則」国際標準化機構。1985年2月。 2017年7月23日閲覧。
- ^ abc フローチャート技法 GC20-8152-1 . IBM. 1970 年 3 月. p. 10.
- ^ abc 「フローチャートのさまざまな形状はどのような意味を持つのか?」 RFF Electronics 。 2017年7月23日閲覧。
- ^ Jonathan W. Valvano (2011).組み込みマイクロコンピュータシステム: リアルタイムインターフェイス. Cengage Learning. pp. 131–132. ISBN 978-1-111-42625-5。
- ^ ab Robbie T. Nakatsu (2009).図による推論:図による意思決定と問題解決。John Wiley & Sons。pp. 68–69。ISBN 978-0-470-40072-2。
- ^ Myers, Brad A. 「ビジュアル プログラミング、例によるプログラミング、およびプログラムの視覚化: 分類法」 ACM SIGCHI 速報。第 17 巻、第 4 号。ACM、1986 年。
さらに読む
- ISO 5807 (1985)。情報処理 - データ、プログラム、システムフローチャート、プログラムネットワークチャート、システムリソースチャートの文書化シンボルと規則。国際標準化機構。
{{cite book}}: CS1 maint: 数値名: 著者リスト (リンク) - ISO 10628 : 化学および石油化学産業向け図
- ECMA 4: フローチャート (廃止 – 廃止された規格のリスト)
- ルイス A. シュルタイス、エドワード M. ハイリガー。「フローチャート作成のテクニック Archived 2021-07-14 at the Wayback Machine。」(1963)、エドワード ハイリガーによる序文付き。
外部リンク
- フローチャート作成テクニック: 1969 年の IBM マニュアル (5 MB; PDF)
