• ベストアンサー

フローチャートを書く書かない

 元ハード屋です。 先日ASIC設計(半導体設計)の方との話で驚いたことがあります。その方はC言語を使いフローチャートは書かずにいきなりコーデングするそうです。 装置物(マイコンでの制御)の設計を10年位前にしていましたが、その時一緒に仕事をしてましたソフト屋さんはたしかC言語を使い、そして沢山のフローチャートを書いていました。 最近はC言語ではフローチャートを書かないのでしょうか。また言語(FORTRAN、COBOL、BASIC、、、)或いはやる内容により差があるのでしょうか。私はプログラマーでは有りませんが最近Visual Basicで割合大きなプログラムを組みましたが、その時はフローチャートを書きました。あとで変更する時フローチャートが無いと困るだろうと感じています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#198951
noname#198951
回答No.1

頭の中で整理できたり、小規模なモノ、動作させながら仕組みが変わる可能性が ある場合はフローチャートを書かずにすぐに打ち込みするのではないでしょうか? 比較的小さいものはフローチャートを書かずに組ながら考えます。 出来上がってからちゃんとしたフォローチャートを残しますけど。 (プログラムを入力するのは面倒ではなくてもフローチャートを書くのは面倒 という人もいますので。)

motden
質問者

お礼

 ご回答有難う御座います。 >比較的小さいものはフローチャートを書かずに組ながら考えます。  これでしたら良く理解できます。 >出来上がってからちゃんとしたフォローチャートを残しますけど。  後でプログラムを見直す時や、特に製作者以外が見る時はフローチャートが無いと理解するのに大変だろうと考えた次第です。

その他の回答 (6)

  • caceres
  • ベストアンサー率43% (61/140)
回答No.7

私もこの十年、書く書かないで変化を感じていますので一言言わせてください。 6800,8080からアセンブラを始めてH8,PIC,SH4,Basic,C,C++,Delphiと今でも現役ですが低位な言語ほどフローは重要と思っています。 アセンブラならほぼ一対一でフロー通りに打ち込めばバグは殆ど無いレベルが可能。 フローをいい加減にすると単純なバグ取りで大幅に時間がかかると思います。 Cでは経験によりライブラリが貯まりますのでそれにより機能ブロックで書くことが多くなりました。 WindowsアプリではユーザーIFは仕様書に近いレベルとしハードアクセスやシーケンス、時分割動作などは仕組みに納得がいくまで紙で表現してからコーティングしています。 25年前のアセンブラ、コンパイル時間と比較すると相当な差がありますがその分作業も増えていますのでやはり一言で説明できないような処理をフローなど書かないでいきなり打ち込んでいくのは複雑なシステムになるほど危険度が高くなるでしょう。 部下や学生に指導する機会があったときは「わからなくなったら紙に書きなさい」と言っています。 脳内思考で見渡せないときは既に能力のオーバーフローBitが立っていますのでブロック図やシーケンスチャート見直すことで道が開けてくると思っています。 ですから言語やシステムによる違いがあると思いますが教育や業務であるなら間違いなく何が目的か理解できるようなソース以外の表現が必要と思います。

motden
質問者

お礼

 ご回答有難う御座います。 >6800,8080からアセンブラを始めて 懐かしいCPUです。私はZ80をよく使ってハード設計をしていました。一緒に仕事をしてましたソフト屋さんからフロチャートが大事だと何度も聞いた記憶があります。 >脳内思考で見渡せないときは既に能力のオーバーフローBitが立っていますのでブロック図やシーケンスチャート見直すことで道が開けてくると思っています。  私も同じ考えです。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.6

#5です。 規模が小さければ、モジュール単位で、 何をしているか、またI/Fの詳細など 書けば、こと足りると思います。 言語の知識と、ある程度の設計書があれば、 ディーテールフローがなくても、別の人が メンテするのも、可能と思われます。 ------------------ 先日のニュースで、金融系企業で現行のシステム をメンテナンスしようとしたところ、現在のSE、 PGでは、当時の設計書が理解できないため、現 行のシステムに変る新しいシステム開発に着手し たと言っていました。

motden
質問者

お礼

 再度のご回答有難う御座います。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.5

いまは、現場を離れたSEです。 お客様と契約する際、納品物を明記します。 その中で、フローがあれば、当然書きますし、 フロー作成の時間もスケジューリングし、契約 見積りを立てます。 お客様によっては、機能仕様書・外部設計書( モジュール構成)・内部設計書(詳細設計書)・ ソースコードのレビューを要求されるケースも あります。 また、ソフト業界では、ISOを取得するところ も、増えたため、品質管理の一環としても、ドキ ュメントの作成フェーズは、重要視されてきてい と思います。

motden
質問者

