質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

12回答

17131閲覧

フローチャートの必要性について

HogeAnimalLover

総合スコア4830

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

4グッド

4クリップ

投稿2018/05/26 07:50

編集2018/05/26 07:58

タグは便宜上のものです。

プログラムソース書き下し前にフローチャートを作るべし

と、以前はいわれていましたが、今のお時勢どう考えてもそうは思えません。流れを伝える相手がプラグラマでないならともかく、プログラマ同士の会話でフローチャートを使うというのはもう利点があると思えません。

フローチャートの必要性について意見をお聞かせください。

Wikipediaをみても、フローチャートはgoto文とif文だけでプログラミングしているようなものとすら書かれております(本質問投稿時現在)。正直、これならばC言語の方がまだ見やすいです。フローチャートを書くためには、結局のところ、手続き単位まで処理を確定することが必要であり、ここまで処理を整理しているならば高級言語で記述可能であるケースが大半だと思います。さらにいえば、今やプログラミング時にはIDEを使うことが常識となってきており、高機能なエディタ、デバッガを当然のように使うことができる環境にあります。

もちろん、C言語誕生以前には価値のあるものではあったとおもいますけれど、構造化プログラミングが常識となった今日現在、フローチャートの使用をマナーづけるのはもうナンセンスに思います。今、プログラミングの勉強資料を作成しており、意見が割れています。皆さんのご意見をお聞かせください。

TakeoAsai, LouiS0616, yohhoy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/06/03 03:19

プログラム開発に限った場合の必要性ですか?本来のフローチャートではないけど、フローチャートの形式のDFDを納品物として含めると納得する顧客もいるため (この質問自体が回答みたいになっちゃってますが・・・)
HogeAnimalLover

2020/06/21 12:06

はい。本来用途(プログラムの下書きとか情報共有のメモ資料)としてを考えています。つまり、フローチャートは本来手段であって目的物でないはずなんですが、これ自体を成果物の一つと考えている人が未だに多い気がします。
hentaiman

2020/06/21 22:12

二年前の質問にも関わらずご返信ありがとうございます。 仰る通りで、納品物として作る時は開発完了後の作成になるので作る側からしたらモノも時間も無駄ですね。 >これ自体を成果物の一つと考えている人が未だに多い気がします。 経験的に、超大手だけが100%そうです。きっと内部政治に必要なんでしょうね。 それらの子会社(グループ会社)を含む大抵の大手企業は不要でした。
guest

回答12

0

こんにちは。

プログラムソース書き下し前にフローチャートを作るべし

これはアセンブラ時代のお話ですね。当時は生産性が無茶苦茶低かったのでフローチャートのような非常に生産性の低い設計ツールを使ってもペイしていました。現代の高級言語の生産性はアセンブラに比べると非常に高いですからフローチャートを書く時間が勿体無いです。
昔(30年くらい前)でさえ、コンピュータ系の学術論文ではアルゴリズムをPASCALで記述する人も少なくありませんでした。(もちろんフローチャートで表現する人もいます。)

それでも特許を申請する時は事実上フローチャートが必須なので書くことはあります。また単純な処理を分かりやすく表現したいときはフローチャートを使うことはあります。フローチャートは直感的なので単純な処理ならば表現力に優れています。もちろん生産性は悲惨ですから分かりやすく表現することが重要な時限定ですね。例えば、お客様へ売り込みする際の資料などでしょうか。


なお、事前設計の重要性を否定するものではありません。
立案(多少複雑なものは複数立案します)→比較検討→ラフスケッチ記述の工程を経ることは多いです。
ラフスケッチを書いた後、元の案を修正することや、比較検討をやり直すことも少なくありません。
そのラフスケッチ記述にフローチャートを使うのは生産性/メンテナンス性が低すぎて役に立たないという意味です。私は普通に日本語で書いてます。

投稿2018/05/26 09:43

編集2018/05/26 09:44
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/27 14:56 編集

回答ありがとうございます。 特許の場合そうなんですか?まあ文章よりは分かりやすいかもしれませんけれど、プログラミングにおけるツールとしての価値はもはや薄れていると思います。
guest

0

今、プログラミングの勉強資料を作成しており、意見が割れています。

を見かけたので、少しだけ。

新人達にプログラミングを指導する機会があり、導入段階でフローチャートを描いてもらうことがあります。プログラミング未経験者もいますから、繰り返し・条件分岐といった処理の流れを作る思考を育てるために、プログラミング言語を使わない段階を設けるわけです。

流れを伝える相手がプラグラマでないならともかく

そう、改めて教えるまでもなく未経験者もフローチャートを見て理解できますから、そのような使い所はありますね。その場合、動作するプログラムがあって、説明のためにフローチャートを描く、という順番になるのではないかしら。

プログラムソース書き下し前にフローチャートを作るべし

頭の中にフローチャートのイメージを描いていることはありますが、それはコードに書き落とせるものだから、さっさとコーディングしたほうが速いのです。フローチャートを作る意義は殆ど感じません。プログラムの中の、ごく局所的な処理を他人と一緒に検討するためにホワイトボードに描いてみる、とかせいぜいそんな程度です。作るならデータ構造の設計図や状態遷移図・表なんかが重要です。

投稿2019/11/19 10:29

rubato6809

総合スコア1382

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2019/11/19 13:59

ですよねー。フローチャートと構造化プログラミングって互いに相容れないところがあると考えております。構造化プログラミングするならばフローチャートは最初から使うべきでないとすら考えております。エディタの機能が制限されていた時代ならともかく、今となっては必要性が感じられません。
guest

0

フローチャートは書かないという意見が多いですね。
実際に、別の方法で書く様に指示された事もあるし、フローチャートで不十分な事も多いです。
ただ、フローチャートに戻る事も多いです。理由として、
・ 代わりの記法として決定的なものが無い。
・ フローチャートなら、大抵の人が分かる。(教育が不要)
・ 専用のツールが無くても書ける。(Wordとかでパーツがある)
ということでしょうか。

投稿2018/05/29 13:42

pepperleaf

総合スコア6385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/29 13:44

回答ありがとうございます。 やはり、不十分と言われながらも「デファクトスタンダード」としての地位を確立しているというのは大きいですね。
guest

0

かつてのフローチャートとしては書かないですね。

全体の流れを概念的に(ざっくりと)書くのに使うことはあります。プログラミングと言うよりその前の基礎設計段階でのブレーンストーミングあたりで使う感じですね。

かつてのフローチャートの役割を担う物としては、UML(シーケンス図)で書くことが多いです。

投稿2018/05/27 15:07

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/29 13:28

回答ありがとうございます。 やはり従前のフローチャートの役割を求めるならば、新しくこれに代わるものについて導入を検討するというのも必要ですかね・・・
guest

0

フローチャートはドキュメントのひとつとして用意していた
という側面があったように記憶しているのですが、
そういう意味では昨今の開発規模/速度には見合わない
資料となったようにも感じます。

一方、既存のソースコードを理解するために
フローチャートに起こしてみるという局面もありましたが、
短いコードが尊いとされる現代においては
あまり意味がないかもしれません。

あれは大型汎用機の時代に使われていたものですから
時代が変われば、それに応じたやり方がもとめられている
ということなのではないでしょうか。

今、プログラミングの勉強資料を作成しており、意見が割れています

そういう事情ならば、そっちの話を詳しく書いたら
また違ったアドバイスが出てくると思いますよ。

投稿2018/05/26 08:34

takasima20

総合スコア7464

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/27 14:58

回答ありがとうございます。 ドキュメントとして用いるならば今はUMLとかより高次のツールが出てきている以上、フローチャートは不向きだと思います。そして、フローチャートを書ける各段階ならばプログラム自体を作成できる段階だっだりするわけで、そうなると本末転倒に思えます。
guest

0

ベストアンサー

scratch や node-red みたいなビジュアルプログラミングを資料のなかで紹介してみては?

m5stack の uiflow や micro:bit の makecode では ブロック表示と python/javascript での表示を切り替えることもできます。

投稿2019/11/23 07:24

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

フローチャートについては否定的な見解が主流のようですね。

処理や言語の種類によっては(あの)フローチャートでは表現しにくいものもあるのでしょうけど、とりあえず最初のオブジェクト指向言語といわれるRPG(ゲームのことではありません)くらいだとまだけっこう使えた気がします。

ランキング上位のそうそうたるメンバーの方々が口をそろえて“要らんだろ”と言うなら一般的にはそれがほぼ正しいのかなと思いますが、一方で決して優秀でない自分の経験で考えてみると、コーディングする前に考えを整理するのにはわりと良いツールだった……という記憶がなかなか否定できないでいます。

どうなんでしょう、私のようなランキング低位の方々などは「やっぱフローチャートとか書いてからじゃないと結局ミスが多くて……」みたいなことはないでしょうか。

投稿2019/11/15 03:00

k1000

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2019/11/15 15:36

古いトピックですが回答ありがとうございます。 私も今やフローチャートは書かないです。というのもIDEの進歩の結果、今やコーディングよりもフローチャート書く方が大きな手間になっていると考えているからです。
guest

0

昔は、納品物でフローチャートを大量に書かされましたが、
今は、フローチャートは書かないですね。
必要とは感じないですね。
普通にメモへ日本語で処理を箇条書きする方が有益と
思ています。

投稿2018/05/29 12:01

ai_2013_dev

総合スコア338

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/29 13:30

回答ありがとうございます。 納品物ですか・・・相手次第というところもありますよね・・・
guest

0

簡易言語(Pascal風)で書くことはあってもフローチャートは書かなかったですね。
昔(30年以上前)得体の知れないROM解析(MC6809の逆ASM)にフローチャート書きましたねd^^
・・・それが最後だったような^^;

投稿2018/05/26 11:27

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/27 14:52

回答ありがとうございます。 ですよねー。アセンブラならともかく高水準言語の記述には不向きと思います。(というか高水準言語が使えるならばフローチャートの必要性が疑わしい)
guest

0

昔ならともかく、今はフローチャートを書くところはほとんどないでしょう。初心者に説明する時に使うくらいでしょうか?フローチャートを書く時間をコードを書くのに回した方が有益でしょう。
ジョブフローならフローチャートもどきで書いているユーザーが何社かありました。

投稿2018/05/26 09:52

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/27 14:53

回答ありがとうございます。 もちろん、コンピュータプログラミング以外の流れの記述というのはナシでお願いします。
guest

0

フローチャートは書きませんねぇ。

if ( フローチャートが欲しい ) { Cの疑似コードで十分。 テキストエディタで書けるし。 }

投稿2018/05/26 08:33

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/27 15:00

回答ありがとうございます。 そうなんですよねー。プログラムのドキュメントとして考えるならば、読み手はCで話が通じる場合がほとんどですからねー。
guest

0

オブジェクト指向言語で実装する前提なら、フローチャートだけでは不十分だと考えます。
UMLを使うなど、代替案を検討すべきかと思います。

理由としては、フローチャートはあくまで「処理の流れ」を記載するだけであり、クラスの構造やクラス間の関係などを記載するには、不適切な図であるという点です。

投稿2018/05/26 07:58

rtr1950x

総合スコア298

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/26 08:05

回答ありがとうございます。 もはや今どきのプログラミングにおいて、図表はフローチャートだけでは不十分であることは勿論承知しております。ここでの題意は「(不十分であることを承知の上で)フローチャートを書く利点はあるか」というところを質問しております。
rtr1950x

2018/05/26 08:10

> 「(不十分であることを承知の上で)フローチャートを書く利点はあるか」 「無い」と断言します。不十分なものをあえて書くのは、害悪以外の何者でもありません。 推測ですが、「俺ぁUMLなんて読めねーよ、フローチャート書けよ、フローチャート!」と言っている一部の方が「フローチャート必須派」なのでは無いでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問