フローチャートやアクティビティ図という言葉を聞いたことがないか。今は学校のプログラミングなどの授業で出てくることがあるな。どちらも手順の流れを表すようですが、描き方が違うようです。では似たようなものがなぜふたつあるのか、どう使い分けたらよいかわかるか。その特徴や違い、使い分けを長い経験を持つプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさん。

同じ?違う?フローチャートとアクティビティ図

image by iStockphoto

学校でプログラミングについて学ぶようになり、フローチャートやアクティビティ図などを目にする機会も増えています。プログラムにするために何をどのような順序でするかをわかりやすくするのがフローチャートやアクティビティ図の役割

ではフローチャートとアクティビティ図は何が違うのでしょう。ざっくり言えばどちらも目的は同じ昔からあったのがフローチャートで、その後登場したのがアクティビティ図です。描き方は違いますが、どちらもプログラムをつくる時に活用します。

\次のページで「フローチャート:処理の流れを示した図」を解説!/

フローチャート:処理の流れを示した図

フローチャートとは日本語では流れ図とも呼びます。プログラムをつくる時に描くことが多いですが、考えをまとめたりする場合でも有用です。単純に上から順番に並べるだけではなく条件によって違うことをすることや、何度か繰り返すことを表現できるようになっています。

プログラムをつくる場合、簡単なものであればいきなりつくり始めることも可能。しかし、複雑な内容のものなどは、事前にどのような順番で何をするのかを考える必要があります。そんな場合に日本語の文章で書くよりもフローチャートで描く方が直感的でわかりやすいのです。

アクティビティ図:フローチャートを改良したもの

アクティビティ図もフローチャートと目的は同じ見た目も似ている部分が多いです。アクティビティ図というものが登場したのはフローチャートよりも後。元々はフローチャートしかなかったのです。

では、なぜフローチャートがあるのにわざわざアクティビティ図をつくったのでしょう。実はプログラムづくりも技術の進歩があります。昔はフローチャートで十分だったものが、それでは難しい表現が必要に。その他の理由もあって、アクティビティ図というものが誕生したのです。

フローチャートだけでは表せない?UMLとは

image by iStockphoto

フローチャートはプログラムですることの内容や順番を図にして分かりやすくしたものです。後で描くこともありますが、普通はプログラムをつくる前に描きます。しかし、プログラムをつくる前の設計でつくるものはフローチャートだけではありません。しかし、それは多くの種類があり、描き方も決まっていませんでした。それでは大変ですよね。

そこで生まれたのがUMLというもの。アクティビティ図もUMLというものの中のひとつです。UMLでは目的に応じて標準的な図表をいくつか用意しています。その中でもフローチャートと似ているものがアクティビティ図なのです。

アクティビティ図はUMLで使う図のひとつ

アクティビティ図UMLというもので決まっている標準的な図表の中でも、フローチャートと同じ目的のために使うもの。だから、両者は似ています。では、UMLの中にフローチャートを取り込んでしまえばよいと思いませんか。そうすれば、新しいものをつくる必要がありません。

しかし、それはできませんでした。と言うのもフローチャートの描き方には決まったものがなかったため。なんとなく同じような描き方をしていますが、細かい部分の標準的な決まりはなかったのです。実は世界標準のフローチャートの描き方というものもあります。しかし、それが決まる前から様々な描き方があったため、今でも世界標準以外の描き方が乱立しているのです。

統一モデリング言語?UMLとは

ではUMLとは一体どういうものなのでしょう。「Unified Modeling Language」の頭文字をとったもの。日本語では統一モデリング言語と呼ばれています。最初にざっくりと説明しましたが、プログラムをつくる前の設計作業でつくる資料は様々。それは会社ごとやプログラムを作るチームごとに決めていました。そのため、同じ目的のものが違った資料や書き方になっていたのです。

それでは効率が悪いため、それらをまとめたものをつくろうという動きがありました。その結果生まれたのがUML。だから統一とついているのですね。モデリングとはプログラムでやりたいことを、つくりやすくするためにまとめることと考えてください。統一されたモデリングのための言語だから統一モデリング言語なのです。言語といってもわかりやすく図で表現したものになります。

\次のページで「フローチャートの弱点とアクティビティ図」を解説!/

フローチャートの弱点とアクティビティ図

先ほど説明した通り、フローチャートは標準的な描き方もあります。しかし、実際には描く人がそれぞれ工夫して描いていることが多いです。何をどう表現するかは仲間内でなんとなく共有されているもの。しかし後から加わった人や外の人にはわかりにくいということに。

また昔のコンピューターは処理を順番に実行するのが普通です。フローチャートもそれに合わせて順番に並べて描きます。しかし、技術の進歩でコンピューターも同時並行で作業をするように。例えば、人間でも何かをしながら別のことをすることがありますよね。そのような同時に並行して何かをするという表現はフローチャートにはなかったのです。そんな弱点を解消したのがアクティビティ図になります。

フローチャートとアクティビティ図の違いと使い分け

image by iStockphoto

アクティビティ図はUMLで使う図のひとつ。そのため、フローチャートとアクティビティ図のどちらを使うのかは単独で考えるよりは、設計作業でUMLを使うかどうかUMLを使うのであれば必然的にフローチャートではなくアクティビティ図を描きます。

どちらも処理の流れを表現する

何度も繰り返して説明していますが、フローチャートとアクティビティ図は目的は同じ描き方は似ている点もありますし、違う点もあります。プログラムの中で行うことの順番や内容を図にしてわかりやすくしたものです。そのためどちらも同じように使うことができます。

その流れについても、プログラム全体を描くこともあれば、とくに難しい部分だけを描くことも何で描くかだけでなく、どこを描くのかも重要です。

アクティビティ図はフローチャートでは難しい表現も可能