お礼

 ご回答有難う御座います。 >その中で、フローがあれば、当然書きますし、  お書きになるのですね。 過去の発言を調べてみますと書く人書かない人とも沢山いらっしゃいます。書かない人は規模が小さいかフローチャートに代わる資料が有ると言う事でしょうか。

  • 0x131cc6e
  • ベストアンサー率36% (42/115)
回答No.4

言語に関わらず、ソースコードと1対1になっているような詳細なフローチャートは書かないですね。 機能単位でのフローは書きますが。 あと、家にいてPCが手もとにない時にふとアイデアが浮かんだりすると裏紙にグリグリ書いて形にする、というのもあります。 いずれにせよフルには書かないです。 理由は、 1、実装速度 2、プログラマとコーダが同一人物であること(=僕なんですが:笑) 3、メンテナンスも同一人物であること といったところです。 要するに後の事を考慮できるほど金額的にも納期的にも余裕が無い場合が多い、って事かな。トホホ… ただ、コーディングと同じレベル(やスピード)でフローチャートが書けるならやった方が絶対いいと思います。 机上でロジックが完成してあとは打ち込むだけ…。 素晴らしい。僕もそうありたいです。

motden
質問者

お礼

 ご回答有難う御座います。 >言語に関わらず、ソースコードと1対1になっているような詳細なフローチャートは書かないですね。 機能単位でのフローは書きますが。  これは私もそのようにしています。 >3、メンテナンスも同一人物であること  時間が経ちますとどんどん記憶が薄れていきますのでフローチャートを書かない人は後で大変ではないかと思ったのですが大丈夫なのでしょうか。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.3

外部設計などでDFDを書くことはありますが、プログラムレベルの内部設計でフローチャートを書く事はないですね。 モジュールレベルで詳細に設計しておいて、状態遷移図を記入するぐらいでしょうか。 RAD用のツールでPADを定義してソースを生成するものがありましたが。

motden
質問者

お礼

 ご回答有難う御座います。

  • gtamo2
  • ベストアンサー率28% (119/424)
回答No.2

最近はCOBOLとSQLを使っている、一般的なソフト開発者です。ホストの経験、PL/I、VBS等あります。 最近フローを書いた記憶がありません。要件定義から始まって機能設計書を書くまでの段階で、機能をバラバラにしてしまい、一つ一つのモジュールをフローを書くまでもないくらいの単機能にしてしまいますから。 フローを書かないと分からないようなモジュールを新人に渡しても、どんな物が出来てくるか分かりませんしね、テストもケースばかり増えて効率悪いです。 今の現場ではあまりフローは書きませんよ。

motden
質問者

お礼

 ご回答有難う御座います。 >最近フローを書いた記憶がありません。要件定義から始まって機能設計書を書くまでの段階で、  何時ぐらいから書かなくなったのでしょうか。 製作者以外の人が全体のプログラムの内容を理解するのに要件定義、機能設計書があれば大丈夫と言う事でしょか。

