フローチャート
[Wikipedia|▼Menu]
あえてswitch文に相当する書き方をする場合は、下の頂点から発した流れ線を分岐させる形で描くのが一般的である。
合流
一般に黒い点で表し、複数の制御の流れが合流して1つの流れとなることを示す。他の種類の図法で使う、丸「◯」の中に円周に接さない十字記号「+」を入れた記号を流用することもある。合流シンボルには複数の矢印が到達し、1つの矢印が出て行く。JISでは単に流れ線の途中に矢印が接する形で合流を表すと標準化している。一般には「判断」によって別れたものを再び合流するなどに使うのであるが、反復処理をループによって実装したり、何らかの本来ならば別の一連の手続きとして切り出すべきものを、その先頭への流れに合流させて済ませたり、など、スパゲティの元である。そのためかUMLのアクティビティ図は、「判断」によって別れたものの再合流には、専用の「判断」と同じ形状の菱形を使うこととした[注釈 2]。JISでは反復を専用に表現する部品があり、そちらを使うべき(使わなければならない)であろう。また、作図の都合上2つの流れ線が交差することがあるが、その場合は合流ではないことを示すために一方の線を小さな半円状に曲げてもう一方の線をまたがせることがある。
結合子
円の中に識別用ラベルを記した形で表現される。複雑なフローチャートで矢印や流れ線の代わりに用いられる。ページをまたがるような場合、JISではホームベース形の結合子を用いると標準化しているが、特に区別しない方式もある。同じラベルの結合子同士が流れ線でつながっているかのように扱われる。結合の終点となる側は一意なラベルを付与し、起点となる側が終点となる側と同じラベルを付与する。起点側は複数でもよく、その場合は合流シンボルを含意する。
並行性
二重の水平な線で表現され、上に複数の流れ線(矢印)が入り、下から複数の流れ線(矢印)が出る形で表現される。これによって複数の同時並行的に行われる制御フローを表す。入ってくるフローが全て二重線に到達すると、出て行くフローが全て同時に開始される。入力フローが1つの場合を「フォーク」、出力フローが1つの場合を「ジョイン」と呼ぶ。

部品の論理的順序を保つことが重要である。あらゆるプロセスは上から下、左から右に流れるべきである。
データフロー的拡張

制御フローではなくデータフローを表現するデータフロー図を描くための部品の規格化が行われてきた。そのような部品は制御フローを表すフローチャートでも特に平行四辺形の「入出力」部品を詳細化するのに使われている。

なお、そもそもコントロールのフローとデータフローは違うものであるため「(フローチャートの)データフロー的拡張」として両者を混用すると、フローチャートの「代入などの操作を表現する箱」と、データフロー図の「データを保持したり加工する実体を表現する箱」が混在することになり、同様に「順次的な手続きの流れ」を表現する矢印と「データの流れ」を表現する矢印が混在することになる。

長方形の下辺を波形にした図形で、「書類」を表す。

上辺が左から右に斜めに上がっている四角形で、「手操作入力」を表す。例えば、帳票へ書き込むことを表す。

上底の方が長い台形で、「手作業」を表す。人間が自ら行うしかない作業や調整を表す。

円柱形で「データファイル」を表す。

様々なフローチャート

Sterneckert (2003) によれば、フローチャートは様々なユーザーグループ(管理者、システムアナリスト、事務員など)の異なる観点からモデル化でき、それらは次の4種類に分類できる[10]

文書フローチャート - システム内の文書の流れについての制御を示す図

データフローチャート - システム内のデータの流れについての制御を示す図

システムフローチャート - 物理レベルまたは資源レベルの制御を示す図

プログラムフローチャート - システム内のプログラムにおける制御を示す図

どのフローチャートも流れ自身ではなく、ある種の制御に着目したものであることに注意が必要である[10]自動車の運転をフローチャートでモデル化したもの

他にもいくつかの分類がある。例えば、Andrew Veronis (1978) は、システムフローチャート、概要フローチャート、詳細フローチャートという3つに分類した[11]。また同年、Marilyn Bohl (1978) では「実際、ソリューションプランニングにおいてはシステムフローチャートとプログラムフローチャートの2種類のフローチャートが使われる」と記している[12]。さらに最近の Mark A. Fryman (2001) ではさらに様々な種類があるとし「意思決定フローチャート、論理フローチャート、システムフローチャート、製品フローチャート、プロセスフローチャートは、ビジネスや政府で使われている様々なフローチャートのほんの一部である」と記している[13]

さらに、フローチャートとよく似たダイアグラム技法を異なる名前で呼んでいる場合もあり、例えば、UMLアクティビティ図がある。
株式公開・内部統制向けフローチャート

JISで標準化された図法は、工業・情報処理でどうしてもフローチャートで書かなければならない場合に用いられることが多い。一方、株式公開内部統制のフローを描く場合には、以下のような形式のフローチャートを用いることがある。
NOMA方式
日本経営協会 (NOMA) の理事であった、三枝鐘介によって作られたもの。使用する記号を抑えて、シンプルに記述するのが特徴。
日能式
日本能率協会によって作られたもの。思想はNOMA方式に近い。
産能大式
学校法人産業能率大学によって作られたもの。NOMA方式に比べ、「FAX」「コピー」等の具体的な記号を用いているのが特徴。株式公開時の提出資料で、この形式を用いることが多い。
構造化フローチャート

フローチャートはいわば、goto文if文だけでプログラミングしているようなものであるため、プログラミングに構造化プログラミングがあらわれたように、段階的詳細化などの問題解決の手法をきちんと反映するような、より良い図法とされるものが、いくつも考案された。そのような図法としてNS図(w:Nassi?Shneiderman diagram、DIN 66261)の他、ISO/IEC 8631(対応するJISとして、JIS X 0128)のAnnex A(informative)には、以下の種類の図法が示されている。

PAD (Problem Analysis Diagram、二村良彦考案)[14]

HCP (Hierarchical ComPact description chart日本電信電話公社の横須賀電気通信研究所で開発)

PSD (Program Structure Diagram、日本電気)

DSD (Design Structure Diagram)

SPD (Structured Programming Diagram)

LCP (Logical Conception of Program hierarchical)

LCP (Logical Conception of Program flow chart)

また他に YAC (Yet Another Control chart、富士通) がある。

これらがさほど普及しなかった理由としては、ノイマンらがフローチャートをプログラミングの補助として採用した頃の機械語プログラミングからの時代の経過で、構造化をサポートした高水準プログラミング言語などにより、むしろこういった図法よりもアルゴリズムをより明確に、プログラミング言語で直接書けるようになったことがある。また全く技術的でない理由として、唯一に標準化されたものでなければ使えないとする信仰のようなものから、このようにたくさん提案されているのでは採用できない、といったようなものもある。

またこれらを使う際には、数個以上の箱が縦に並ぶようなことは可能な限り避けきちんとサブルーチンとして切り出すなどして、「フローチャートの欠点」とされるような書き方は戒められなければならない。そういったことから「フローチャート」の語を避けて、構造化チャートと呼ばれることもある。
ソフトウェア

作図プログラムならフローチャートを描画できるが、単に図として描画するとデータベースやプロジェクトマネジメントシステムや表計算ソフトとデータを共有するデータモデルを提供できない。一部のツールはフローチャート描画のための機能をサポートしている。また、何らかのソースコードあるいはフローチャート記述言語から自動的にフローチャートを生成できるソフトウェアも多数存在する。ウェブ経由でオンラインで使えるツールも存在する。
脚注[脚注の使い方]
注釈^ そのため、問題解決の理解には程遠いこともある(すごろくあみだくじゲームブックのようなものだと思えばよい。各ステップとステップ間の流れは単純明快でわかりやすいが、全貌を誤解なく理解するには大変な努力を要することもある)。
^ なお、可逆計算を表現する場合には「制御フローの合流の逆」は重要なのだが、UMLの設計者たちがそのような先進的なアイディアを考慮したものか否かは不明である。

出典^SEVOCAB: Software and Systems Engineering Vocabulary. Term: Flow chart. Retrieved 31 July 2008.
^ 萩原芳彦 監修 『ハンディブック 機械 改訂2版』 オーム社 2007年3月20日 p.352
^ Graham, Jr., Ben S. (1996年6月10日). “ ⇒People come first”. Keynote Address at Workflow Canada'. 2012年11月4日閲覧。
^ Hartree, Douglas (1949). Calculating Instruments and Machines. The University of Illinois Press. p. 112 
^ Bashe, Charles (1986). IBM's Early Computers. The MIT Press. p. 327 
^ Goldstine, Herman (1972). The Computer from Pascal to Von Neumann. Princeton University Press. pp. 266-267. .mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}ISBN 0-691-08104-2 


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:35 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef