フローチャート

チェック済み
ページは変更保留のため保護されています

機能しないランプを処理するプロセスを表す簡単なフローチャート。

フローチャートは、ワークフロープロセスを表すの一種です。また、タスクを解決するための段階的なアプローチで あるアルゴリズムを図式的に表現したものとも定義できます。

フローチャートは、ステップを様々な種類のボックスで示し、ボックスを矢印で結ぶことでその順序を示します。この図式的な表現は、与えられた問題に対する解決モデルを示します。フローチャートは、様々な分野において、プロセスやプログラムの分析、設計、文書化、管理に使用されます。[ 1 ]

概要

次のコードを表すC スタイルのfor ループのフロー図:
(i=0;i<5;i++) の場合 printf("*"); 
ループにより 5 つのアスタリスクが印刷されます。

フローチャートは、単純なプロセスやプログラムを設計・文書化するために使用されます。他の種類の図と同様に、プロセスを視覚化するのに役立ちます。多くの利点のうち、2つは欠陥やボトルネックが明らかになることです。フローチャートでは通常、以下の主要な記号が使用されます。

  • 通常アクティビティと呼ばれるプロセス ステップは、長方形のボックスで示されます。
  • 決定は通常、ダイヤモンドで示されます。

フローチャートが縦または横の複数の部分に分割され、異なる組織単位の管理を記述する場合、そのフローチャートは「クロスファンクショナル」と呼ばれます。特定の部分に表示されるシンボルは、その組織単位の管理下にあることを示します。クロスファンクショナルフローチャートにより、作成者はアクションの実行や意思決定の責任を正確に特定し、単一プロセスの異なる部分に対する各組織単位の責任を示すことができます。

フローチャートはプロセスの特定の側面を表し、通常は他の種類の図によって補完されます。例えば、石川馨はフローチャートを、ヒストグラムパレート図チェックシート管理図特性要因図散布図に次ぐ品質管理の7つの基本ツールの一つと定義しました。同様に、ソフトウェア開発で使用される標準的な概念モデリング記法であるUMLでは、フローチャートの一種であるアクティビティ図は、数ある図の種類の一つにすぎません。

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 ]ゴールドスタインとフォン・ノイマンのオリジナルのプログラミングフローチャートは、未発表の報告書「電子計算機の問題の計画とコーディング、第2部、第1巻」(1947年)に掲載されており、これはフォン・ノイマンの全集に収録されている。[ 8 ]

フローチャートはコンピュータアルゴリズムを記述するための人気のツールとなりましたが、1970年代に対話型コンピュータ端末第三世代プログラミング言語がコンピュータプログラミングの一般的なツールとなったことで、その人気は衰えました。これは、これらの言語ではソースコードとしてアルゴリズムをより簡潔に表現できるためです。多くの場合、特定の言語の詳細に厳密に従うことなく、これらの言語の一般的なイディオムを使用する疑似コードが使用されます。また、フローチャートは再帰プログラミングなどの新しいプログラミング手法には適していません。

それにもかかわらず、フローチャートは21世紀初頭でもコンピュータアルゴリズムの記述に使用されていました。[ 9 ] UMLアクティビティ図ドラコンチャートなどのいくつかの手法は、フローチャートの拡張版であると考えられます。

種類

IBMフローチャートテンプレート

スターネッカート(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シェイプ 名前 説明
フローライン(矢印)[ 17 ]プロセスの処理順序を示します。あるシンボルから別のシンボルに向かう線です。[ 16 ]流れが標準的な上から下、左から右でない場合は、矢印が追加されます。[ 17 ]
ターミナル[ 16 ]プログラムまたはサブプロセスの開始と終了を示します。スタジアム[ 16 ] 楕円形、または丸みを帯びた(フィレット)長方形で表されます。通常、「開始」または「終了」という単語、あるいは「問い合わせを送信」や「製品を受け取る」など、プロセスの開始または終了を示すフレーズが含まれます。
プロセス[ 17 ]データの値、形式、または場所を変更する一連の操作を表します。四角形で表されます。[ 17 ]
決定[ 17 ]プログラムが2つのパスのうちどちらを選択するかを決定する条件付き演算を示します。[ 16 ]この演算は通常、はい/いいえの質問または真偽テストです。ひし形(菱形)で表されます。[ 17 ]
入出力[ 17 ]データの入出力のプロセスを示します。[ 17 ]データの入力や結果の表示など。菱形で表されます。[ 16 ]
注釈[ 16 ](コメント)[ 17 ]プログラムの各ステップに関する追加情報を示します。フローチャート内の対応する記号と破線または実線で結ばれた四角形で表されます。[ 17 ]
定義済みプロセス[ 16 ]他の場所で定義されている名前付きプロセスを示します。二重の垂直辺を持つ長方形で表されます。[ 16 ]
ページ内コネクタ[ 16 ]フローチャート上の長い線や分かりにくい線の代わりに、ラベル付きのコネクタのペアを使用します。コネクタは、中に文字が入った小さな円で表されます。[ 16 ] [ 20 ]
オフページコネクタ[ 16 ]ターゲットが別のページにある場合に使用するラベル付きコネクタ。ホームプレート型の五角形で表されます。[ 16 ] [ 20 ]

その他の記号

ANSI/ISO規格には、基本図形以外にも様々な記号が含まれています。例えば、以下のものがあります。[ 19 ] [ 20 ]

名前 説明
フローチャートデータベースデータファイルまたはデータベース ディスク ドライブを象徴する シリンダーによって表されるデータ。
フローチャート文書書類 波型の底を持つ 長方形として表される単一のドキュメント。
フローチャート文書複数複数のドキュメントを、波型の底を持つ長方形のスタックとして表します。
フローチャート 手動入力手動操作 最も長い平行辺が上に位置する 台形で表され、手動でのみ実行できるプロセスの操作または調整を表します。
フローチャートの手動入力手動入力 キーボードを横から見たときのように、上部が左から右へ不規則に上向きに傾斜した四辺形で表されます。
フローチャートの作成準備または初期化 細長い六角形で表され、元々はスイッチの設定やルーチンの初期化などの手順に使用されていました。

並列処理

  • 並列モードは、同時操作の開始時または終了時に2本の水平線で表されます[ 19 ]

並列処理と同時処理の場合、並列モードの水平線[ 21 ]または水平バー[ 22 ]は、独立して実行できるプロセスセクションの開始または終了を示します。

  • フォークでは、プロセスは 1 つ以上の追加プロセスを作成します。これは、1 つの入力パスと 2 つ以上の出力パスを持つバーで示されます。
  • 結合では、2つ以上のプロセスが1つのプロセスとして継続します。これは、複数の入力パスと1つの出力パスを持つバーで示されます。1つのプロセスが継続する前に、すべてのプロセスが完了している必要があります。[ 22 ]

作図ソフトウェア

フローチャートソフトウェアFlowgorithmのスクリーンショット

フローチャート図はどの描画プログラムでも作成できますが、データベースやプロジェクト管理システム、スプレッドシートなどの他のプログラムとデータを共有するための基盤となるデータモデルは存在しません。プログラミング言語のソースコードから直接、あるいはフローチャート記述言語から、フローチャートを自動作成できるソフトウェアパッケージは数多く存在します。

フローチャートを用いてプログラムを表現・実行するアプリケーションやビジュアルプログラミング言語[ 23 ]は数多く存在します。これらは一般的に、初心者向けの教材として利用されています。

参照

参考文献

  1. ^ SEVOCAB: ソフトウェアシステムエンジニアリング用語集. 用語:フローチャート. 2008年7月31日閲覧。
  2. ^ギルブレス、フランク・バンカー、ギルブレス、リリアン・モラー (1921). 「プロセスチャート」(PDF) . 2015年5月9日時点のオリジナル(PDF)からアーカイブ。 2016年5月6日閲覧アメリカ機械学会。
  3. ^ Graham, Ben S. Jr. (1996年6月10日). 「People come first」 . Workflow Canadaにおける基調講演.
  4. ^アメリカ機械学会 (1947) ASME規格; 操作およびフロープロセスチャートニューヨーク、1947年 (オンライン版)
  5. ^ハートリー、ダグラス(1949年)『計算機と計算装置』イリノイ大学出版局、112ページ。
  6. ^バシェ、チャールズ (1986). IBMの初期コンピュータ. MITプレス. p.  327. ISBN 9780262022255
  7. ^ゴールドスタイン、ハーマン(1972). 『コンピュータ:パスカルからフォン・ノイマンまで』 プリンストン大学出版局. pp.  266–267 . ISBN 0-691-08104-2
  8. ^タウブ、アブラハム(1963).ジョン・フォン・ノイマン著作集. 第5巻. マクミラン. pp.  80– 151.
  9. ^ Bohl, Rynn:「構造化およびオブジェクト指向設計のためのツール」、Prentice Hall、2007 年。
  10. ^ a bアラン・B・スターネッカート(2003)クリティカルインシデントマネジメントp. 126
  11. ^ Andrew Veronis (1978)マイクロプロセッサ:設計とアプリケーション. p. 111
  12. ^ Marilyn Bohl (1978)プログラマのためのガイド. p. 65.
  13. ^ Mark A. Fryman (2001)品質とプロセス改善. p. 169 .
  14. ^横山哲夫、ホルガー・ボック・アクセルセン、ロバート・グリュック(2016年1月)「可逆フローチャート言語の基礎」理論計算機科学611 : 87–115 . doi : 10.1016/j.tcs.2015.07.046 .
  15. ^ Krakovsky, Marina (2021年6月). 「Taking the heat」 . Communications of the ACM . 64 (6): 18–20 . doi : 10.1145/3460214 .
  16. ^ a b c d e f g h i j k l mゲイリー・B・シェリー、ミスティ・E・ヴェルマート(2011年) 『コンピューター完全版:デジタル世界へのインタラクティブガイド』センゲージ・ラーニング、  691~693頁。ISBN 978-1-111-53032-7
  17. ^ a b c d e f g h i j k Harley R. Myler (1998). 「2.3 フローチャート」 . CとFortranによるエンジニアリングプログラミングの基礎. ケンブリッジ大学出版局. pp.  32– 36. ISBN 978-0-521-62950-8
  18. ^ 「ISO 5807:1985: 情報処理 — データ、プログラム、システムフローチャート、プログラムネットワークチャート、システムリソースチャートの文書化記号と規則」国際標準化機構(ISO)1985年2月。 2017年7月23日閲覧
  19. ^ a b cフローチャート技法 GC20-8152-1 (PDF) . IBM. 1970年3月. p. 10. 2021年10月15日時点のオリジナルよりアーカイブ(PDF) 。
  20. ^ a b c「フローチャートの異なる形状はどのような意味を持つのか?」 RFF Electronics . 2017年7月23日閲覧
  21. ^ Jonathan W. Valvano (2011).組み込みマイクロコンピュータシステム:リアルタイムインターフェース. Cengage Learning. pp.  131– 132. ISBN 978-1-111-42625-5
  22. ^ a bロビー・T・ナカツ (2009). 『ダイアグラムによる推論:ダイアグラムによる意思決定と問題解決』 ジョン・ワイリー・アンド・サンズ. pp.  68– 69. ISBN 978-0-470-40072-2
  23. ^ Myers, Brad A. 「ビジュアルプログラミング、例によるプログラミング、プログラムの視覚化:分類法」ACM SIGCHI Bulletin. Vol. 17. No. 4. ACM, 1986.

さらに読む