関連するQ&A

  • フローチャート以外の設計方法

    大学で初めてC言語プログラミングを習い、 授業が終わってからもC言語の書籍をいくつか読みました。 その力試しとしてトランプゲームのブラックジャックの プログラムを作ってみようと思いました。 その過程でフローチャートを用いて設計してみたのですが 条件分岐がぐちゃぐちゃだったり、gotoを使わなければならなかったり とてもまともなコードが書けるような代物ではありませんでした。 確かに読んだ本の中で 「フローチャートは設計するために使ってはいけない」 という内容がありました。 ですがそれらの本ではフローチャートはいけないというだけで 具体的にどのような設計方法を用いればよいか読み取れませんでした。 そこでみなさんに質問なのですが、 一通りプログラミング言語の文法を理解したプログラミング初心者が こんなプログラムを作りたいと思ってから (たとえば簡単なトランプゲームなど) 実際にソースコードを書くまでには どのような方法でどのような手順を踏んだらよいのでしょうか? 教えてください。よろしくお願いします。

  • COBOLやFORTRANは勉強するといいですか?

    いつも教わってばかりですみません。 今は「MySQLとPHP、JavaScript+αができればいいな。」と皆さんからのご意見で感じました。 まだ、MySQLを始めて数日です。 お話は変わりますが 以前お世話になっていた会社の情報システム部はCOBOLを使っていました。 検索してみると、 http://ja.wikipedia.org/wiki/COBOL http://ja.wikipedia.org/wiki/FORTRAN http://journal.mycom.co.jp/news/2010/01/12/022/index.html COBOLやFORTRANもいい言語のように書いてあります。 しかし、3つ目のURLでは上位に入っていません。 JAVAかC言語などができるようになったらCOBOLやFORTRANは不要なのでしょうか? それとも別物で他のメリットがあるのでしょうか? 蛇足ですがC言語をほんのチョットかじったことがあります。 何だかコンパイルがWindowsの場合とLinuxの場合とでエラーの出方が違うように感じました。 でもこの疑問は先の話です。 COBOLやFORTRANは勉強するといいですか? まったく急ぎませんがお返事待っております。 宜しくお願い致します。

  • Fortran と、C言語のデータの受け渡し

    Micro Soft Visual C++ 上で Fortran と、C言語のデータの受け渡しをしたいのですが、例えばC言語でint型のi,jを読み込み、Fortranでi,jを受け取り、その和kを求め、kをC言語に受け渡し、printfでkの値を表示させるプログラムはどんな感じになるんでしょうか? お手数ですがCとFortranのソースコードを教えていただけたらうれしいです。 また、Micro Soft Visual C++ 6.0 と Visual Fortran 6.1a ではできないのでしょうか? 教えてください。

  • フローチャートで。

    C言語で exit(0); というプログラムを中止するという処理をフローチャートで書くときって ↓ 四角(exit(0);) ↓ 終了 と、四角の処理で書いて最後の終了まで一気に線を引っ張ればいいのでしょうか? それとも中止だからその処理を書いてそのままでいいのでしょうか? break;の時は確か処理とかかかずにそのままループの外まで線を引っ張ったような気がするのですが、exitの場合はどうなるのでしょうか?

  • マイコンでDCモーター制御するため勉強期間

    ArduinoのマイコンボードをArduino IDEでしか使ったことのない人が、独学で、AVRやPICなどのマイコンで自分で一から回路を組んでDCモーターを制御できるようになるには、どのくらいの期間が掛かりますでしょうか?(普通に頑張れば3ヶ月くらいでできますでしょうか?) Arduinoとブレッドボード、ドライバICなどでDCモーターの制御はしたことがあり、C言語の基礎、高校物理、高校数学、制御工学はわかりますが、回路設計・製作の経験が全くありません。マイコンをArduino言語を使わずにC言語で制御する方法もまったくわかりません。 ご回答よろしくお願い致します。

  • プログラマってOLとお給料は変わらないのですか?

    女です。 今、一般事務の派遣で働いているのですが プログラミングに興味があるのでプログラマーになろうかなと思っていて、求人を見ていたのですが、 **************************************************************** 仕事内容 ・各種オープン系、制御系等のプログラムの設計、製造 *その他の言語の経験者も歓迎C#.NET,VB.NET,PHP,Perl,JAVA,COBOL,RPG,AccessSQLServer等 給与22万円 ~ **************************************************************** などでした。 これだったら、ちんたら事務のOLをしてても同じくらいもらえるのですが プログラマって事務職みたいな給料なのでしょうか? 「C#.NET,VB.NET,PHP,Perl,JAVA,COBOL,RPG,AccessSQLServer」が使えても大した価値はないのでしょうか? 稼ぎたい!からってプログラミング知識をがんばって身につけても、 大して稼げないのでしょうか? でも事務職よりはつぶしがききますよね?

  • 高等学校でのプログラミング言語

    高等学校でのプログラミング言語 高校の情報科などで学ぶ言語について教えていただけると助かります。 また、その言語を最初から学ぶのに役立つ参考書もあげていただけるとありがたいです。 今現在、情報科の教員免許の取得のため PASCAL,BASIC,FORTRAN,C,COBOLについて詳しく教えてくれるとよりうれしいです。 数学が苦手であまりよくわからないので、FORTRANを今やっているのですが、しょっぱなからついて行くのが厳しいです。 まとまっておりませんが、よろしくお願いいたします。

  • 組み込みプログラマ

    制御系(マイコン)のプログラマに就職が決まった大学生です。 現在、アセンブラの勉強をしています。 今まで、Z80、PICの経験があります。 しかし、C言語で組み込み系のプログラムを書いたことはありません。 そこで、実際に組み込み系で働いておられる方に質問があります。 1.現在のマイコンではC言語が主流ですか? 2.アセンブラだけでは食っていけませんか? 3.組み込み系は寿命が長いと聞いたことがあるのですが、   本当でしょうか?

  • コボルとはどのような言語ですか?

    友人がプログラマーを目指しています。 入社した会社では連日、厳しい研修が行われ、 コボルという言語を習っているようです。 でも、なんか様子がおかしいのです。 会社の規模に比べて採用人数が多すぎるんです。 で、続々と辞めてるんです。 友人はなんとかスキルを身につけたいから、とがんばっていますが そもそもコボルって、最近聞かない言語ですよね? コボルを身につけてプログラマーやSEとして先はあるんでしょうか?

  • コンパイラ言語って

    わたしコンパイラ言語をレポートとして調べなくてはならないのですが、たくさんある種類をどのように見つければよいのか分かりません。そこで皆さんの知っているコンパイラ言語を教えてください。 今私の知っているのは、 BASIC C PASCAL PL/I COBOL Fortran です。それ以外にどのようなものがありますか?お願いします。