• ベストアンサー

プログラムの実務で

よろしくお願いします。 現在パソコンの講師の仕事をしています。 高校の情報処理の授業を担当することになりました。 自分自身はプログラムを組んだ経験はありませんが プログラミングの説明をしなければなりません。 BASICの基礎なのでたいしたことはしないのですが 実際に実務をするときに教科書に書いてあるような 下記の流れでよいのかを知りたいです。 問題の分析 → 流れ図の作成 → コーディング → プログラムの入力 → テストラン・デバッグ → プログラムの実行 流れ図はフローチャートシートにテンプレートを 使って書き、コーディングシートに記入する、と 書かれてるのですが、実際にされてるのでしょうか? 教科書がちょっと古そうなので実務と少々ギャップが あるような気がするのですが・・・

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

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.4

こんにちは、honiyonです。  フローチャートは、パソコン向けプログラミングではもう限界です。  頑なに従って設計すれば、逆に生産効率が低下します。かといって設計は重要なので、各社、または開発者個人で効率的な設計手法を用いている場合があります。  日本ではウォーターフォール形式と呼ばれる、Dpopさんがご回答されている方式が標準的ですが、他にスパイラル形式による開発手法があります。  スパイラル形式とは、まとめて設計、まとめて開発、と呼べるウォーターフォールに対し、部品単位、機能単位で設計から開発を行うという、小さな設計、小さな開発を繰り返し行う手法です。  開発者から見れば非常に効率の良い手法ですが、全体の工程や期間が見えにくいというデメリットとなり、これが日本のIT業界では致命的となり普及が進んでいません。  というわけで、学校で学んだ知識は基本中の基本と捉えるのが良いでしょう。  実務は、その基本中の基本を元に発展・効率化した形で作業が流れているという解釈が実際に近いかも知れません。  参考になれば幸いです(。。

macheriemari
質問者

お礼

ご回答、ありがとうございます。 設計・開発の仕方も色々あるのですね。自分自身でも勉強してみて、色んな言語の基礎の基礎なんだろうなぁと思います。やはり会社に入ってからその現場、現場での業務で学ぶものなのでしょうね。とりあえず無難な線で説明できるようにがんばってみます。 とてもわかりやすい説明をありがとうございました!

その他の回答 (7)

回答No.8

BASICの基礎…という時点で古いと思うので、そのままの内容で良いんじゃないですかねえ。 即戦力となる人材を養成する訳でもないと思うので、そういった先人の通った道?みたいな物を学ぶことも大切かと思うので。 紙に書いてから入力ってのも良いんじゃないでしょうか。 あらかじめ全体像を把握しておいた方が、理解も深まるでしょうし。 私は最近まで学生でしたが、そんな感じで習いました。先生はおじいちゃんでしたが(笑)

macheriemari
質問者

お礼

funifuni_no_nekoさんも学校で授業受けられたんですね? まぁ確かに教科書に沿ってやろうと思うと、かなり現実とはギャップがあると思います。実際「情報」とは何ぞやのうんちくとか歴史とか自分でもやってて眠くなりそうな内容から始まってますしね。でもそこに基本があるんでしょうからね、自分自身も勉強するつもりでやってみます。 ありがとうございました!

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.7

いちおう、システムアナリストやコンサルタントが外部仕様を決めた後とすると、 外部仕様の明確化→サブシステム分割→基本設計(=内部設計)(各サブシステムのプログラム分割と各プログラムの機能とかファイルやDBの論理設計、入出力形式の詳細決定、プログラム間のインタフェース設計)→プログラムの詳細設計→コーディングまたはCASE等プログラム開発支援ツールでのプログラム作成→単体テスト→関連プログラムとの連結テスト→サブシステム単位の結合テスト→システム全体での総合テスト→システム全体での実業務レベルのテスト(デバッグは随時。バグが多ければ仕切りなおしで前のテストステップからやり直し) ここまでがプログラム開発で、パッケージソフトならその辺で終わりだと思います。 後はシステムインテグレーション等でシステムとして動かすまでを対象範疇とするなら、DB物理設計、性能設計、本番機器の仕様決定・発注・設置・設定、また連結テストあたりから平行して、サブシステム単位の性能テスト→システム全体での性能テスト、障害テスト、実運用に沿ったシステム運用テストや、現行システムからの切り替えテスト、切り替え失敗時の旧戻してストなどですね。ユーザー教育も必要です。 以上、中・大規模システムでの比較的伝統的手法での流れです。小規模システムの場合はもっと先進的な手法が使われているかと思います。 >流れ図はフローチャートシートにテンプレートを >使って書き、コーディングシートに記入する、と >書かれてるのですが、実際にされてるのでしょうか? フローチャートは使われるケースもあるでしょうが、主流ではないと思います。高校生が最初にやるプログラミングでなら使っていいんじゃないですか、 コーディングシート記入はまず無いでしょう。PCでの直接入力ですね。 単なるプログラマ養成なら、プログラム詳細設計を与えて単体テストか連結テストまででいいと思います。 プログラム詳細設計を書ける人がプログラムデザイナ。 基本設計や総合テスト計画が出来ない人はSEとは呼べない。

macheriemari
質問者

お礼

notnotさん、ご回答ありがとうございます。 実務経験を踏んだ方ならではの細かいご説明をありがとうございました。今回はPGやSEの養成というわけではなく、一般常識的な部分だけでよいのですが「現場はこんな感じ」という説明もできたら加えたいなと思いました。色々と参考にさせていただきますね。 ありがとうございました!

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.6

コーディングとプログラムの入力が分かれているのは、 20年以上前なら、まだそんな感じの処理があったと思いますが、今はもうその手順では無いように思います。 私が就職した当時の新人教育がそんな感じでしたが、 それが最後で、その後すぐに完全に端末での作業に移行しました。 だいたい、コンピュータの入力装置がキーボードでなくカードリーダー、出力がディスプレイでなくプリンタの時代の手順ですね。 一人一台占有できる現状では、コーディングとプログラムの入力は同時に行っていると考えていいでしょう。 あと、いきなり流れ図といのは、かなり規模の小さいプログラムでの手順だろうと思います。 就職当時、既にDpopさんの回答のような手順でしたし。 しかし、いつの時代の教科書なんでしょうね(^^;;

macheriemari
質問者

お礼

terra5さん、ご回答ありがとうございます。 現状がよくわかりました。ありがとうございます。教科書のほうは、おそらく改訂とかあまりしてないんじゃないかと思います。そもそもプログラマーの養成とかではないのです。ですが、これから学校教育もどんどん変わってくると思います。我々も勉強しなければならないことが増えてくるでしょうね~。がんばります!

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.5

>流れ図はフローチャートシートにテンプレートを >使って書き、コーディングシートに記入する、と >書かれてるのですが、実際にされてるのでしょうか? 特に「コーディングシート」は、古代遺跡から発掘されてきてもおかしくはないほど、古いです。 基本的に”紙”を使うこと自体、よほどの客先要求がない限りは、されていないと思います。 大企業でISO9000などを導入しているとこは別です。(紙だらけです) >BASICの基礎なのでたいしたことはしない でしょうが、個人的希望を言えば、どうか是非、紙に(手で)書くことを教えてやってください。お願いします。

macheriemari
質問者

お礼

ykkw_2001さん、ありがとうございます。 >個人的希望を言えば、どうか是非、紙に(手で)書くことを教えてやってください。お願いします これは、処理手順をきちんと把握する癖をつけさせたほうがいいということなのでしょうか?プログラムは全く初めての学生対象なので一応書かせようとは思ってますが。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.3

Web屋です。 フローチャートを書く人も居ますね。全く書かない人も多いですね。僕がプログラムを書く時には、構造化プログラミングに都合の良い書き方をしています。 コーディングと言う作業も、今は研修で行う程度だと思います。パンチャーと言う専門職が居たころの名残だと思います。 僕は、設計屋なのですが、問題の分析からいきなり流れ図を作るという発想は、ちょっとびっくりです。 現実的には、 コンサルテーション → 問題分析 → 概要設計(外部設計) → 基本設計(内部設計) → 詳細設計 → プログラミング → 単体テスト → 内部結合テスト(スルーテスト) → 外部結合テスト → 本番テスト なんて手順を踏む事が多いですね。

macheriemari
質問者

お礼

DpopさんはWebプログラマーなんですね~。憧れです! さて、実務レベルでの流れをありがとうございました。教科書ではそもそもの処理がかなり単純なので、フローチャートを作ることのほうが面倒かなというくらいです。しかし実際には様々な手順が生じてくるでしょうから、そのようになるのでしょうね。 参考にさせていただきますね!

回答No.2

>問題の分析 → 流れ図の作成 → コーディング → プログラムの入力 → テストラン・デバッグ → プログラムの実行 一応この流れであっています。 >流れ図はフローチャートシートにテンプレートを 使って書き、コーディングシートに記入する、と 書かれてるのですが、実際にされてるのでしょうか? 会社にもよりますが、この作業は省かれている場合もあります。

macheriemari
質問者

お礼

Tsukasa0215さん、ご回答ありがとうございます。 他の方もおっしゃってますが、フローチャートやコーディングシートの記入はあまりしないみたいですね。しかし初めての人は一応やっておいたほうがいいのかなという気がしてきました。 がんばって授業の組み立てをしてみます。

  • MetalRack
  • ベストアンサー率14% (298/2040)
回答No.1

問題分析は、テストラン・デバッグで発見された不具合の修正に使うのが良いでしょう。 普通は、「要件定義」→「詳細仕様決定」と繋がっていきます。 プログラムとは、やらせたいことをマシンに指示するための物です。 まず、何をやらせたいのか「要件定義」を明確にする必要があります。 次に、それに沿った仕様を決めます。エラー理時の処理など、考えられる事象に対する対応を明確にしていくわけです。

macheriemari
質問者

お礼

早々のご回答、ありがとうございます。 説明が不足していましたが、「問題の分析」というのは手順のことを言っているようです。教科書の例題はいたって単純な処理です。でも実務ではもっと複雑な流れになるのでしょうね。 ありがとうございました!

関連するQ&A

  • プログラミングの手順・設計方法

    人にプログラミングの基礎というか、 手順みたいなものを教える事に成ったのですが、 私自身、プログラムを良く知らないので、どういう風に教えたら良いのか 分りません(流れ図を書くと良い、ぐらいはなんとなく分る)。 実際にプログラムを書くところまで出良いので、 良いページ等をご存知でしたら、教えては頂けないでしょうか?

  • どのようなプログラムを使えばよいのでしょうか?

    職場でWin2000のクライアント機を使用しています。 実はこれまで手計算でやってきた仕事(印刷物の積算設計)を必要に迫られて何とかパソコン上で効率的にやれないかと思案しています。 単なる計算であればエクセルでシートをつくればよいのですが、必要としているのは、例えば対面型の画面上でどれかの数字や番号を選択すれば、それに対応する表(例えばエクセルでできたチャート)上の該当する数値が選択され、別の箇所にある積算表の項目に反映されるといった手順が繰り返され、最終的に積算表が完成されるというものなのです(わかりにくくてすみません)。 エクセルではこういった手順を組むことは難しいと思います。何らかのプログラミング言語を使えば、できると思うのですが、実際どれが適しているのでしょうか。また、学ぶとしたらどのようにすれば効率的に学べるのでしょうか、教えてください。自分はひととおりパソコンソフトも扱えますが、プログラミングははるか昔にBASICを使ってプログラムを書いたことがある程度の初心者です。 どなたかアドバイスしていただけると助かります、よろしくお願いいたします。

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

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

  • プログラミングの一般論

    C++でプログラムするときに、 一般的にどんな手順で行いますか? 非オブジェクト指向型の言語では、 フローチャート書いてそのままコーディングできると思うのですが、 C++の場合だと、徹底的に設計をしておかないと後で かなり困ることになると思うんです。 また、実際のコーディングの時は、 classごとにまとめて書いたほうがいいのでしょうか? (今日はこのclassを、明日は別のclassのコーディングをしよう、みたいな感じです。) それとも、メンバ関数ごとに書いたほうがいいのでしょうか?

  • プログラムとコンピュータ内部の物理的(?)な連携について

    C言語を使って、プログラミング作業をしている者です。 今、私は実務を通してC言語を使ったプログラミングを勉強している最中なのですが、自身で作成する場合は勿論ですが、他人が作ったプログラムを修正したりしていると、メモリの取られ方を意識して(或いはそのつもりで)、コーディングされているか(するか)イメージが掴みきれません。 VCを使って値だけの変化は分かりますが、変数がどんな時に(場所が複数ある場合)どこに確保されて、、、といったことがどうも分かりません。 C言語でのプログラムを理解するにはアセンブラ構造(スタックなど)を知っていれば、知らないよりは理解し易いと知り合いに言われ、本屋などで探しているのですが、イメージが掴みやすいように書かれているのがなかなか見当たりません。  C言語での命令を受けてCPUがどう動いているか(或いはどう動かされるように出来ているか)について何か「これは役に立った」とかそういった参考書なりサイトなりありましたらお願いいたします(今、「機械のコトバ」という書籍を読んでいます)。  過去ログでは近いと思い「アセンブラ」で検索してみましたが、「どうやってアセンブラ文法を学べばいいか」といったプログラミングそのものが殆どでした。  また、(まずは上記のことからですが)CPUだけでなくOSの役割についても知りたいので、何か良い参考書がありましたらそれについてもお願いいたします。

  • 20年ぶりにプログラムを組みたい

    若いころプログラムを組んでいました。 FORTRAN,Cを中心に、晩年はVisuarl Basic,Visual C++を経験しています。 JAVAは教科書を買いましたが、実務経験はありません。 その後、開発の仕事はしていませんが 事務的なツールとしてExcelマクロなどは簡単なものを利用しています。 HTML,CSS,Flashも趣味レベルで利用しています。 最近時間ができたので、久しぶりに「プログラミング」をして 趣味で使うツールを開発したいのですが 何しろ20年ぶりです。 上記の基本がある前提で GUI(死語?)からの入力でデータを受け付けて、絵を書くプログラム(A4の紙に印刷したい)を 作りたいと思いますが、お勧めの言語はありますか? お勧め、とは ・開発環境が安価(できれば無料) ・文法がCに近いもの ・または、初心者向けの言語 といったものを期待しています。

  • XSLスタイルシートを2つ当てる方法はありませんか?

    XSLスタイルシートのテンプレートが多すぎて 訳がわからなくなってしまいました。 できれば他のプログラミング言語のように、部品でXSLファイルを分けたいのですが、XSLではできないのでしょうか? 「XML/XSL以外のプログラムを利用して」という回答は、なしでお願いします。 よろしくお願いします。

    • ベストアンサー
    • XML
  • 基本的なプログラム

    基本的なプログラム 学校の教科書に載っている問題がわかりません。 是非教えて下さい。 Cによる基本的な条件分岐(if,else if文)のプログラムです。 西暦年(4けたの整数)を入力し、その年がうるう年かどうかを判断するプログラムを作りなさい。 4で割り切れるときはうるう年であるが、100で割り切れるときはうるう年ではない。 しかし、400で割り切れればうるう年である。 ・・・とゆう問題文です。 #include<stdio.h> int main(void) { int x; printf("西暦を入力して下さい¥n"); scanf("%d",&x); if(x%4==0) printf("うるう年である¥n"); else if(x%400==0) printf("うるう年である¥n"); else if(x%100!==0) printf("うるう年でない¥n"); else printf("うるう年でない¥n"); return 0; } ・・・とりあえず自分で考えてみたのですがどうでしょうか; 間違ってると思いますが頑張って考えました・・・;; 4けたの整数ってゆうのはどう書けばいいんでしょうか? 実際にこのプログラムは動くのでしょうか? もっと省略して書くことができるのでしょうか?  等、色々わからないことばかりです。 プログラミングの授業自体に苦手意識を持っているので得意ではありません。 間違いなど指摘していただけたらと思います!! よろしくお願いします!

  • モニタプログラムとの通信ソフトHtermのソースレベルデバッグについて

    自分は現在実務訓練において、h8/3048Fマイコンを使用して、光センサを用いた測定機器を作成しようとしている学生です。 その中でルネサス様のサイトで公開しているHtermというマイコンのROMに書かれたモニタプログラムとの通信ソフトウェアのソースレベルデバッグについて質問があります。 ソースレベルデバッグを行うにはコンパイルしたプログラムの出力形式がデバッグ情報をつけたELF/DWALF2形式ではいけないみたいです。 例えば同じくルネサス様のコンパイル、ビルドの総合開発環境のHEWだと、出力形式がELF形式にできるみたいなのですが、他にもcygwinを用いてgccのコンパイル環境を自分で構築すれば可能であるとインターネットで調べているうちに発見しました。 実際にそのコンパイラ環境 binutlis version 2.16 gcc version gcc-core-3.4.3 newlib version 1.13.0 (target=h8300-elf) で構築を行いました。そして、LCDに文字を出力するサンプルプログラムをデバッグ情報をつけるコマンド(-g)をオプションにつけてコンパイルし、Htermを使ってマイコンのRAMに書き込みましたが、 その後に「ソースプログラムを表示しますか」というコメントが表示されるのはいいのですが、「Ok]をクリックすると 「CPUないし動作モードが正しくありません」 と表示されてしまいます。これでは、ソースレベルのデバッグを行うことができません。 動作モードはそれぞれ一通りのモードで同じ事をやってみましたが、上記のエラーが表示されてしまいます。h8用のコードを作成するために-mhというコマンドもつけてコンパイルしています。 このエラーに対してなにか知っている人がいましたら、回答のほうよろしくおねがいします。

  • JAVAプログラマとして入社した新人に、最初にやらせる仕事は?

    JAVAプログラマとして入社した新人に、最初にやらせる仕事は? 私は、通信制のパソコンスクールでJAVAプログラミングを学んできたものです。 これまで、SJC-Pを取るための勉強をしてきて、サンプルプログラムばかりをコーディングしてきたのですが、これからいざ就職活動をしようと求人票を見たところ、おおまかな業務内容しか記載していなくて、実際の現場でどんなコーディングが行われているのかが見えてきません。今まで学んできたことがどの程度通用するか、入社してすぐはどういった仕事を任せられるのかがわからず不安です。 そこで質問なんですが、 (1)みなさんの会社にSJC-P取得レベルの知識を持つ新人が入社してきたら、最初にやらせる仕事はどういったものなのでしょうか? (2)これまでSJC-Pで身に付けた知識はどの程度役立つのでしょうか? (3)その後、どのようにステップアップしていきますか? (4)実務レベルのコードを掲載したサイトや書籍などありましたら、教えてください。 会社によって違うかと思いますが、わかる範囲での回答よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう