@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- PR -

オブジェクト指向でオブジェクトの細分を表す言葉ありませんか

1
投稿者投稿内容
Tacchang
ベテラン
会議室デビュー日: 2004/09/05
投稿数: 55
お住まい・勤務地: 川崎市
投稿日時: 2006-03-19 17:51
みなさん,こんにちは.

早速ですが,言葉の定義についてご存じであれば教えてください.

オブジェクト指向関連では,コンポーネント,サブシステム,クラス,オブジェクト,インスタンス,パッケージなどいくつもオブジェクトのまとまりを表す言葉がありますが,これをうまく体系立てて整理している定義をご存じありませんか.

設計はソフトウェアを分割してクラスにする作業と見た場合,

  1. ソフトウェアをいくつかのオブジェクトに分けた時の粒度に対する呼称
  2. 1.で分けたオブジェクトをさらに細かくした粒度に対する呼称

  3. クラス

と細分にあった言葉を誰か定義してくれていないかなと期待しています.

設計をいくつかのステップに分ける場合,このような言葉があると考えやすいのになと思っています.
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-03-19 22:12
引用:

オブジェクト指向関連では,コンポーネント,サブシステム,クラス,オブジェクト,インスタンス,パッケージなどいくつもオブジェクトのまとまりを表す言葉がありますが,



「コンポーネント」「パッケージ」はオブジェクト指向と無関係です。
(どちらかというと相反する概念だと思いますが。言いすぎ?)
「パッケージ」というのはJavaの言語仕様の一部に出てくるだけで、
オブジェクト指向とは関係ないと思います。

サブシステムはオブジェクト指向とは、あまり関連しない気がします。

引用:

これをうまく体系立てて整理している定義をご存じありませんか.



ということで、そもそも相反してたり関係ない概念なので、体系化できないと思いますが。

引用:

設計をいくつかのステップに分ける場合,このような言葉があると考えやすいのになと思っています.



「分ける」ということ自体が「設計」ですからねぃ。。なにをもって
「一まとまり」と呼ぶかは、どうしても何らかの意味合いが入ってしまうのでは。

ということでそれらはドメインとして定義するしかないのかもしれない、と思って
ますが。。。

そもそも「オブジェクト分析」ですら、真っ当にやったことがない私が言うのも
なんですが。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-20 00:53
引用:

Tacchangさんの書き込み (2006-03-19 17:51) より:

設計はソフトウェアを分割してクラスにする作業と見た場合,


だったら、「メンバ」という実装レベルの単位しか思い浮かびません。
データではなく振る舞いであれば、さらにローカルな部位があると...

ただ、

引用:

オブジェクト指向関連では,コンポーネント,サブシステム,クラス,オブジェクト,インスタンス,パッケージなどいくつもオブジェクトのまとまりを表す言葉がありますが,これをうまく体系立てて整理している定義をご存じありませんか.


インスタンスとオブジェクトは良いですが、(でも、何でここに「オブジェクト」が?)
他の説明になり得ないので、「メンバ」はありえないですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
aetos
会議室デビュー日: 2005/01/27
投稿数: 16
投稿日時: 2007-01-23 16:29
個人的には、「オブジェクト」と「クラス」は粒度が同じで、これが最小単位だと思いますね(「メンバ」まで細分化すると、また観点が違ってくる)。
「オブジェクト」と「インスタンス」は同じものなので、これも同じ粒度。

一番粗いのがシステムで、その下がサブシステム。
ここまでは手法がオブジェクト指向だろうがそうでなかろうが一緒だと思います。

コンポーネントというのも、場合によっていろいろな意味に解釈できる言葉でしょうが、俺はサブシステムを構成するのがコンポーネントだと思っています。
セットで使うことを前提に設計されているオブジェクトを集めたものがコンポーネントという認識です。

Javaやったことないので、パッケージという言葉は使いません(Delphiもパッケージって言うんだっけ?)。

もう少し大きい単位になると、アセンブリとかアプリケーションとかいう言葉も使えるかもしれませんね。

#アセンブリはコンポーネントより細かいかなぁ。

例えば、市販製品である「FlexGrid」とか「TabPlus」とかは、「アプリケーション」と呼ぶのが適当だと思います。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-23 16:45
るぱんです。
引用:

「コンポーネント」「パッケージ」はオブジェクト指向と無関係です。


→UMLで出てきた用語って事でいいですか?
http://www.ogis-ri.co.jp/otc/hiroba/technical/JavaWorld_UML/chap2/index.html

大分類の10番目に
10. パッケージ
って項目があります


たたき台
コード:

コンポーネント
部品と言う意味で使ってることが多いなぁ
組み込み部品と言うニュアンス
必要な部品だが、話題上注視していない場合は、コンポーネントを
パッケージと言う場合がある?

パッケージ
フォルダに近い概念かなぁ?
リビジョンと言う意味に近い使い方(warとかjarとか)も有り。
製品全体と言う意味で使う場合も有り。

これは上からの視点って意味で大きな視野で使用
システム
システム全体
サブシステム
システムから見た、詳細部品
コンポーネント側から見た場合、システムと言われることが多い

個別のオブジェクトについて(一番小さい単位)
クラス
インスタンスに対する汎用的な型
オブジェクト
クラス全般と言う意味と、設計図上のインスタンスを表す
解釈として多分こいつが厄介だと思う。
インスタンス
メモリ上に一意で識別されるオブジェクト



[ メッセージ編集済み 編集者: るぱん 編集日時 2007-01-23 16:49 ]
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-01-23 19:25
Javaのパッケージに相当する概念を言うとすれば
「ネームスペース」日本語だと「名前空間」でしょうか。
C系とかXMLとかでは「ネームスペース」を使っていますよね。
こっちが多数派だと思っています。

「クラス」は型で「インスタンス」はその実態ですが、
「オブジェクト」と言った場合は曖昧に両方の意味で使われますね。

コンポーネントは部品のイメージ。
機能でのまとまりなので、実装のまとまりであるクラスが
複数集まって成している場合が多いのではないでしょうか。
クラスが実装のための単位なのに対して、コンポーネントは
機能を成す部品の単位と捕らえています。
(加納正和さんと認識が違うのが気になるところですが…)

サブシステムという場合、アプリケーションの一つの機能を指します。
この用語はオブジェクト指向用語ではなく、もっと汎用な用語ですよね。

引用:

設計はソフトウェアを分割してクラスにする作業と見た場合



この認識が私とは違いますね。
設計は機能を実現するための方法論を決定する過程のように思っています。
データフローを中心に据えることが多いかな。
クラスがどうこう、なんてのは実装の際の方法論ですから
いちいち設計しないですね。コードに書く際にその場で作ってます。

実装方法が悪ければリファクタリングしたりしますから、
コードのロジックを修正するのと同じような感覚でクラスを
作ったり消したりしていますね。
クラスの設計ってプログラムを組む前にフローチャートを
書くようなイメージだなぁ。納品物になってないなら書かないですね。
クラスの機能性はソース中にコメントで記述してツールでドキュメント生成だし。
がんふぃーるど
ベテラン
会議室デビュー日: 2006/06/05
投稿数: 58
お住まい・勤務地: さいたま
投稿日時: 2007-01-24 17:44
引用:
オブジェクト指向関連では,コンポーネント,サブシステム,クラス,オブジェクト,インスタンス,パッケージなどいくつもオブジェクトのまとまりを表す言葉がありますが,これをうまく体系立てて整理している定義をご存じありませんか.



この部分に関しては大筋でシャノンさんやるぱんさんの意見辺りを参考にオブジェクト指向本やアーキテクチャ関連本を読まれると良いと思いますが

引用:
1.ソフトウェアをいくつかのオブジェクトに分けた時の粒度に対する呼称
2.1.で分けたオブジェクトをさらに細かくした粒度に対する呼称
3.:
4.クラス



ユースケースやクラス図みたいなダイアグラム(UMLを使用しているといっている訳ではない。あくまで私のイメージ)を使用して、まずは大雑把な機能を洗い出し、更にそれぞれの機能を同じフォーマットのダイアグラムで詳細化していくようなことを言ってます?そこでそれぞれの粒度に名称が無いかと?

だとすれば、無いと思いますよ。というか、粒度自体は最初のアーキテクチャ設計の段階で決めてしまうと思うので、各粒度の名称もひとえにアーキテクトのセンス次第かと…

# ネーミングセンスが無いのなら、似たような規模のプロジェクトを参考にするとか。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-24 23:32
るぱんです。

どのシチュエーションで、どの単語を意図的に使えるかどうかだと思います。
粒度の大きな枠組みは、要件に近いところで使う言葉です。
粒度の細かい言葉は、細かい設計をする際に使う言葉です。

要件定義でインスタンスが・・・とか言われても、
「はぁ?」
ってなるでしょう?

単語を知るのは良いことですが、
当初の設問では、システム開発の流れを意識できていないと思いました。

個人的には、この「流れ」(my単語で失礼)こそが大事で、
そこを抑えない限り、どんな単語も有機的につながらないと思います。

システム開発の全体像の方が大事だと思います。
ご参考までに。
1

スキルアップ/キャリアアップ(JOB@IT)