フローチャートとは
仕事でフローチャートを利用する機会がある人は少なくないでしょう。まずはフローチャートの定義や概要について、具体的に解説していきます。
システムやアルゴリズムを示す図
フローチャートは、各プロセスをボックスで表し、そのプロセスに矢印で順番を付けることで、システムやアルゴリズムを示す図のことです。他にも、設計図や事業計画など、さまざまな分野や企業でフローチャートは用いられています。
多様な図形が使われて見やすくまとめられていて、複雑化しているタスクや手順が整理され、作業にかかる順番や進捗状況を簡単に把握できるのが、フローチャートの役割です。
フローチャートの歴史
フローチャートの起源は1920~1930年代といわれています。生産管理技術者のギルブレス夫妻が『Process Charts—First Steps in Finding the One Best Way』をアメリカ機械工学会で発表したのがきっかけです。
フローチャートは次第に普及していき、1930年には工業技術者のアーラン・H・モジェンセンがプレゼンテーションの場でフローチャートを使用したと言われています。そして1947年には、アメリカ機械工学会がフローチャートのための記号システムを採用しました。
その後、フローチャートはコンピュータープログラムやアルゴリズムを表す手段として一気に浸透していったのです。
フローチャートの利用分野
フローチャートはさまざまな分野で利用されています。事例とともに見てみましょう。
教育分野では、学習課題の計画や、授業計画をプレゼンするために用いられます。社会や生物学の特定の仕組みをわかりやすく理解してもらうためにも使われます。
ビジネスの分野では、発注と調達プロセスの理解を得るため、従業員の業務を共通認識するためや、事業計画または製品実現計画のためなどに作成されることがあります。このほかにも製造・エンジニアリングなど、さまざまな分野において、フローチャートは用いられているのです。
フローチャートで使われる主な記号
フローチャートは多彩な図形と矢印の組み合わせによって構成されていますが、記号にはそれぞれ意味があります。ここでは、フローチャートで使われる記号の意味について見ていきましょう。
記号はJISで定められている
フローチャートで用いられる記号は『日本工業規格』(JIS)によって定められています。JISは、日本の工業製品に関する規格や測定の方法について定める国家規格です。
フローチャートで用いられる記号にどのような規格が定められているのかは、JISの公式ホームページから調べることができます。データベース検索メニューの『JIS検索』を選択し、『X0121』と入力してください。検索結果を閲覧するとPDFファイルがダウンロードでき、その中に詳しく記載されています。
判断やサブプロセスなどの基本記号
『日本工業規格』(JIS)によって定められている、フローチャートにおける基本記号を紹介します。
- 楕円形:開始/終了
- 長方形:処理
- ひし形:判断
頻繁に使用するのは『開始/終了』を意味する楕円形の図形です。作業や手続きを意味する『処理』を表す長方形図形、回答を要する質問を促す『判断』を意味するひし形もよく使われます。
ループなどその他の記号
フローチャートには、その他にもさまざまな記号があります。
ループの範囲を表す台形のような形や、保存や保管を表す逆三角形の記号、システム・データベースを表す円柱の記号もあります。端子や書類、表示などを意味する記号は、手書きするには複雑な形をしているため、専用のツールを使うと良いでしょう。
フローチャートを使う時は、これらの記号の中から適切なものを選択しなければいけません。
フローチャートを書くメリット
フローチャートはその利便性から、多くの企業や機関が利用しています。フローチャートを使うことで、作業やプレゼンテーションにおいてどんなメリットがあるのかを知っておきましょう。
重複が省ける
フローチャートとは、作業手順書の役割も果たしています。例えば、フローチャートなしでプログラミングに着手した場合、仕様を頻繁に変更して拡張や削除を繰り返し、コードが整理されないままになってしまうことがあります。
そういった場合、本来なら1回で済む処理を何度も行ってしまうといった、プログラム処理上の無駄が発生してしまう可能性があるのです。
その結果、プログラム自体の処理速度が落ちて、エラーやバグの原因、ひいては納期を延長せざるをえない状況になることがあります。
しかし、フローチャートがあることで作業手順や内容を確認しながら作業を進めることができ、無駄なプログラムの生成を防ぐことができるのです。
速度の向上
フローチャートに従って作業をしていくことで、無駄な行程を省くことができます。
例えば、料理をする際に買い出しの段階からレシピがあれば、無駄な食材は買いませんし、実際に料理に着手するにしても、レシピに沿って、次の手順に迷うことなく料理を進めていくことができるはずです。
フローチャートの役割も同じです。計画にない無駄な作業を省き、次の手順を明確にすることでそれを踏まえた作業を行うことができます。結果として、作業速度を全体的に向上させることが可能になるでしょう。
全体を俯瞰できる
エンジニアやプログラマーは、外注で入っている場合は特に、プロジェクト全体を把握しないまま作業している場合があります。
特に大企業のプロジェクトになると作業者がかなりの人数に登り、全体を俯瞰して把握することが難しくなります。その結果、他のプログラムとの連携不足や、本来は必要だった機能などを入れ忘れてしまうなどのミスが発生します。
フローチャートがあれば、全体の中で自分がどんな作業に関わっているのかが把握できるので、連携ミスが起こりにくくなるでしょう。また管理者としても、進捗状況を確認しやすいというメリットが生まれます。
基本構造を押さえよう
フローチャートでは、多くの人が理解しやすいように頻繁に利用されるフローチャートの基本構造があります。三つの基本構造について解説しますので、フローチャートの目的に合わせて使い分けてみてください。
順次構造
『順次構造』は、処理する順番に沿って上から下に処理記号を配置していく構造形式です。作業の流れが一方向なので、一見して全体の流れや手順が把握しやすいという特徴があります。
順次構造を作成するときの注意点は、流れに逆らった処理を配置しないということです。別方向に向かう矢印があると、一気にチャートが読みにくくなってしまいます。
分岐構造
『分岐構造』は、条件を発生させる構造のことです。ある条件を満たしているか否かを判断し、進行先の手順を変更する手法です。『条件Aを満たしているなら分岐1へ、条件Bを満たしているなら分岐2へ』といった形で使われます。
分岐構造は、プログラムやサービスの設計などでよく利用される構造です。
ループ
『ループ構造』または『反復構造』といいます。条件を満たしている間、または満たすまでは特定プロセスを繰り返す構造のことです。学習におけるフローチャートなどで、よく見られます。
学習のフローチャートの例としては『模擬テストで○○点が取れなかった場合、再学習して再び同じ模擬テストをやり直す』というような場合です。
ループ構造の中にさらにループを仕込む二重構造が見られることもあります。ループ条件が厳しいと、作業が止まってしまうこともありますので、ループ回数が想定より多い場合などについては、別の手段を講じる必要も出てくるでしょう。
プログラム文との対応
分岐構造とループ構造について、プログラム文ではどのように表現され、そしてどのように記述するべきかを、詳しく解説していきます。
分岐構造の表現
分岐構造を表現する場合、『switch-case文』や『if-else文』を使います。
switch-case文を用いる場合は、条件分岐の結果が複数予想されるケースです。分岐条件を数値とした場合に、1~5なら処理Aに、5~10なら処理Bにといった形に分岐させます。どの数字にも当てはまらない場合の分岐も、必ず作成しておきましょう。
switch文で式や変数などの条件などを定め、その結果を受けてcase文で分岐を作ります。
if-else文は条件を満たした場合と満たさない場合の2つの分岐について記載するので、こちらの方がシンプルです。条件であるif文、その後の処理のelse文で構成されます。分岐した先でまた新たに分岐を作成する、ifからifへつなげるといったことも可能です。
ループの表現
ループの表現に用いるのは『for文』や『while文』もしくは『do-while文』です。いずれも条件を満たしている間、あるいは条件を満たすまでは繰り返し実行されるループ構造を作る構文です。
繰り返す回数があらかじめ分かっている場合はfor文、分からない場合はwhile文がよく使われます。
do-while文は、まずループさせたい処理を1回実行してから、その後に2回目以降を繰り返すかどうかの判定をするという点が特徴です。通常のwhile文は判定が先にくるので、ループ処理が0回の場合もありますが、do-while文の場合は少なくとも1回は実行されるという違いがあります。
作り方や書き方のポイント
フローチャートを実際に作成する場合の、作成前に決めるべきポイントや、実際に作る段階になってどのように書けば良いかといったポイントを解説します。
作り方の手順
フローチャートを作る前に、まず目的と範囲を決めておきましょう。特にプログラム設計の場合、作成しているうちに新たに追加したい機能や変更したい仕様の要望をクライアントから受ける可能性があります。
追加と修正を何度も行わなければならなくなり、作業が終わらない可能性があるので、まずはどの範囲までのフローチャートを作成するかを決めておく必要があります。
また、関係する人のタスクや実際に必要なタスクをピックアップして時系列順に並べていき、フローチャートにそのまま組み込めるようにしましょう。
書き方のポイント
フローチャートを書くポイントは三つあります。一つ目は『並列表記をしない』ことです。同時に作業することが2つ発生するとどちらから手を付けるべきか悩んでしまい、フローチャートの意味がありません。必ず流れは一方向に沿って作っていくようにしましょう。
二つ目は『文字数を減らす』ことです。『点検をする』なら『点検』のように、極力短い文字にまとめましょう。記号の調整も楽になって、チャートのデザインがすっきりします。
三つ目は『難しい記号を使わない』ことです。フローチャートは、使い慣れていない新規の人なども見る可能性がありますので、簡単な記号で賄えるならそれに越したことはありません。
Excelでの作り方例
プログラミング作業や事務作業のツールとしてExcelを用いている人は多いのではないでしょうか?Excelでフローチャートを作ることは十分可能です。どのように作るのか、具体例とともにご紹介します。
分岐構造
まずは、セルの調整を行いましょう。Excelの長方形のセルを、正方形に設定します。こうしておくことで、枠線が方眼紙のような役割を果たして、図形が描きやすくなります。
その後は『挿入タブ』の中から図形をクリックして、フローチャート用の記号を選択します。順次構造のフローチャートはこの操作だけで作成可能です。
分岐構造を作成する場合は、以下の手順で行います。まずは条件分岐記号の設置方法です。
- 『挿入』→『図形』→『分岐』と選択し、分岐の記号図系をクリック
- 『書式』→『配置』→『枠線に合わせる』を選択
続いて、以下の手順で分岐の項目を挿入しましょう。
- 『挿入』→『図形』→『テキストボックス』と選択
- 作成したテキストボックスに文字を入れる
図形の位置を調整し、最後に接続する矢印を設置すれば完成です。
ループ
ループ構造の特徴である二つのループ記号を作成さえできれば、図形の出し方や矢印をつけるといった手順は順次構造と変わりません。ここではループ記号の作成手順について解説します。
『挿入』から『図形』をクリックして、ループ記号の台形に近い形状の記号を選びましょう。次に、図形をコピーして二つに増やします。
図形をクリックすると、辺や角に丸いマークが表示されるので、それをクリックしながらマウスを動かすと、形状を調整できます。この機能を使って、ループ記号の形を作ってください。
二つの図形をループの始まりと終わりに設置すれば、ループ構造の作成は終了です。
フローチャートが作れる便利なツール
フローチャートの作成に適している便利なツールを紹介します。効率的な作成に利用してみてください。
draw.io
『draw.io』は無料の作画ツールです。会員登録や、ソフトのインストールなどは一切必要ありません。サイトを開けばすぐに作業画面に移行できます。
記号も豊富に揃えられている他、フローチャート用のテンプレートも用意されており、図形から矢印を自動で結ぶ機能もあるため、簡単にフローチャートを作ることが可能です。
ただし、作成した図形を保存する場所として『GoogleDrive』『OneDrive』などのオンラインストレージか、デバイスが必要になります。事前に保存場所を決めておくとよいでしょう。
Googleスライド
『Googleスライド』は、PowerPointに近い機能を持っています。スプレッドシートやGoogleドキュメントと同様、Googleアカウントさえあれば無料利用が可能です。
図形機能を利用して、フローチャートを作成することができます。大きな特徴は、Googleオンラインの機能を活かして、他の人に権限を与えることで複数人で閲覧・編集ができるという点でしょう。チーム内でのフローチャート共有が簡単に行えます。
まとめ
フローチャートは、プログラミングの設計や業務計画、教育や研修などさまざまな場面で利用されています。フローチャートがあることで、作業速度を向上させ、全体を効率良く管理できるようになるといったメリットがあるのです。
フローチャートの作成にあたっては、利用する記号にJIS規格で定められたルールがあるので、まずはそちらを確認してください。チャートに使う記号が異なると、意味が変わってしまいます。
作成にあたっては基本構造や記号について理解する必要もあるので、慣れないうちは確認しながら行うと良いでしょう。
フローチャート作成に使えるツールやテンプレートがインターネット上に多くあります。作業を効率的に管理するために、フローチャートを作成してみてはいかがでしょうか?