• ベストアンサー

プログラミングの一般論

toysmithの回答

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

プログラム設計/開発のアプローチに『正解』はありません。 しかし、ベストでなくともベターな方法はいくつか提唱されています。 現在、主流になっている開発アプローチは「オブジェクト指向開発」です。 オブジェクト指向開発では ・クラスの発見 ・クラス間の静的連携 ・クラスの状態遷移 ・クラス間の動的連携 ・パッケージ(クラスを収容するファイル)の配置 ・コンテナ(クラスを収容するオブジェクト)の配置 などに注目します。 これらはUMLという統一記法で記述されます。 UMLは開発フェーズに沿った複数の図の集合です。 しかし、全ての図を記述する必要はなく、必要と思われる図を取捨選択して使用します。 翔泳社の「憂鬱なプログラマのためのオブジェクト指向開発講座」(ISBN4-88135-619-4)はC++ターゲット言語とし、UMLを使用してオブジェクト指向開発を進めるための参考書です。 しかし、この本で採用されている記法は正規のUMLではありませんので、UMLの書法については他の書籍で補完する必要があります。 コードの作成順ですが、設計がしっかりしていれば特に気にする必要はありません。 クラスごとに作成することが多くなるとは思いますが、「実現性の怪しいメソッドを先に作って開発可能かどうかを検証する」とか「テスト時にハンドラやスタブを必要としないメソッドを先に作成する」なんていう場合もあります。 一般的には(設計が完了していると言う前提なら)クラスごとに作成した方が効率が良いと思われます。

参考URL:
http://www.shoeisha.com/book/Detail.asp?bid=740
noname#108554
質問者

お礼

確かに分かりやすそうな本です。 明日、探してみます。 ご回答ありがとうございました。

