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

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

Sterneckert (2003) は、フローチャートはさまざまなユーザーグループ (管理者、システムアナリスト、事務員など) の視点からモデル化することができ、4 つの一般的なタイプがあると示唆しました。[ 10 ]
フローチャートのどのタイプも、特定の流れそのものではなく、何らかの制御に焦点を当てていることに注目してください。[ 10 ]
しかし、いくつかの異なる分類が存在します。たとえば、Andrew Veronis (1978) は、フローチャートの基本的なタイプとして、システムフローチャート、一般フローチャート、詳細フローチャートの 3 つを挙げています。[ 11 ]同年、Marilyn Bohl (1978) は、「実際には、ソリューション計画では、システムフローチャートとプログラムフローチャートの2 種類のフローチャートが使用されています」と述べています。[ 12 ]さらに最近では、Mark A. Fryman (2001) が、さらに多くの違いを指摘しています。「意思決定フローチャート、論理フローチャート、システムフローチャート、製品フローチャート、プロセスフローチャートは、ビジネスや政府で使用されるさまざまな種類のフローチャートのほんの一部です。」[ 13 ]
さらに、フローチャートに似ているが、UMLアクティビティ図など、異なる名前を持つ図解技法も数多く存在する。
可逆フローチャート[ 14 ]は、計算プロセスの可逆性に焦点を当てたコンピューティングのパラダイムを表しています。操作がしばしば不可逆である従来のコンピューティングモデルとは異なり、可逆フローチャートは、任意の原子的な計算ステップを逆行できることを保証します。可逆フローチャートは、可逆チューリングマシンと同等の表現力を持つことが示されており、構造化された可逆プログラミングとエネルギー効率の高い可逆コンピューティングシステムの理論的基盤となっています。[ 15 ]
米国規格協会(ANSI)は1960年代にフローチャートとその記号の規格を定めた。[ 16 ]国際標準化機構(ISO)は1970年にANSIの記号を採用した。[ 17 ]現在の規格であるISO 5807は1985年に発行され、2019年に最終改訂された。[ 18 ]一般的に、フローチャートは上から下、左から右へと流れる。[ 19 ]
ANSI/ISO規格には、基本的な形状以外のシンボルも含まれています。いくつか例を挙げると次のようになります。[ 19 ] [ 20 ]
並列処理および同時処理の場合、並列モードの水平線[ 21 ]または水平バー[ 22 ]は、独立して実行できる一連の処理の開始または終了を示します。

フローチャート図を作成するには、どの描画プログラムでも使用できますが、これらの図にはデータベースやプロジェクト管理システム、スプレッドシートなどの他のプログラムとデータを共有するための基盤となるデータモデルがありません。プログラミング言語のソースコードから直接、またはフローチャート記述言語から、フローチャートを自動的に作成できるソフトウェアパッケージが数多く存在します。
フローチャートを使用してプログラムを表現および実行するアプリケーションやビジュアルプログラミング言語[ 23 ]がいくつかあります。これらは一般的に初心者向けの教育ツールとして使用されます。
{{cite book}}: CS1 maint: 数値名: 著者リスト (リンク)