JavaやC++(オブジェクト思考)のソースから、設計を理解するために、

必要なポイントを教えてください。フレームワークの解析に必要な観点とか
を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/12/01 02:35:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:ardarim No.1

回答回数897ベストアンサー獲得回数145

ポイント23pt

参考になるか分かりませんが、自分の場合ですと、まずはオブジェクト間の関係を把握することだと思います。クラス(またはオブジェクト)間の継承関係をツリーにしてみるのがよいと思います。


よく設計されてフレームワークであれば、あとはプロパティとメソッドを整理すれば、その名前から自ずとそのクラスの役割や機能が見えてくると思います。作りの悪いものはソースコードを追いかけて泥臭い作業が必要でしょうが...


あとは関連する機能ごとにグルーピングするとか、呼び出し関係を整理するとか、でしょうか。


urlはダミー

http://q.hatena.ne.jp/1227461456

id:newta No.2

回答回数68ベストアンサー獲得回数7

ポイント23pt

もし、いいプログラムならば

そのオブジェクトの持つ役割がきれいに分かれているはずです。

オブジェクトの存在する意味を手繰って行けば

いつの間にか全体が分かってくるはずです。

もしダメなプログラムならば

オブジェクトの権限が散らばって存在したり

無意味なソースが変なオブジェクトの中にあったりするので

地味に読んで行くしかありません。


いいソースが読めない場合、

オブジェクトの意味を理解していなかったり、

デザインパターンの理解が足りないかもしれません。

http://q.hatena.ne.jp/answer

id:pyopyopyo No.3

回答回数377ベストアンサー獲得回数98

ポイント22pt

オブジェクト指向というのは("思考"では無いですよ)

設計対象を、オブジェクトを基準にして考えましょう、という考え方です。

ですので、設計や解析を行う際には、まず

(1)全てのオブジェクトを列挙して、

(2)オブジェクト間の関係を整理する

ことから始めると良いです。

ソースコードが長い場合は、ソースコードを直接読む前に、ツールを使って大まかな概要を調べる方法がおすすめです。たとえばツールとして doxygen というソフトウェアを使うと、ソースコードを解析して(1),(2)の処理を行い、結果をドキュメントとして出力してくれます。ドキュメントには図も含まれますので、図を見ながら上記の(2)の作業を行うことで、大幅に作業効率があがります。

また、設計や解析を行う際には"UML"や"デザインパターン"という考え方を踏まえておくと便利です。

UMLとは設計を記述するための言語で、デザインパターンとはよくある設計パターンをまとめた用例集です。

http://ja.wikipedia.org/wiki/%E7%B5%B1%E4%B8%80%E3%83%A2%E3%83%8...

http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B...(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

UMLやデザインパターンを知っておけば、たとえば他の人に設計方針や解析結果を説明する際に「この処理はシングルトンパターンです」と一言言えば済み非常に効率が良いです。

id:God_24 No.4

回答回数4ベストアンサー獲得回数0

ポイント22pt

オブジェクト指向とフレームワークの解析は別の話です。


  • JavaやC++(オブジェクト思考)のソースから、設計を理解するために、必要なポイントを教えてください。
    • オブジェクト(つまりクラス)を列挙して、それらを線を引っ張ったりして関係をはっきりさせましょう。関係図を書くのに便利なツールを紹介しておきますね。→http://jude-users.com/ja/
      • 「デザインパターン(よく使われる設計集)」を参考にするのも一つの手段ですが・・・これは時間をかけて読むべきだと思います。
  • フレームワークの解析に必要な観点とかを教えてください。
    • フレームワークには大抵、命名規則があったりします。その点に注意しながらソースを読めば、うまく整理できるかもしれません。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません