フローチャートの基礎知識
そもそもフローチャートとはどのようなものなのでしょうか。フローチャートの概要や歴史、種類などの基礎知識について解説します。
フローチャートとは
フローチャートとは流れ図とも呼ばれ、各プロセスの順序をボックス状の記号と矢印で表記する手法です。主にコンピュータのシステムやアルゴリズムの設計の際に、処理の流れを把握するために用いられます。
フローチャートそのものはシンプルな構成ですが、システムやアルゴリズム、業務プロセスなどを俯瞰して見ることができるため、全体像を把握するのに適しています。
フローチャートの歴史
フローチャートの歴史は古く、1920年頃から使われ始めています。当初は業務プロセスの流れを表すために使用されていましたが、1940年代になるとコンピュータが登場し、プログラム開発にもフローチャートが用いられるようになりました。
フローチャートの種類
フローチャートにはさまざまな種類があります。以下に主なフローチャートを挙げます。
- データフローチャート
- システムフローチャート
- プログラムフローチャート
- プロセスフローチャート
- ワークフローフローチャート
データの流れを示す『データフローチャート』や、システムの流れを示す『システムフローチャート』など、フローチャートはシステム開発に使われるのが一般的です。しかし、プロセスを経るものであれば基本的にフローチャート化できます。
例えば、『プロセスフローチャート』は作業や意思決定のプロセスをフローチャートにして可視化したものですし、『ワークフローチャート』は業務の開始から終了までをフローチャートにしたものです。これらは幅広い分野で使われ、業務の平準化や簡略化に役立ちます。
フローチャートで使われる記号
フローチャートは記号と矢印で表記するツールです。記号にはそれぞれ意味があるため、正しく使い分ける必要があります。フローチャートで使われる主な記号を紹介します。
- 処理:各プロセスを示し、長方形で表記します
- 判断:YES/NOで判断する分岐を示し、ひし形で表記します
- データ:データの入力や出力を示し、平行四辺形で表記します
- データベース:データベースを示し、円柱で表記します
- ページ内結合子:同じページの特定の場所に飛ぶことを示し、円で表記します
- ページ外結合子:別のページの特定の場所に飛ぶことを示し、ホームベース型で表記します
- 処理の流れ:フローチャートが進む方向を示し、矢印で表記します
他にもさまざまな記号があるので、必要に応じて覚えていくとよいでしょう。
フローチャートの利用シーン
処理の流れを俯瞰して把握できるフローチャートは、システム開発やビジネスの現場で活用できるツールです。具体的にはどのような使われ方をしているのか、利用シーンごとに解説します。
プログラミングやアルゴリズム
プログラミングやアルゴリズムを表すことにフローチャートはよく用いられます。フローチャートを使えば、システムの全体図だけでなく、1つの処理、1本のプログラムの詳細も表記することが可能です。
フローチャートは全体の構造を俯瞰して処理の流れを把握し、各プログラムのロジックをつかむのに最適なツールだと言えます。
また、フローチャートはWebサイトを構築する際にも使われます。Webサイトの構造やユーザーの動線を把握するのにフローチャートは有用なツールです。
教育やビジネス
フローチャートが使われるのはプログラム開発の世界だけではありません。教育やビジネスなどの分野でもフローチャートは活用されています。
例えば、教育であれば学習課題や授業計画を図式化するだけでなく、グループワークの説明や教科ごとの解説にもフローチャートが使われます。
また、ビジネスにおいても業務プロセスや事業計画の可視化、製品開発の工程管理などにフローチャートが大いに役立ちます。
フローチャートの基本タイプ
フローチャートの作り方には基本となるタイプ(型)があります。それぞれのタイプを理解し、使い分けることがフローチャート作りを上達させるためのコツです。
順次構造
順次構造とは、その名の通り上から順番に処理を記述する構造です。フローチャート記号の処理(長方形)と処理の流れ(矢印)を用いて表記します。
上から下に流れるシンプルな処理を表す順次構造ですが、順番を間違えると処理がうまくいかないことがあります。したがって処理の順番には注意しなくてはなりません。あらかじめ処理を細かく分割しておき、正しい順番で組み立てることが必要です。
分岐構造
分岐構造は条件によって処理の流れが分かれる構造です。フローチャート記号の判断(ひし形)に条件を記載し、条件に該当する方向へと分岐していきます。
プログラミングにおいてはIF文やCASE文を用いるときに分岐構造が使われます。分岐するための条件はYES/NOで判断できるもの、ケースごとに判断できるもののほか、どれにも該当しない場合を用意しておかないと、処理が正常に進まないことがあるので注意が必要です。
ループ
ループには2つの種類があります。一つは条件を満たしたらループを抜けるもの、もう一つは条件を満たしている間ループを続けるものです。
例えば1から10までカウントし10になったら処理を抜けるのが前者、カウントが10未満の間は処理を繰り返すのが後者です。どちらも結果としては同じなのですが、フローチャート上の表記方法やプログラムのロジックが異なるため、どちらを使うか事前に決めておく必要があります。
なお、ループは抜ける条件を正しく設定しないと処理が終わらなくなる無限ループに陥ることがあります。特に二重ループなどの複雑なループ構造を作るときには注意が必要です。
その他のフローチャート
フローチャートはプログラムやアルゴリズムの流れを把握するのに便利なツールです。特にアルゴリズムをフローチャート化することは、一つひとつ処理を分解して流れを追う必要があるため、アルゴリズム理解の促進につながります。
代表的なアルゴリズムについて解説しますので、それぞれフローチャートを作成してみてください。
バブルソート
バブルソートはソート(並び替え)の代表的なアルゴリズムです。バラバラに格納されているデータを上から順番に比較し、上のデータが大きければ下のデータと交換をすることで、並び替えを完成させます。
バブルソートそのものは難しいものではありませんが、フローチャート上では比較やループを多用する必要があるため、表記することができればアルゴリズムに対する知識が深まるはずです。
リニアサーチ
リニアサーチは線形探索法と呼ばれるデータサーチのアルゴリズムです。『線形』の名が示すとおり、上から順番にデータを一つひとつチェックし、条件に該当するデータが見つかるまでサーチを続けます。単純なアルゴリズムですが、その分データが見つかるまでに時間がかかるという特徴があります。
バブルソートと異なり、データ同士の比較がない分アルゴリズムもシンプルですから、フローチャートに起こしやすいアルゴリズムだと言えるでしょう。
バイナリサーチ
バイナリサーチは二分探索法と呼ばれるデータサーチのアルゴリズムです。上から順番に検索をするリニアサーチとは異なり、あらかじめソートされたデータの中心値から2つのグループに分け、検索対象のデータがどちらのグループに含まれているか絞り込んでいく方法です。
バイナリサーチはリニアサーチに比べ、短時間でデータを見つけることができるメリットがあります。その分、アルゴリズムも複雑になるため、フローチャートもループや判定を駆使して作る必要があります。
フローチャートの作り方
ここではシステム開発を例にフローチャートの作り方を解説します。フローチャートはシステム開発だけでなく、業務フローなどにも使われますが、いずれの場合でも基本的には同じ流れで作っていきます。
目的や範囲を決める
フローチャートを作る前に、まず目的と範囲を決めます。『目的』とは、誰が何のためにそのフローチャートを使うのかということです。
例えば、同じプログラム開発でも、クライアント向けに処理の流れを説明するのが目的なのか、プログラマ向けに処理の流れを理解させるのが目的なのかによって、作り方は大きく変わります。
クライアント向けであれば大まかな流れを分かりやすくする必要がありますし、プログラマ向けなら一つひとつの処理を細かく指示することが求められます。
一方『範囲』とは、どの処理までをフローチャートにするかということです。システム全体なのか、一つの機能なのか、プログラム1本なのかによってフローチャートに起こす範囲が変わってきます。まずは目的と範囲をセットで考えることが必要です。
タスクの抽出と整理
目的と範囲が決まったら、次はタスクを洗い出します。タスクとは機能やプログラムを構成する要素のことです。一つの機能を完成させるためには、どのような処理が必要なのかを思いつく限り洗い出します。このときは順番を意識する必要はありません。
タスクの洗い出しが終わったら、次はタスクを整理します。似ている処理ごとにまとめる、タスクの順番を決めるなど、どのように処理を進めるかを整理しておくと、フローチャートをスムーズに書くことができるでしょう。結果的にプログラムも分かりやすく作りやすいものになるはずです。
図の作成と検証
整理したタスクをもとにフローチャートを書き起こします。フローチャートを作るときは、最初から完璧なものを作ろうとしないことがコツです。まずは荒起しでも構わないので、一通りのタスクを書き込んでいきます。
次に、作ったフローチャートをもとに設計書の作成や設計レビューを行います。ここでフローの内容に不備や不足があれば追記・修正をしていきます。
また、プログラム開発に入ったあとでフローチャートに問題があれば、その都度訂正して精度を上げていきます。後から見直したときに、実際のプログラムとフローチャートが異なっていては問題です。フローチャートは常に最新の状態にしておく必要があります。
書き方のコツ
フローチャートは限られたスペースにさまざまな情報を凝縮して作るため、ある程度の見やすさが必要になります。誰が見てもすぐに内容を理解できるフローチャートを作るためのコツを紹介します。
時系列を明確に
フローチャートはフロー(流れ)を表すものですから、原則的には上から下に、あるいは左から右に時間の流れが進んでいくものです。この時系列が狂っていると、処理があっちに行ったりこっちに来たりして非常に見づらいフローチャートになってしまいます。
フローチャートは誰が見ても直感的に分かるよう、時系列を明確にしておくことが大切です。
文字は最低限
フローチャートは各記号の中に処理の内容などを記入します。そのため、読みやすいフローチャートにするには、記入する文字数をできるだけ少なくすることが重要です。
特に文章の形にしてしまうと文字数が多くなってしまいます。例えば『データを出力する』と書くところを、『データ出力』や『アウトプット』にすれば、同じ意味を保ちつつ文字数を減らすことができます。このように短くても意味が通るように工夫することが必要です。
基本記号の使用
フローチャートで用いる記号についてはすでに解説しましたが、それぞれの記号には決められた意味があるため、自分で勝手に作った記号を用いることはしない方がよいでしょう。フローチャートは誰が見ても同じ意味で通じる必要があります。
フローチャートの基本記号は数もそれほど多くないので、意味と使い方をきちんと理解し、正しく使うことが重要です。
ツールやアプリを活用しよう
フローチャートは紙とペンがあれば作ることができますが、クライアントに見せたり、資料として保管したりするのであればデジタル化したフローチャートの方が便利です。
さまざまなフローチャート作成用のツールやアプリがありますが、その中から使いやすいものを紹介します。
手軽に作図できるdraw.io
『draw.io』は会員登録不要、無料で使うことができる作画ツールです。シンプルかつ手軽ながら、テンプレートなどフローチャートの作成に必要なものは一通りそろっているので、ある程度きちんとしたフローチャートを作りたいときに最適でしょう。
Webアプリ版、デスクトップ版がそろっているので、環境に合わせて使い分けることもできます。作成したフローチャートはパソコンだけでなく、Google DriveやOne Driveなどのオンラインストレージに保存可能です。
Flowchart Maker & Online Diagram Software
パワーポイント同様に使えるGoogleスライド
『Googleスライド』はGoogleが提供しているプレゼンテーションソフトです。MicrosoftのパワーポイントやAppleのKeynoteと同じように図形の描画ができるため、フローチャートを作ることができます。
『Googleスライド』はプレゼンテーションソフトなので、他の作画ツールに比べると使いやすさの面では劣りますが、Googleアカウントを持っていれば誰でも使うことができるため、簡単なフローチャートであればGoogleスライドでも十分でしょう。
そのままスライドとしてプレゼンテーションで利用できるというメリットもあります。
Google スライド - オンラインでプレゼンテーションを作成、編集できる無料サービス
利用者の多いLucidchart
『Lucidchart』はオンライン上でフローチャートを作ることができるツールです。大手企業でも利用されており、信頼性は高いと言えます。
その特徴は何と言っても軽快に動作することでしょう。オンライン上のソフトですが、タイムラグをほとんど感じることなくフローチャート作りに集中できるはずです。
作成したフローチャートはPDFやJPEG形式で書き出すことができるだけでなく、SlackやGoogle Driveなど各種オンラインサービスと連携することができるため、さまざまなシーンで活用できます。
『Lucidchart』にはフローチャートの作成数に制限のある無料版のほか、無制限にフローチャートを作ることができる有料プランも用意されています。必要に応じて使い分けましょう。
フローチャートメーカー & オンラインダイアグラムソフトウェア | Lucidchart
まとめ
フローチャートはシンプルながら、システムや業務の全体像のような大きな流れを把握したり、プログラム単位の機能や業務プロセスのような小さな流れを理解したりするのに最適なツールです。
フローチャートを作るためには、正しい書き方を覚えるだけでなく、システムや業務の内容をきちんと理解し、細かな単位にまで分解できなくてはなりません。その分、フローチャートを正しく作れるようになれば、さまざまなシーンで活躍できるでしょう。