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

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

ただいまの
回答率

90.60%

  • アルゴリズム

    392questions

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

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

受付中

回答 9

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 1,155

HogeAnimalLover

score 2818

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

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

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

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 9

+2

こんにちは。

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

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

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


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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/27 23:55 編集

    回答ありがとうございます。

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

    キャンセル

+1

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/27 23:58

    回答ありがとうございます。

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

    キャンセル

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/29 22:28

    回答ありがとうございます。

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

    キャンセル

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/29 22:44

    回答ありがとうございます。

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

    キャンセル

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/26 17:05

    回答ありがとうございます。

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

    キャンセル

  • 2018/05/26 17:10

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

    キャンセル

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/28 00:00

    回答ありがとうございます。

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/27 23:53

    回答ありがとうございます。

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/27 23:52

    回答ありがとうございます。

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/29 22:30

    回答ありがとうございます。

    納品物ですか・・・相手次第というところもありますよね・・・

    キャンセル

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

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    アルゴリズムを勉強したい

    近いうちに、企業の面接課題としてアルゴリズムの問題が出されることになりました。 そこで、アルゴリズムを勉強するのにおすすめのサイトor書籍があれば教えてほしいです。 もちろん付け

  • 解決済

    フローチャート図の書き方

    前提・実現したいこと 現在フローチャートを勉強しており、以下の記載方法がわからないため質問致します。 発生している問題 処理に応じてDBのあるステータスを変更するフローチ

  • 受付中

    複数のキーワードで検索させる

    複数のキーワードを入力することであるデータを検索するようにしたいのですがうまくいきません。 以下のプログラムで一つのキーワードで検索するとこまではできました。 <htm

  • 解決済

    電卓を作りたい

    小数点の計算もできる電卓のプログラムを作ろうと思っています。 ですが、考えれば考えるほど分からなくなってしまいます。 電卓のプロセス、考え方やヒントを教えていただけませんか?

  • 受付中

    Ruby の loop, next を使った課題についての質問です

    前提・実現したいこと 現在コードアカデミーを使ってRubyを勉強中なのですが、課題につまづいております。loop, next if ,を使った問題なのですが、エラーとして「18か

  • 解決済

    【基本情報技術者】アルゴリズム

    基本情報技術者 情報処理はほぼ初心者に近く、多々わからないことがありますが、 ご教授のほどお願い致します。 そもそもアルゴリズムではある処理についてトレースしろと口酸

  • 解決済

    プログラミングの勉強について

    勉強についてお伺いさせて頂きます。 わたしは今、Swift,Javascript(node.jsやReact)などを勉強しています。 ほぼひとりで、udemyやネットの情報などで勉

  • 受付中

    Java 社員データベース フローチャートについて(クイックソート、データの修正、削除)

    現在社員データのデータベース管理プログラムというものを組んでいます。 管理する情報は 1,社員番号,所属,役職,氏名,自宅TELL,生年月日,年齢,勤務先,勤務先TELL 管理先は

同じタグがついた質問を見る

  • アルゴリズム

    392questions

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