トップページ⇒tech
966コメント334KB

UML皆でお勉強しよ♪

■ このスレッドは過去ログ倉庫に格納されています
0001ニュージーランド漁夫NGNG
  Λ_Λ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)< お勉強しよ♪
 (    )  \____________
 | | |
 (__)_)
0680デフォルトの名無しさんNGNG
>>678-679 Javaと開発方法論は別物だから、
 あんまり開発方法論に固執すると問題あり

 って言うのと同じ程度の意味しかないと思われ
0681デフォルトの名無しさんNGNG
スタンダードか、暗黙の同意か、という差はあれど、
方法論のない開発なんて、学習中の初心者か、
混乱しきって予測不可能になった開発現場にしか存在しないんじゃないかー。

そういう基本前提があるからこそ、
開発方法論の差異を超えた、共通のモデル記述言語=UMLが、
重要なんだよね。
0682678NGNG
>681
そうなんだよね。開発方法論は重要なのは確かだけどUMLだと
この開発方法でやらなきゃダメみたいな感じになってる人が
多い気する。>680が言うようにUMLで有効である開発手法は
ある程度決まってるが型にはまったやり方だけしか許されない
わけではない。

っていうかそれだとつまらんでしょ。(w
0683デフォルトの名無しさんNGNG
だけど、UML作った人たちの頭には、RUPが概念的に存在してて、
ようはある程度の方法論があった状態で、UML考えたような
気がするのは私だけ?
0684デフォルトの名無しさんNGNG
UML も RUP も Rational の親玉たち (アミーゴズ?)のものだから
当然しょ。
最終的には普及のために方法論と独立を目指すとはいえ
開発方法論から生まれた話なのは間違い無し。

0685デフォルトの名無しさんNGNG
MagicDrawを課で10本程度購入しようと思っています。
課のみんなに、使いにくいぞ。ゴルァ。とか言われるの怖いんですが、
UMLツールの選定、この選択で正しいと思いますか? 当方、Java。
0686デフォルトの名無しさんNGNG
>>685

絶対、間違い。紙とペン。これがマジ最強。
0687デフォルトの名無しさんNGNG
>685
うちも、とりあえず一つ買ってみた。
結構いいと思うし、コストパフォーマンスは優れていると思う。
とりあえず気になるのは、

○設計情報がXMLで交換できるはずなんだが、rose評価版とうまくいかなかった
○シーケンス図とコラボレーション図の自動変換ができない

以上は、まだ使い方よく分かってないからかもしれない。あと、多人数での
設計まとめるサーバは使ってないのでわからない。

オージスから出ているツールもよさそう。値段はMagicDrawの倍。
だれか使ってみたひといたらどんな感じ? なんか、評価版が落とされまくった
らしくて、現在ダウンロード停止されているので、評価できない。


紙とペン派は、多人数で、コミュニケーション共有しなけりゃならない状況は
わかっていないと思われ。そもそもUMLはコミュニケーションツールなので
その手の方たちには必要ないだろう。

手書きのコピーを配布するなら、彼らには、ワープロも、visioもいらないだろ-な。
068830年前から時空を越えてレスNGNG
プログラム、紙と鉛筆で書いてますが何か?
0689デフォルトの名無しさんNGNG
>>687
>○設計情報がXMLで交換できるはずなんだが、rose評価版とうまくいかなかった

XMI?XMIはまだ標準仕様が固まってないのでツール間での連携はあまり期待しない
方がいいと思います。

>○シーケンス図とコラボレーション図の自動変換ができない

普通はどちらか一つだけ書くものだと思うんですが、必要なんですか?
#私はOMTから入ったので慣れたシーケンス図しか使いません

>紙とペン派は、多人数で、コミュニケーション共有しなけりゃならない状況は
わかっていないと思われ。そもそもUMLはコミュニケーションツールなので
その手の方たちには必要ないだろう。

最初あーでもない、こーでもないってやってるうちはホワイトボード最強ですね。
でもある程度固まったらツール使って清書するし、一人で考えてるときもツール
使って書いたり消したりしながら考えます。

ただUML使って設計を覚えようという人は、ツールをいきなり使うより手書きで
書いてみるといいと思います。OOA/Dの手法とUMLの記述法とツールの使い方を
いっぺんに覚えようとしたら挫折してもおかしくないでしょうからね。
0690685NGNG
>>687

マジレスありがとうございます。

とりあえずのリヴァース、フォワード、
あとチーム開発ができる安価なツール、
ということでMagicDrawを選定しましたので
Roseとの互換性はさほど気にならないんですが、

>○シーケンス図とコラボレーション図の自動変換ができない

はちょっと痛いですね。これだと、
リヴァース時のシーケンス図生成も行われないんだろうか……(;´д⊂)

というか、体験版さわってみたものの、
リヴァースしたクラスをクラス図に反映できん。

0691デフォルトの名無しさんNGNG
687です。

>689
シーケンス図とコラボレーション図は用途によって両方欲しいことが
多いと思う。ぱっと見はコラボレーションが全体像がつかめていいし
少し詳しくシーケンスを考えるときはシーケンス図。いずれにしても
同じ情報だから、いちいち書き直したくないなー。

XML形式はXMIと思われます(よく知らないものでスマン)。
そもそも、MagicDrawはセーブするとXMLのZIPファイル
しかファイルが作られません。これ、展開するとテキストで読めます。
これがXMIの構造になっていると思うんだが。
おっしゃるとおり、互換性はよくない模様(ツールメーカー何とかして欲しいな)。

>690
クラス図と、継承関係ぐらいまではリバースできた。シーケンスとかは無理と思う。
ただ、開発方法論の話になっちゃうけど、リバースはあまりやらないほうがいいと思う。
クラス図から直すのは大変だけど、トータル、長期的にはメリットも多しと思うのだが。
せっかくの設計が...とうことになりかねないと..。
もっとも、開発サイズとか、時と場合によりけりは方法論の常ですが。

チーム開発環境としては、結果レポート希望。


あと、紙&ペンは否定はしてないが、これだけですむはず無し。
だれだって、メモ、走り書き、ホワイトボード図はかくに決まってるが
それだけだと、プロジェクト期間中もしくはその後メンテまでのスパン
でコミュニケーションできない。

ちょっと話がずれるが、昔、アクタとかMoreとかいう、MACでのアプリが
あったのを知ってるでしょうか。思考支援ツールといわれ、まあ今で言う
アウトラインエディタですな。ようは、ワープロは清書するだけでなく
これで書いていろいろ動かしていることで思考支援されると思われ。
論文書くときは、目次が一番苦しむからね。

いろいろあるカード利用の方法なんかも同じかな。で、ノートにUMLツール
いれて、プロジェクターでやってみようと思ってる。プロジェクター高いけど。
クラス図をカードにして、ボードであれこれ動かして議論するとよいと言う本
もあったが、あとでその結果を写すのが面倒。うまくいくと思うんだがだれか
やってみたことあります? ERのレビューはこれでやったことあり(紙の配布も
同時にやったけど)。
0692narucy56 ◆wMOjCT4s NGNG
各種 XP 本の論調によると

「コミュニケーションにコンピュータ使うことは人の視点を
コンピュータに向けてしまい、ダメ。視点は常に人に向いて
ないといけない。」

とのことで。

それ以前に、どうしても、印刷された UML図 が必要なシーンとい
うのが思い浮かばない。

わざわざ難しい設計にしてしまってるんじゃないの? どうなの?
0693デフォルトの名無しさんNGNG
>>692

あとからシステムみるとき、
UMLないと泣きそうになりません?
コード追うのも、ヘタな日本語読むのも鬱。
0694デフォルトの名無しさんNGNG
をXP対UMLという定番対決になってきたね。何か創造的な議論が出来ることを期待。

>692
>それ以前に、どうしても、印刷された UML図 が必要なシーンとい
>うのが思い浮かばない。
ってことはUMLドキュメント自体は必要ってことでいいの?
XPだと違うかな?
0695デフォルトの名無しさんNGNG
UMLがコミュニケーションの道具として役に立つ、ということでは一致している
と思います。それをどのように使うか、というところで違いがあるんでしょう。

個人的にはUMLは設計上のアイディアをある程度具体的にするために使います。
大体ツールを使って書きますが、UMLからコードを吐かせることはめったにし
ないですね。ときどきすごく細かく書くことにこだわってる人がいますが、分析
にしろ設計にしろあるところまでいったら先に進まないと煮詰まっちゃいますね。
細かいところを図にしてもわかりにくくなるだけなので、そういうところはメモ
をペタペタ貼り付けておいて、もし後で分かりやすく書けそうなら書き直します。
0696デフォルトの名無しさんNGNG
ソースとUMLの同期がとれなくなって、設計時のUMLが
ドキュメントとして提出できなくなることがしばしば。
またいちから書くのはダルい。リバースあればいいな。
0697デフォルトの名無しさんNGNG
>>687
オージスのツールというと、Konesaのことですかね。評価版を使ってみましたけど、
かなりダメな感じです。

Javaで作ってあるんで、重い上に操作性が悪い。クラス図はともかく、
シーケンス図がとにかく作りにくい。
素人にはおすすめできないけど玄人にもおすすめできないです。
リバースとかグループ開発の機能は使ってないので不明。

ちなみに普段はRoseを使ってます。Roseも、ときどきバグるけど、
Konesaより10倍マシ。

ところで最近話題らしいTogether Control Centerはどうよ?
0698デフォルトの名無しさんNGNG
>>697
レポートありがと。やっぱりRoseになるのかなー。
もう少し安けれ買ってみるのだが。お金のない人はやはりMagicDrawか。
今度、どこかの大き目のプロジェクトで、顧客だまして(もとい、推薦して)
Rose買ってみようと思ったりして。
>>692
「」の中はまったく同意だよ。昨日も顧客ががんばるから7時間ぶっとーしで
会議であった。基礎設計ね。
で、これらの会議の結果を、形にしないといけないだろ。
だいたい昨日も、その前の会議の結果を、ドキュメントにして、
それをレビューしてたの。

もっとも、UMLじゃなかったけど、UMLでいえば、ユースケースや
コラボレーション、クラス図で書くようなドキュメント類。
ドキュメントも無しで、てぶらで会議なんでできないでしょ。
大量の情報を、会議に出てる人間がまったく同様に完璧に記憶
なんてできないんだから。

相手が、今目の前にいるか、将来のメンテの人かいずれにしても
人とコミュニケーションするために、ドキュメントが必要なんだよ。
そのとき、UMLは記述方法としてよろしいと思う。
XPもドキュメントを書かなくてよいと誤解されてると思う。
不必要なドキュメントは要らない(コード見れば分かることとかね)という
ことと思う。
逆にコードもドキュメントとして読めるように書けということかな。あと、開発サイズもかなり小さくないと無理だろうね。
数100人でペアプログラミングしてるとこなど、見てみたいが...
0699デフォルトの名無しさんNGNG
>>695

クラス図があろうがなんだろうが、分かりづらいもんは
分かりづらいんだよな・・・。

できれば貴方のその、ドキュメントにしてレビューしたという
プロジェクトの内容はどんなもんなのか教えていただきたい。
0700デフォルトの名無しさんNGNG
>>698

できれば貴方のその、ドキュメントにしてレビューしたという
プロジェクトの内容はどんなもんなのか教えていただきたい。

(結局は「どんな機能を持ってるのか」ってところに着目できれば、
整理できると思うけどなぁ。)
0701デフォルトの名無しさんNGNG
>>699
「分かりづらい」ってのは君の個人的な意見だよな。
個人のレベルで主観的にいう「分かり安さ」というのは、慣れや経験、
バックグラウンドなどがかかわってくるので、いまいちつかみどころがない。
ちなみに俺は「どちらかというとUMLは分かりやすい」と感じている。

分かりづらいところがあれば、分かりやすくなるように改良する、
というのがUMLが求められていることだろう。
が、そのためには「何が」「どんな風に」「分かりづらい」かが
はっきりしないとかなり「つらい」。
ただただ否定するだけでなく、そこんとこもふまえてて建設的にいってくれ。
0702デフォルトの名無しさんNGNG
話の腰を折って申し訳ないですが、限定子(Qualifier)について教えて下さい。

分かりやすい例とかURLとか。

よく見かけるのは、UMLの規格書にあるBank/Account/Personの例とか、
ウェブを見回るとあるDirectory/Filename/Fileとかで、そういったのを
見るとその時は分かったような気になるんですが、やっぱりよく分かりません。
いざ自分で考えてみると、そこに限定子が関与してくるのはわかるのですが、
限定子が関連のどっち側に付くべきなのかが混乱して分からなくなってしまいます。

なんかもっと分かる例と、手とり足とり解説してくれるのはないでしょうか。
0703narucy56 ◆wMOjCT4s NGNG
>>702

「限定子」俺もわかんなくて調べてみたけど、
http://www.atmarkit.co.jp/fjava/rensai/uml02/uml02.html

要するに、キーと値のリストを使ったオブジェクトで用いるものわしい。

(ただ、分かりづらいもの使っててもしょうがないよ。自分が分からないものは多分、回りの人も分らないのでは)

>>701

俺の経験では、5個以上のクラスが書かれたクラス図は分かりづらいクラス図。そんな沢山のクラス間の依存関係があっても困る。

もし 5個以上のクラス図を書かないと、具体的な機能の説明ができないようだったら、それはあまりいい設計とは言えないんじゃないの。
0704デフォルトの名無しさんNGNG
データを取りにいくのかどうかでpush/popという区別をすることがある。

ここで、pop型はpush型によって実現できるとする。
どいうことかというと、push型はデータが出来上がると
クライアントに送りだすとすると、pop型ではpush型のオブジェクト
にラップして、データが出来上がるまで待つ、という処理を
付け加えると考えると、内部でpush型を使っていても見かけ上は
pop型になるからである。

この場合pop型のモデルとpush型のモデルの関係は何だろうか?
pop型モデルはpush型モデルを使っているので、<<use>>依存関係。
push型モデルでpop型モデルを実装しているので、実装の関係。
push型モデルに機能を追加してpop型モデルにしているので、汎化特化関係。
pop型モデルはpush型モデルを含んでいるので、集約。

状況にも依存するとは思うが、果してどういう見方をするのが、正しいのだろうか。
0705デフォルトの名無しさんNGNG
>699, 700
内容は別として、複数のデーモンプロセスと、外部システム、webGUIが
協調して動くDBアプリだが。よくある話だ。

で、よく話が混同してるようだが、どちらもドキュメント要らないという
立場なのか、UMLはわかりにくいという立場なのかどっち?

698はドキュメントはいるだろ、という話なんだが。

で、わかりにくいという話なら、体系づけられたすばらしい
代替方法を教えてくれ。

UMLは単に記述方法なんで、詳細レベルとか、まとめ方とかでいくらでもわかり
にくくできるよ。英語で書いてあるから分かりにくい、フランス語で書いてく
れ。とぃう議論と同じに思える。

で、文法、単語ぐらい共通になってないとお互いコミュニケーション取れないから、UMLでどうです? という意味だと思うのだが。
従って、「UMLでは...という概念がかけない」とか「文法が悪い」とかなら
議論になるが、単に分かりにくいといわれてもねー。できないやつが書いた
んだろ、ぐらいしか反応できないなー。

これだけ議論されてるわけだし、みなが同じ文法を使うということ自体も
重要。英語よりフランス後のほうが論理的だが、英語のほうが人数多いしね...
と同じ。
>698 ユースケースの話と混同してない?
機能記述以外にも、データ定義とか、インターフェースシーケンスとか
いろいろあるんだけど...
0706デフォルトの名無しさんNGNG
>>703
わざわざ調べてくれてありがとうございました。

UMLの規格の、区分(Partition)云々とかいう説明はよくのみこめなかったですが、
キーとそれによって引き出される情報、というとらえかたは解りやすかったです。

Directory/Filename/Fileの場合は、DirectoryからFilenameをキーにしてFileが引き出される。
そして、限定子を使って表現しない場合は、FilenameはFileの属性になる。
Bank/Account/Personの場合は、BankからAccountをキーにしてPersonが引き出される。
そして、限定子を使って表現しない場合は、AccountはPersonの属性になる。

もともとは、いっしょに仕事している人がオブジェクト指向(というかクラス図)がきらいな人で、
一つのクライアントは複数のサーバーにリクエストを出し、
一つのサーバーは複数のクライアントからリクエストを受ける、
一つのホストには一つのサーバーしかない、
という部分のクラス図でクライアントとサーバーに多対多の関連を引いたところ、
「だから、クラス図は使い物にならない」といわれました。

そしたら、UMLに詳しい人が、そういう場合は限定子を使うのだ、と教えてくれて、
その場はうまく治まり、よかったのですが。自分で何かしようとすると、混乱して
しまって解らなくなってしまってました。

おかげで今回少し解るようになりました。
0707narucy56 ◆wMOjCT4s NGNG
>>705

分厚過ぎる「ドキュメント」
http://objectclub.esm.co.jp/eXtremeProgramming/thud-j.html

「かんたんUML」とかオージス総研とかの本に書かれている UML を使った設計方法はかなりインチキだと思う。あんなのでうまくいくはずがない。
0708デフォルトの名無しさんNGNG
>>707
おまえUMLを使ったことないか、ちょっとさわった程度だろ。
使いこなせるようになればかなり便利だぞ。
憶測でものを言うなよ。
0709デフォルトの名無しさんNGNG
>>708
UML 一般を批判しているのではなく

 《「かんたんUML」とかオージス総研とかの本に書かれている UML を
 使った》 設計方法

を非難してるのでは? 両方とも読んでないから、知らんけど。
0710デフォルトの名無しさんNGNG
>>707-708
俺も読んでないからわからんが、
どうせなら707が具体的にインチキさ加減を指摘して
708もカッカしないでレスしてくれれば
丸とは言わないまでも楕円くらいに治まってくれると思う。
0711デフォルトの名無しさんNGNG
「かんたん UML」 は分析・設計に失敗しないでさくさく進むのがおかしい。
0712デフォルトの名無しさんNGNG
>711
そこに突っ込む前に「かんたんUML」と言うタイトルに突っ込まないのがおかしい

というてみるテスト。
0713デフォルトの名無しさんNGNG
>>712
そこに突っ込む前に「かんたんUML」なんてタイトルの本を手にとってしまう奴がおかしい

というてみるテスト。
0714デフォルトの名無しさんNGNG
>>711 分析・設計に失敗しないでさくさく進むのがおかしい。
 失敗つうか、試行錯誤や再設計でそ、普通
0715695NGNG
>>706
クライアント?サーバ?ホスト?
いったいどういうクラス図を作ってるんでしょうか?

単純に多対多の関連なら関連端の多重度がともに0..*(または1..*)になるだけ
だと思うんですが。
0716デフォルトの名無しさんNGNG
誰かこのツール使ったことある人いますか?
http://www.sparxsystems.com.au/
0717デフォルトの名無しさんNGNG
>>716
ダウンしてみました。ちょっと見ただけですが感想。
・日本語NG
・Win用で動作が早い
・ビジネスプロセスを表記可能("Business Modeling with UML"?)
・DBの表記(PKとか)が可能
・実装言語へのフォワード/リバースエンジニアリング可能(出来は不明)
・ステレオタイプいろいろ

パターン、モデル共有等は未チェック。

日本語化して!
0718716NGNG
>>717
日本語はフォントを変更することで表示できることは確認済み
単にUMLだけではないのかな?個人ベースでは意味ないかも。
0719717NGNG
>>718
ほんとだ。わからんかった。
メニュー-View-option-objects-Font name ...

安いのは大きな特徴だと思われ(149ドル)。

個人ベースの利用者増による普及は無い、に同意。
もともとそういう戦略ではないでしょ。
0720デフォルトの名無しさんNGNG
ここのところ、UMLツールを片っ端から物色してるのですが。
今現在、Javaのソースからシーケンス図を生成できるツールってあるんでしょうか?
惜しいのはあるのですが..。(Threadオンリーとか..)

それにしても、roseの体験版は何処で手に入れれば..。(コレだけまだ試せてない..)
0721デフォルトの名無しさんNGNG
>>720
Roseの体験版。.comの TryIt にあるじゃん。疲れてるな..。
0722デフォルトの名無しさんNGNG
オージス総研が「10日でおぼえるUML入門教室」って本を書いたみたい
なんだけど、読んだ人、感想プリーズ。
(いつ出たのか知らないけど地元にはなかった)
0723デフォルトの名無しさんNGNG
>>722
地雷臭いタイトルだな(藁
0724デフォルトの名無しさんNGNG
TogetherSoftのControlCenterはビクーリするくらいよい
0725デフォルトの名無しさんNGNG
関連スレ!

http://pc.2ch.net/test/read.cgi/tech/1016842360/
0726デフォルトの名無しさんNGNG
存在を忘れていたのでage
0727デフォルトの名無しさんNGNG
Javaのソースからクラス図作ってくれる、*無料*なツールってある?
人のソース読むときの参考として、クラス図を自動生成させたいんだけど・・・
0728デフォルトの名無しさんNGNG
>>727
doxygen とか?
0729727NGNG
>>728
試してみた。
javadocを便利にしたような感じで、これはこれで使えそうだけど、
クラス図生成の能力がちょっと・・・
0730デフォルトの名無しさんNGNG
>>729
HAVE_DOT = YES にした? これで多少はマシになる。

(でも UML お絵かきツールには及ばんけど)
0731デフォルトの名無しさんNGNG
とりあえず、ブロンズ程度の内容は覚えたんだけど、
シルバーって他にどんなのを覚えればいいの?
0732デフォルトの名無しさんNGNG
覚えなくてもいいから実地をやれ。
0733デフォルトの名無しさんNGNG
>>671
>事例が多かったので社内のUML化推進の材料にはなりそうだったよ。
社内のUML化推進をおこなうにはどうしたらいいでしょうか?
なんかいいアイデアはないですか?
0734671NGNG
>>733
いい方法があるならオレもぜひ知りたいです。

とりあえず、UML導入以前と以後でどうなるか、という観点から、
メリットとデメリットを列挙して説明する、という安直な方法でやってます。
けっこうこじつけがあります。
が、あんまりやるとかえって逆効果かなとも思ってます。

抵抗勢力が現場をしきっているので、なかなかむずかしいです。

あと、すでに終わった仕事とかを持ち帰ってUMLによる設計に
焼きなおして整理する、ということもやってます。
忙しいのであまり進んでませんが。
これはどちらかというと自分の勉強になってしまってます。
0735デフォルトの名無しさんNGNG
>>727
Togetherをつかいなさい。Roseが糞に見えてくる。
http://www.togethersoft.com
0736デフォルトの名無しさんNGNG
>>734

コンサルつきRUP導入するしかないと思う。
0737デフォルトの名無しさんNGNG
ソフトウエア開発環境展
http://web.reedexpo.co.jp/SODEC/japanese/index.html
に行けばいろいろUML関連ツールは見られそうだ。
0738デフォルトの名無しさんNGNG
集約の「共有」(白い菱形)と「合成」(黒い菱形) (←Visioの用語を使用)
の違いがどうしてもはっきりと理解できません。

分かりやすく教えてください。
0739デフォルトの名無しさんNGNG
用語はごちゃごちゃしているのでこの表を参照してくれ。
http://www.atmarkit.co.jp/fjava/devs/jobjmdl01/jobjmdl_about.html

集約の「共有」(白い菱形) は 集約、
集約の「合成」(黒い菱形) は コンポジッションと呼ぼう。
関連の特殊な形態が集約であるように、
集約のよりオブジェクト間の結びつきが強いものがコンポジション。

集約は has-a の関係だ。
例えば、「a car has four tires」

コンポジションは a-part-of の関係。
例えば、「a finger is a part of a hand」

どこが違うのかというと、オブジェクトの生成消滅のタイミング。
集約の場合は車をスクラップにしてもタイヤだけ取り外して使ってもいい。
コンポジションの場合は、手が成り立つには指が必須であり不可分の存在なので、
手を失うってことは指も同時に失うってこと。
0740デフォルトの名無しさんNGNG
>>739
俺もいまだによくわかんない。
738じゃないけど、便乗教えてくん

(1)「tires is a part of a car」とは言えないのですか?
(2)逆にいうと、タイヤはタイヤとして単独で存在できるが、指は指単独では存在できず、手の一部としてしか存在できない。
 (これは正しいですか?)
(3)コンポジションは、集約の一種ですか?
(4)良くわかんない場合は、集約使っていれば間違いではないですか?
(5)実装してするときに、集約とコンポジションで差がつきますか?
0741デフォルトの名無しさんNGNG
>>740
(1) いいよ。その場合はタイヤは車と不可分。
 739 は取り外したタイヤを転がして遊んだりもできるという設計思想だった。
 そのプログラムの設計上、どの程度オブジェクト同士の結びつきが強いかなので
 集約よりも強いならばコンポジションで表記すればいい。

(2) そだね。集約の端的な例は コンテナに近いクラスかな。
 Book クラスと BookShelf クラスがあるとする。
 BookShelf はインスタンス変数で Verctor books を持ち、
 Book オブジェクトを追加する add(Book book)、削除する delete(Book book) メソッド、
 あとは数を数えたり条件検索したり管理に便利なメソッドがある。
 ある Book を複数の BookShelf に登録したり、
 ある BookShelf が detele や GC されたあとも、その BookShlef にあった Book を
 読者オブジェクトに利用したりなんてことはありえると思う。

 GUI のウィジェットはコンポジション。
 ウインドウ・フレーム・ペインの上にボタンやテキストフィールドを乗せるけど、
 ウインドウがなきゃボタンなどは表示されないし触れない。
 ウインドウが消滅するときはその上に乗っていたウィジェットも一緒に消える。

(3) そう。
(4) 教えるときはそう言ってる。あんま良くないけどね。
 関連と集約は使い分けてほしいけど、集約とコンポジションは混乱しがちだから。
(5) 定義的には 739 に書いたように消滅のタイミングが同じなのがコンポジション。
0742デフォルトの名無しさんNGNG
C#を使ったUMLの解説本って出てます?
JAVAを使ったUMLの解説本はたくさんあるみたいだけど。
0743デフォルトの名無しさんNGNG
別になんの言語を使っててもUMLはUMLだろーよ。
0744デフォルトの名無しさんNGNG
UML1.4をみてみると、
集約=全体−部分関係をなす関連
合成=集約の一種で「多くともひとつの全体に対する部分」になっているもの
といったようになってるようです。
というわけで、この“at most one composite at a time”というのがUMLでの
合成の意味を決定付けているのではないでしょうか。

用語集より
aggregation
A special form of association that specifies a whole-part
relationship between the aggregate (whole) and a
component part. See: composition.

composition
A form of aggregation which requires that a part instance be
included in at most one composite at a time, and that the
composite object is responsible for the creation and
destruction of the parts. Composition may be recursive.
Synonym: composite aggregation.

ノーテーションガイドより
Composite aggregation is a strong form of aggregation which requires that a part instance be
included in at most one composite at a time and that the composite object has sole
responsibility for the disposition of its parts. The multiplicity of the aggregate end may not
exceed one (it is unshared). See “AssociationEnd” on page 2-22 in the Semantics chapter for
further details.

セマンティックスより
composite - The target class is a composite; therefore, the
source class is a part and must have the aggregation value of
none. The part is strongly owned by the composite and may not
be part of any other composite.

0745デフォルトの名無しさんNGNG
>>744
タイヤとクルマの例だと、
タイヤとクルマは、それぞれ部分と全体を成すので集約であり、
さらに、タイヤは同時には1つのクルマの一部として機能するが、
同時に2つ以上のクルマの一部としては機能しないので合成である、
ということか。

あるクルマのタイヤを外して、別のクルマに取り付けた
場合はどうなるんだろうか。集約? 合成?
0746デフォルトの名無しさんNGNG
『独習UML』の例だと、HDやメモリ、モニタといった
パーツで構成されるコンピュータシステムは「集約」。
で、天板と脚から成るテーブルが「合成」。

『独習UML』から引用すると 744 が書いていることと同じだが、
合成は「部分側が単一のクラスの部品になっているような集約関係」
らしい。

つまりある環境において、部分が複数のクラスからも利用されて
いれば「集約」で、単一のクラスからしか利用されていなければ
「合成」になるでは。

>>745
別のクルマに取り付けられるという前提があるのであれば
「集約」ではないでしょうか。
0747デフォルトの名無しさんNGNG
>>746
> 別のクルマに取り付けられるという前提があるのであれば
> 「集約」ではないでしょうか。
なるほど、俺もそんな感じに思ってたよ。
だけど、>>744の「同時に(at a time)」というのに引っかかってしまったわけだ。
同時に、というのが集約と合成を区別するのだとすると、
ハードディスクやメモリーなどは合成ということにならん?
モニターについては複数のマシンで切り替え機を使うことで同時に
利用しているという考え方もありそうではあるが。
0748746NGNG
>>747
そうだね、「同時に」を考えるとパソコンの例は
合成だね。


今月の『JavaWorld』212頁にあるUML要素の説明からも
引用しときます。

コンポジション (ここで言う合成)
あるクラスと他のクラスの間に強い「has-a」の関係があることを
示す。この場合、「has-a」関係のhasに当たるクラスが削除されると、
aに当たるクラスもすべて削除されることになる。
0749仕様書無しさんNGNG
抽象的にそうなんだろけど、
具象を設計するのは我々なんだから、
has-aをpart-ofとして設計またはその逆でも
問題がなければいいのでは?
0750デフォルトの名無しさんNGNG
magicdraw、demo版落としてみたんだけど、
実行しようとするとライセンスキーを聞かれる。
マニュアル読んでもdemo用のキーの事なんか書いてないし。
カネ払わないとdemoも実行できないの?
0751デフォルトの名無しさんNGNG
メールで試用キーが送られてこなかったっけ?
0752デフォルトの名無しさんNGNG
送られてこないっす。flashmail使ってるけど。
試しにメアド変えて(hotmail)登録してみたら、
今度は届いた。2通も。
どうなってるんだ…でもさんくすこ。>751
0753 デフォルトの名無しさんNGNG
漏れ1ライセンス購入したらライセンスキー3個届いた。
どれも使える。
0754デフォルトの名無しさんNGNG
大丈夫なのかmagicdraw。
0755デフォルトの名無しさんNGNG
>>754
幸い MagicDraw のソフト本体が腐ってるという話は出てないから、まー大丈夫
なんじゃないの?
0756デフォルトの名無しさんNGNG
C++のコード取り込みがうまくいかん<MagicDraw 5.1
リバースするきさらさら無いからいいけど。

今いち、買おう、という値段じゃないんだなあ。
0757デフォルトの名無しさんNGNG
おれんとこには試用ライセンスが4つきた。
時間差で。

0758デフォルトの名無しさんNGNG
つまり、今がチャンス?w
0759デフォルトの名無しさんNGNG
>>756
MagicDraw の C++ のリバースはダメダメだね。そもそも、コンパイラでも ANSI C++
フルサポートしてる実装の方が少ないぐらいだから、期待してないけど(w 俺が試し
た中で C++ に比較的良く対応していたのが Togehter。ただし値が張るのと、C++ の
ソースに UML 用の情報を埋め込むタイプなので、微妙に使いにくいのが難。

そんなわけで、結局 MagicDraw のスタンダード版(リバース無し)を使ってるよ。
0760デフォルトの名無しさんNGNG
IIOSSのコードいじってjavaに特化した部分ごっそり削ろうかなあ。

そのためにJava覚えるのもばかばかしいがなあ..
0761デフォルトの名無しさんNGNG
>>759
「Togehter」を見てふと、ルー大芝を思い出してしまった。
てーぅぎゃざーあ
0762デフォルトの名無しさんNGNG
UML関連の記事2題:

http://itpro.nikkeibp.co.jp/members/NC/ITARTICLE/20020527/1/
http://www.atmarkit.co.jp/fjava/devs/survey/survey0205/survey0205.html
0763名無しさん@oopNGNG
> 数億円をかけて100ライセンス以上を購入した。
ここだけ反応してしまった。
0764デフォルトの名無しさんNGNG
いま仕事でUMLを書こうとしているのですが、
クラス図では、Cの構造体をどのように書けばいいのですか
0765デフォルトの名無しさんNGNG
名前と属性だけ書いた箱
0766デフォルトの名無しさんNGNG
ありがとうございます。もう少しご教授お願いします。
クラスとの関係はアグレゲーション(白い菱形)または、
コンポジション(黒い菱形)でよいのでしょうか。
0767デフォルトの名無しさんNGNG
よいんでない?
0768デフォルトの名無しさんNGNG
>>766は「アグリゲーション」ではないかと。
delegateは「デリゲート」?「デレゲート」?
0769デフォルトの名無しさんNGNG
デリゲート
0770デフォルトの名無しさんNGNG
suge-
0771逝ってよし ◆SKbg1v4s NGNG
a
0772鳥肌実 ◆SKbg1v4s NGNG
b
0773デフォルトの名無しさんNGNG
UML技術者認定制度のシルバーはどんな問題が出るの?
140点満点ってことは、140問もあるの!?
0774デフォルトの名無しさんNGNG
一問140点、残りはダミーです。
0775デフォルトの名無しさんNGNG
マジで?
0776デフォルトの名無しさんNGNG
5問。設問が3・4つといったところ。だったかな。
ていうか
親の名前でも使って試しに受けてみなさい。
オージス総研では日本語が通じない事がイタイぐらい身に染みる。
0777fNGNG
f
0778デフォルトの名無しさんNGNG
シルバーとゴールドの問題文、あれは確かに日本語とは信じ難い
0779デフォルトの名無しさんNGNG
b
■ このスレッドは過去ログ倉庫に格納されています