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

UML皆でお勉強しよ♪

■ このスレッドは過去ログ倉庫に格納されています
0001ニュージーランド漁夫NGNG
  Λ_Λ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)< お勉強しよ♪
 (    )  \____________
 | | |
 (__)_)
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
0780デフォルトの名無しさんNGNG
「Roseを256倍使う本」を書こうと思うんだけど売れると思う?
0781デフォルトの名無しさんNGNG
>>780

うん、>>780の親が買ってくれるよ。
0782780NGNG
>>781
いや、親には内緒だから。
0783ニュージーランド漁夫NGNG
  Λ_Λ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)< 初めはロクな書き込みなかったけど...最近は嬉しいな♪
 (    )  \____________
 | | |
 (__)_)

コンドサッポロノアルカイシャトコラボレーションスルンダケドUMLヲコミュニケーションツールノヒトツトシマス
0784デフォルトの名無しさんNGNG
お高いCASEツールなんぞ買えないし
フリーのこんなのいいと思うけどどうよ。
単純明快な感じするけど。

http://www.vector.co.jp/soft/win95/prog/se215535.html?l
0785デフォルトの名無しさんNGNG
おお、なんかよさげな感じ
0786デフォルトの名無しさんNGNG
いいね、コレ。
こういうメモ描きに適したのってなかったもんね。
Roseはもちろん、Visioもmagicdrawも構えちゃうし。

この手のダイアグラムには、こういう気軽な道具こそが大切だとつくづく思えるね。
早速言いふらかしましょう。
0787デフォルトの名無しさんNGNG
多重度が指定できると良いのだが.. とか言い出すとキリないけど
ほんとよく出来てると思う。
0788デフォルトの名無しさんNGNG
清書は Visio か何かでやればいいかと。
試行錯誤するのにいいかも。
0789784NGNG
評判よさそうだから
作者に教えてやろう。
きっとよろこぶダス。
0790デフォルトの名無しさんNGNG
コレがいいか〜?
俺ならmagicdraw使うな…

ていうかもう、code gen付いてないUMLエディタを使う気にならん…
0791784NGNG
む。
危うく作者に「大評判デス!」と送るところだった。
送るのはやめておこう。
よくないのか?
code genてなんだべ。
0792790NGNG
コードジェネレータ。

いや、まあ、こういう激軽いのを欲しがってた人もいるにはいるだろうな。
んで、そういう人にはバカ受け、と。
そう報告する分には良かろうて。
0793784NGNG
ああ、こぉどぢぇねれたーか。
ふぅん。
0794デフォルトの名無しさんNGNG
なんかこう、「クラスを作って」から「クラス図に反映」っていう直感的な
操作ができるエディタって少ない。俺が知ってる限りではMagicDrawだけ。
どいつもこいつも、「まずクラス図に配置してから」云々って操作を強いるんだよなー。
0795デフォルトの名無しさんNGNG
想像するコォドジェネレェタ
もやもや。

+-----------+
| Pen |    public class Pen{
+-----------+ private int katasa;
| -katasa |
+-----------+ public void getKatasa(){
|getKatasa()| //てめぇで実装しれ
+-----------+ }
   △ }
   |   →
+------------+ class SharpPen extends Pen{
| SharpPen | private int Sin_no_kazu;
+------------+
|-Sin_no_kazu| public void getKazu(){
+------------+ //てめぇで書けっつーの
|getHonsu() | }
+------------+ }

よく知らんけどきっとこういうやつに違いない。
0796デフォルトの名無しさんNGNG
すまんズレ過ぎて意味がわからん。
気にしないでくれ・・。
0797790NGNG
あのねえ・・・最近のコードジェネなら、
setter/getter ぐらいは中身まで書いてくれるよ・・・
0798デフォルトの名無しさんNGNG
ふぅん、そか・・。

ねぇ、>>794の
「クラスを作って」から「クラス図に反映」
って普通の使い方なわけ?
0799デフォルトの名無しさんNGNG
平たく言えば、Borland の RAD の 2-WAY と一緒でしょ。
どっちかを変更すればもう一方にも自動的に変更が適応される。
0800794=790NGNG
普通かどうかは知らん。
ただ、俺は「まずクラス図に空のクラスを放り込む」って操作に違和感を禁じ得ないの。
「クラスを作って」から「クラス図やシーケンス図に放り込むと初めて図として表示される」ってのが自然だろ。


#まあこう力説しても「どうでもいいじゃん」と流された事しかないけど…
0801790NGNG
>799 いや、俺はあくまで”最初の一歩が気に入らん”と言いたい。
0802デフォルトの名無しさんNGNG
こだわるねぇ
0803デフォルトの名無しさんNGNG
>>801
今あるほとんどの UML エディタは
オブジェクト指向設計向けに作られているからしょうがない。
RUP を見ても分かるように図を作成して開発を進めましょうってやり方。
設計段階によってはクラス図とコードが一対一対応しない。
UML エディタは開発支援ツールとしてはあんまり成功してないけどな。
コードセントリックな方が受け入れられやすいし。
0804 NGNG
>>803
同感

けど、UMLと既存言語間のマッピングは一つの様式に拘るべきだな。
0805デフォルトの名無しさんNGNG
お絵かきから設計を始めるなんてのは、正に絵空事。
0806デフォルトの名無しさんNGNG
同じクラスを違う図に配置すると別物として扱われるタイプのものは嫌、ということ?
それだったら同意
0807デフォルトの名無しさんNGNG
どうせ名前くらいはその場でつけるんだから
新規作成したその場でアイコンのプロパティが開いてくれたほうが楽。
0808デフォルトの名無しさんNGNG
>>794
Roseはできるよ
■ このスレッドは過去ログ倉庫に格納されています