関連するQ&A

  • オブジェクト指向が理解できません 教えてください

    現在Javaを勉強しているのですが、 Javaに限らず最近のプログラムの特徴であるオブジェクト指向がよくわかりません。 C言語も学んでいたので少しは知識はあります。 以下は私の解釈です。 C言語は関数の集まったものがいわゆる私たちが作るプログラムで、 作ったプログラムはそれ単体で機能する。 それに比べてオブジェクト指向を用いたプログラムでは、 オブジェクトからクラスが生成、このクラスが一つのプログラムとなる。 クラスのプログラムをいくつも集めたものが最終的なソフトとなる。 Cだとミスを一か所直すと他のところを直す羽目になるかもしれませんが、 オブジェクト指向においてはミスをオブジェクト単位で修正するので、 他のオブジェクトへの影響度は少ない。 よってオブジェクト指向の方が拡張・修正などでも優れている。 こんな感じに解釈したのですがどうでしょうか? オブジェクト指向では最終的なプログラムソフトはオブジェクトの集合体によって構成されているため、オブジェクト指向=オブジェクト中心の考えと言えるのでしょうか。

  • オブジェクト指向の教え方

    新入社員にJavaを教えているところなのですが、オブジェクト指向プログラミングをどのように教えていいか困っています。 全員がC言語研修を受講済みで、さらにJava言語も、継承やオーバーロード、例外まで一通り教えて、一応理解しています。 そこで、次のレベルとして、C言語風のプログラミング(「プログラム=関数の集まり」の考え方)から、オブジェクト指向(「プログラム=オブジェクトの集まり」の考え方)に意識改革させたいところです。 問題領域をオブジェクトの集まりとしてとらえ、そこからクラスを抽出していく、という説明がよくありますが、 「何をオブジェクトにするのか」「どのようにクラスを抽出したらいいのか」の部分を詳しく教えたいのですが、どのように説明したらいいでしょうか。また、参考になるWebサイトなどありませんでしょうか? 自分が普段作るときは、ほぼ「勘」でクラス設計していますので、それでは教えられなくて困っています。よろしくお願いします。

    • ベストアンサー
    • Java
  • Java:クラスをたくさん使ったプログラミング?

    Java言語勉強中のものです。 Eclipseをつかっています。 初心者ですので、易しい言葉でご回答いただければ幸いです。 Javaの基礎についてひととおり勉強しました。 オブジェクト指向についても、だいたい・・なんとなくは理解できていると思います。 ただ、自分で作成するときに、 うまくオブジェクト指向を取り入れたプログラミングができません。 なんだかあっちこっちのものを呼び出してきてとてもややこしいです。 クラスがたくさんつかわれているプログラムは、 ほかの人がつくったプログラムをなんとかがんばって読む、というのが精一杯です。 自分ではとても思いつかない構造ばかりです。 あっちこっちからよんできているので、図やらリストやらを書いて 本当に「なんとか」理解できた、というレベルです。 クラスが5個以上になると正直もう嫌だってなります。。実用レベルにはまだまだ至っていません。 本当の意味でオブジェクト指向を理解できていないのかもしれません。 どうすればそういった、オブジェクト指向をとりいれたプログラムが書けるようになるのでしょうか? いろんなプログラムを見る、数をこなすことでしょうか? 何かおすすめの参考書や、 「こういう考え方をすれば・・・」というものがありましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Javaにおけるオブジェクト指向とは?

    現在Javaを勉強しております。 以前はC言語を勉強しておたのですが、 JavaとCの違いにおいてJavaの特徴としてオブジェクト指向と習いました。 しかしいまいちこのオブジェクト指向を理解できません。 プログラムを一つのまとまりとして考えるというのはどういうことなのでしょうか? 確かにJavaはC言語とは違いいくつかのプログラムからできている (はず?見当違いだったらすみません) C言語が一つの大きなプログラムでできているとすると、 Javaは細かいプログラムの集合体であると私は考えていました。 この細かいプログラムの集合体というのがオブジェクト指向なのでしょうか? 全くの見当違いだったらすみません。 よろしくお願いします。 

    • ベストアンサー
    • Java
  • フローチャート以外の設計方法

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

  • プログラミングの質問です。

    c言語でお願いします。 以下の結果が得られるようなプログラムを書いてください。 期末試験では必ずフローチャートを書いてください。また、フローチャートが 書けない場合は、どういう順番でプログラムを書けば よいかを書いてください。 1.数字を5個続けて入力させ、大きい順に並び替え、出力する。(配列を使う事) プログラミングわからないのでお願いします。

  • Cに慣れてしまった人、どのようにJAVAを克服しましたか?

    JAVAについて質問です。 私はC言語をこの1年間勉強してきました。 そしてC言語のコーディングの仕方に慣れきってしまったせいか、どうしてもJAVAのオブジェクト指向 というものが理解できません。 コーディングも上手くいきません。 クラスやメソッドやインスタンスがどうとかコンストラクタが・・・などの横文字が全然意味が分かりません。 C言語で言うとどれがどこに当たるのか!? とかいう風に置き換えて考えようとしても上手く行きません。 こういう、横文字が理解できて、オブジェクト指向の考え方に慣れる為にはどのようにしたらいいでしょうか? また、C言語からプログラミングに入って、後からJAVAを勉強する場合、どのような点に気をつければ良いでしょうか? また、JAVAの克服法を教えてください。

    • ベストアンサー
    • Java
  • オブジェクト指向プログラミング学習向けのサンプルプログラム

    「これは参考になるよ」というような、 オブジェクト指向プログラミング学習向けのサンプルプログラムを教えていただけませんか? 言語はDelphiです。 Delphiに限らず、他言語(Java、C#、C++あたり)でも結構です (移植しますので、出来ればCUI、GUIが少ないものが理想です) よろしくお願いいたします。 Delphiにてオブジェクト指向プログラミングを学んでいます。 書籍等で、基本的なことは学びました。 理解度およびスキルを上げるために、実際にプログラミングしたいと思います。 (入門書を利用してや、 自分で考えながらのテスト的なプログラミングには限界を感じてまして^^;)

  • プログラミングの質問です。

    c言語でお願いします。 以下の結果が得られるようなプログラムを書いてください。 期末試験では必ずフローチャートを書いてください。また、フローチャートが 書けない場合は、どういう順番でプログラムを書けば よいかを書いてください。 1.年月日を数字8個で入力させ、「今日は○年○月○日です」と 表示させてください。 プログラミングわからないのでお願いします。

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

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