フローチャートは単純にやることを順番に描いたもの。例えば、自動販売機ではお客がお金を入れて商品を選択すると購入できますよね。これをフローチャートにすると、お客のやることと自動販売機のやることがごちゃごちゃに。アクティビティ図ではこのような場合も分けて描くことが可能です。

実は分けて描くこと自体はフローチャートでも工夫すればできます。ただ、そのような場合はこうしましょうという標準的な決まりがありません。そのため、工夫して書いてもそれをどう読み取って欲しいかの説明が必要アクティビティ図ではこのような場合はこう描くという決まりがあります。だから、誰でも誤解なく伝わるわけです。

どちらがよい?フローチャートとアクティビティ図の使い分け

フローチャートとアクティビティ図はどう使い分ければ良いでしょう。UMLを使う場合はアクティビティ図を使うべき。では、使わない場合はフローチャートにすべきでしょうか。使い分けの決め手はそれをどのくらいの人数で利用するのか。

多くの人数で誤解のないように情報共有するためであれば、描く内容がきっちり決まっているアクティビティ図が便利。描き方が決まっているので誤解なく多くの人に伝わります。一方、自分だけで使う場合や、少人数の場合描き方に工夫ができるフローチャートを適切に使った方が伝わることも。使い分けが面倒であれば、UMLやアクティビティ図に統一してしまう方が楽ですが、UMLを知らない人にもなんとなく伝わるのはフローチャート相手や目的で使い分ける必要があります。

\次のページで「ふわっとしたフローチャートと厳密なアクティビティ図」を解説!/

ふわっとしたフローチャートと厳密なアクティビティ図

フローチャートもアクティビティ図もプログラムの中でやることの順番と内容を分かりやすく図にしたもの目的が似ているため、描き方も似ている部分が多いです。その1番の違いは、フローチャートは方言のようにさまざまな描き方があること。標準的なルールもありますが、独自に工夫した描き方のものも多く、ふわっとしています。

一方、UMLという統一したルールが決まっているのがアクティビティ図誰が見ても同じように理解できることが目的なので、独自の工夫をするのはおすすめできません決まったルールでも誰にでも分かるように描くか、必要に応じて分かりやすいように工夫をできるかアクティビティ図とフローチャートの大きな違いです。

" /> 簡単でわかりやすい!フローチャートとアクティビティ図の違いとは?UMLや使い分けもプログラマーがわかりやすく解説 – ページ 3 – Study-Z
言葉雑学

簡単でわかりやすい!フローチャートとアクティビティ図の違いとは?UMLや使い分けもプログラマーがわかりやすく解説

フローチャートの弱点とアクティビティ図

先ほど説明した通り、フローチャートは標準的な描き方もあります。しかし、実際には描く人がそれぞれ工夫して描いていることが多いです。何をどう表現するかは仲間内でなんとなく共有されているもの。しかし後から加わった人や外の人にはわかりにくいということに。

また昔のコンピューターは処理を順番に実行するのが普通です。フローチャートもそれに合わせて順番に並べて描きます。しかし、技術の進歩でコンピューターも同時並行で作業をするように。例えば、人間でも何かをしながら別のことをすることがありますよね。そのような同時に並行して何かをするという表現はフローチャートにはなかったのです。そんな弱点を解消したのがアクティビティ図になります。

フローチャートとアクティビティ図の違いと使い分け

image by iStockphoto

アクティビティ図はUMLで使う図のひとつ。そのため、フローチャートとアクティビティ図のどちらを使うのかは単独で考えるよりは、設計作業でUMLを使うかどうかUMLを使うのであれば必然的にフローチャートではなくアクティビティ図を描きます。

どちらも処理の流れを表現する

何度も繰り返して説明していますが、フローチャートとアクティビティ図は目的は同じ描き方は似ている点もありますし、違う点もあります。プログラムの中で行うことの順番や内容を図にしてわかりやすくしたものです。そのためどちらも同じように使うことができます。

その流れについても、プログラム全体を描くこともあれば、とくに難しい部分だけを描くことも何で描くかだけでなく、どこを描くのかも重要です。

アクティビティ図はフローチャートでは難しい表現も可能

フローチャートは単純にやることを順番に描いたもの。例えば、自動販売機ではお客がお金を入れて商品を選択すると購入できますよね。これをフローチャートにすると、お客のやることと自動販売機のやることがごちゃごちゃに。アクティビティ図ではこのような場合も分けて描くことが可能です。

実は分けて描くこと自体はフローチャートでも工夫すればできます。ただ、そのような場合はこうしましょうという標準的な決まりがありません。そのため、工夫して書いてもそれをどう読み取って欲しいかの説明が必要アクティビティ図ではこのような場合はこう描くという決まりがあります。だから、誰でも誤解なく伝わるわけです。

どちらがよい?フローチャートとアクティビティ図の使い分け

フローチャートとアクティビティ図はどう使い分ければ良いでしょう。UMLを使う場合はアクティビティ図を使うべき。では、使わない場合はフローチャートにすべきでしょうか。使い分けの決め手はそれをどのくらいの人数で利用するのか。

多くの人数で誤解のないように情報共有するためであれば、描く内容がきっちり決まっているアクティビティ図が便利。描き方が決まっているので誤解なく多くの人に伝わります。一方、自分だけで使う場合や、少人数の場合描き方に工夫ができるフローチャートを適切に使った方が伝わることも。使い分けが面倒であれば、UMLやアクティビティ図に統一してしまう方が楽ですが、UMLを知らない人にもなんとなく伝わるのはフローチャート相手や目的で使い分ける必要があります。

\次のページで「ふわっとしたフローチャートと厳密なアクティビティ図」を解説!/

次のページを読む
1 2 3 4
Share: