トップページ⇒tech
1001コメント271KB

おまえらUMLのモデリングツール何つかってますか?

■ このスレッドは過去ログ倉庫に格納されています
0001七誌NGNG
おまえらの使ってるイカすUMLモデリングツールを聞いちゃうぞ
0243デフォルトの名無しさんNGNG
UML始めようとおもいました。
Java使っていないので非Java製ツール、かつLinux上で、っていうと
Dia(とdia2code)ぐらいしかないねー。

と思ってたらDebian(sarge)にumbrello UMLパッケージが1週間前に出てた。
KDEの開発ツールらしいが、動作がとても軽い。phpやpythonのコードも吐ける。
しばらくこれで頑張ってみよう。
0244デフォルトの名無しさんNGNG
からage(味ぽんブックマーク化許してちょ)
0245デフォルトの名無しさんNGNG
フリーでロバストネス図が書けるものってありますか?
Judeはロバストネス図とユースケースを同じ図に載せられないっぽいんで
ダメっす
0246デフォルトの名無しさんNGNG
図を書くだけなら、Magic Draw UML がコストパフォーマンス最強。 間違いない。
Word, Excel にもコピペ可能。 
0247デフォルトの名無しさんNGNG
リバースでソースコードからUML(クラス図)
書ける安定したものを探しているんですけど。
J仕様書なんか使い物ならないし。
お勧めなのはありませんか
0248デフォルトの名無しさんNGNG
>>247
doxygenではダメ?
0249デフォルトの名無しさんNGNG
>>doxygenではダメ?
それはC言語では?
JAVAのビジュアルな安定性があり大規模なクラスを一気にできる奴。
ないだろうな
0250デフォルトの名無しさんNGNG
generic が実装されるまでは、完全な(というか、我々が期待するような)クラス図を
自動生成するのは、仕様的に不可能なような気がする。
間違い?
0251デフォルトの名無しさんNGNG
完全にはならないが、マシにはなるな。
0252デフォルトの名無しさんNGNG
>>249
Javaか。。。んじゃ、BorlandのTogetherは?
0253デフォルトの名無しさんNGNG
>>249
Doxygen is a documentation system
for C++, C, Java, IDL (Corba and Microsoft flavors)
and to some extent PHP and C#.

クラス図1枚に仕上げることはできんけどね。

>>252
タケーヨ
0254デフォルトの名無しさんNGNG
doxygenはロバストネス図かけるの?
0255デフォルトの名無しさんNGNG
>>Javaか。。。んじゃ、BorlandのTogetherは?
で 書けるの?まともなのが
0256デフォルトの名無しさんNGNG
>>255
試してみれば?
デモしてもらった感じでは、リアルタイムでUMLとコードが変更と同時に変わっていて、感動もんだった。
お値段はめっちゃするけど。
0257デフォルトの名無しさんNGNG
EAの購入を考えて居るのですが、
購入された皆さんはどのバージョンを買われました?
0258U ◆CZtFsGiu0c NGNG
>>257
プロジェクトで必要になって買ったときはコーポレート版は英語版のみ
だったので、プロフェッショナル版です。その後会社で大量購入しました
が、そのときは値段がそれほど変わらないのでコーポレート版を買った
ようです。

通常はプロフェッショナル版で十分じゃないでしょうか。
0259デフォルトの名無しさんNGNG
>>257

UMLの勉強がメインであれば、最初はデスクトップ版でよろしいかと。

ソースコード食わせて遊びたいとか、ソース吐きたい場合は
プロになるけど、アップグレードすればいいしね。

0260デフォルトの名無しさんNGNG
ここで上がっているいくつかのポピュラーなツールって、
相互互換性ってあるんでしょうか?
0261デフォルトの名無しさんNGNG
EAのシーケンス豆で、ある時刻?から先の全てのやりとりを消去するには
どうしたらいいんすかね?

あるシーケンス図をもとに、別のシーケンス図を作製するとき、コピーまでは
いいんだけど、共通部分から先の矢印をひとつひとつ消して行くのが鬱で。
0262U ◆CZtFsGiu0c NGNG
>>260
一応XMIというモデル交換のための規格があり、それに準拠した製品同士ならある程度
やりとりできる。ただし図形情報などはやり取りできないのであまり役に立たない。
UML 2.0ではその辺も強化されるので、UML 2.0サポートツールが揃うようになれば
もっとモデル間のやり取りができるようになる。

あと、Roseが一応デファクトスタンダードなので、Roseのモデルを読み込めるツールも
結構あったと思う。
0263デフォルトの名無しさんNGNG
>257
つい最近購入しました 3.60です。
0264デフォルトの名無しさんNGNG
なんていうか、それっぽい3文字モノに飛びついては
お金をばら撒いて、いい鴨ですね。君たちは。
0265デフォルトの名無しさんNGNG
SEXとかな
0266デフォルトの名無しさんNGNG
3文字?
2chかな。
0267デフォルトの名無しさんNGNG
>>お値段はめっちゃするけど。
重たそう。ROSE
0268デフォルトの名無しさんNGNG
最初はやっぱりホワイトボードかなあ。画面でちまちま
やるのは精神的によくないです。ホワイトボードのほうが
わくわくします。ま、ある程度みえてからはツールつかいますが。
0269デフォルトの名無しさんNGNG
Visioについて。
・UMLのバージョンは1.4? 1.2?
・クラスが増えると重くなると言うレスがあったが本当?
0270デフォルトの名無しさんNGNG
EA評価版を試しています。
hとlibで提供されているライブラリ(DirectX)を使ったプログラムを
UMLで記述しようと思い、EAに読み込ませてみました。
読み込み処理中は、画面にクラス図?がずらずらと表示されたのですが、
処理が終わってから見てみると、何も表示されません。
これはどうゆうことでしょうか?プロジェクトビューからダブルクリックしても
なにも起きません。
0271270NGNG
すいません、よく試したら表示されました。
ただ、予想していた内容とはだいぶ違う。。。鬱だ。
みなさん、どうやってEAの使い方を覚えました?
0272デフォルトの名無しさんNGNG
>>271

とりあえず評価するならサイトからダウンロードできる
ドキュメントを一通り読むべし。あと日本語ヘルプファイル。

買った後はチュートリアルを読めば、とりあえずはUMLを
一通り好きにかける程度には達すると思う。

0273デフォルトの名無しさんNGNG
>>271
予想していた内容とどのように違ったの?
0274271NGNG
>>273
ソースがサブディレクトリごとに分かれているんですが、UML図の表示が
そのディレクトリ単位でしか行えていないような?
ぜーんぶを同じ画面で表示できないのでしょうか?
0275デフォルトの名無しさんNGNG
>>274
おお、そうなのか。
0276274NGNG
しかもソース読み込み時には、hだけしかパースせず、cppファイルは
見ないようです。他のUMLモデリングツールも同じなのでしょうか?
今のままVisio使ってやるのとあまり変わらない気がしてきました。。。
私がUMLモデリング専用ツールに期待しすぎていたのかもしれません。
みなさんは、どんな開発の手順を行っていてどのようにUMLモデリングツールを
使っていますか?

0277デフォルトの名無しさんNGNG
>>276

ほとんどのUMLツールはcppを解析してくれることはない
数百万くらい払えばやってくれるかもしれないけど
2万でそこまで解析できるのが画期的

他の同じ機能を持ったツールは20万とか30万とかする

0278デフォルトの名無しさんNGNG
>>274

ついでにこっちも

どうしてもまとめたいときはhを一箇所のディレクトリにまとめて
解析すればよろし
(ファイルをコピーすれ)

ただ、意味をつけたディレクトリ構成があると思うんで
その構成を無視したクラス図を作って意味があるかどうかは不明

0279デフォルトの名無しさんNGNG
リバースエンジニアリングよりもフォーワードエンジニアリング。
0280デフォルトの名無しさんNGNG
UML -> スケルトン

これは、できる。
だから、1st設計はフォワードでいける。
でも、

スケルトン -> 実装コード

このあと、リファクタリングしたい場合

UML -> 第二版UML -> スケルトン

だと、また、

スケルトン -> 実装コード

で、第一版の実装コードは捨てなくちゃならない。

現実には、

実装コード -> 第二版実装コード -[リバース]-> 第二版UML

とするしかない。
せいぜい、

UML -> 第二版UML -[目で見てコード修正]-> 第二版実装コード

0281デフォルトの名無しさんNGNG
コードからUMLを吐かせて、
UMLを直す代わりにコードを直して、
またコードからUMLを吐かせる。

そのほうが自然だと、思う。
0282デフォルトの名無しさんNGNG
>>281
UML とソースコードだと、表現力が全く異なるので無理。
0283デフォルトの名無しさんNGNG
あれ? おかしいな? 理解に差があるのかな?

>>280を見る限り、UMLには、「既に実装済み」というマークも、
「Aという名前だったがBに変更した」という情報も載せられない
ように読めるんだけど。

表現力が足りないのはUMLのほうですよ?
0284デフォルトの名無しさんNGNG
単体で更新履歴情報を含められるソースコードなんてあるのか?
0285デフォルトの名無しさんNGNG
>>284
コメントが使えない言語なんてそうそう無いと思われ。
0286デフォルトの名無しさんNGNG
それなら UML でもノートつければ同じじゃん。。。
0287デフォルトの名無しさんNGNG
Judeのシーケンス図はあまりに不自由すぎる
タダだから・・・タダだから・・・
0288デフォルトの名無しさんNGNG
そもそも、ソースと一対一対応しているUMLドキュメントなんか作って
何か意味あるのか?
0289276NGNG
私も「UML -> スケルトン」までは簡単だと思うんです。
ただ、私の場合はSDKを使った開発が多く、一番最初に
ライブラリを読み込んで、そこから派生させてプログラムを
実装するという手順になります。
UMLツールを開発の中心に置いた場合、UMLツールからの
コード生成、リバースエンジニアリングに問題があれば、余計に
面倒なワークフローになりそうです。
まだまだ初心者なので、EAを弄りながら色々と考えたいと思います。
0290デフォルトの名無しさんNGNG
>>288

>>280の問題が解決できる

以上
0291280NGNG
>>288
まあ、UML自体が一対一対応してなくても、
UMLの変更を矛盾無くソースに反映できる手段があれば、
それでいいんですが、
例えば、概略のUMLの変更から、それをソースに反映させようとした場合、
変換プログラムで相当高度な判断
(変えていいコードといけないコードの判定)をしなくちゃならない。
それはかなりむずかしいっぽい。

それよりは、一対一対応させるのが、
(UMLツールを作るのが)一番簡単という、
実現可能性の問題だと思います。

>>289
たとえば、UMLツールのデータ形式が標準化されて、
今の Java の API にソースコードがついてきて、
ソースの継承関係を辿ったりとか、デバックしたりするときに、
シームレスに辿っていけるように、
ライブラリにUMLデータがついてきて、
UML上で継承関係などを扱えるようになったりすると、、
そういう問題も、ある程度解決できるんでしょうが・・・。
0292デフォルトの名無しさんNGNG
UMLをXMLで標準化してどのツールでも手軽にエクスポート・インポートできるようにしなくてはならないだろう
今の変換期を逃すと、次のチャンスまで長い間かかりそうだ
0293デフォルトの名無しさんNGNG

Kさん 好循環  Aさん 悪循環  
 (健康体)  (喘息)

1.(神が喘息であるかないかを決める)

2.K 喘息でない人 A 喘息の人は
は体力がある    体力がなくなる

3.K        A 行動力、
          五感(嗅覚)が鈍り感性が変化する

4.K&P 神は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。

5.K 変化なし   A アトピーになる

6.K 正常な感性  A 外に出なくなりさらに異常な感性になる

7.K 正常な人間   A 異常な人間(レッテル)
0294デフォルトの名無しさんNGNG
8.K&A 死

9.K&A      来世

10.K&A 神は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。

11.K&A 神が喘息であるかないかを決める

12.K 喘息でない  A 喘息である

13.K&A    1.に戻る

これは事実。広めようぜ

解決法:体力をつけると感覚が正常に戻り、
    アトピーも快癒に向かう。
    目安としてグランドを10週くらい。
あとはウォーキング
    2.3時間を目安にウインドーショッピングや本屋めぐり
0295デフォルトの名無しさんNGNG
Kさん 好循環  Aさん 悪循環  
 (健康体)  (喘息)

1.(神が喘息であるかないかを決める)

2.K 喘息でない人 A 喘息の人は
は体力がある    体力がなくなる

3.K        A 行動力、
          五感(嗅覚)が鈍り感性が変化する

4.K&P 神は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。

5.K 変化なし   A アトピーになる

6.K 正常な感性  A 外に出なくなりさらに異常な感性になる

7.K 正常な人間   A 異常な人間(レッテル)
0296デフォルトの名無しさんNGNG
>>292
OMG がすでにやってる。XMI (XML Metadata Interchange)というやつ。
Rose などが対応している。
0297デフォルトの名無しさんNGNG
でも、なかなかXMIで互換性とれてる製品がないよねぇ。
まぁ、あと1,2年もすれば、状況はよくなると思うけど。
0298デフォルトの名無しさんNGNG
で,Together edition for .NETを
半額キャンペーンで買えた人いる?
0299デフォルトの名無しさんNGNG
>>280
Togetherじゃだめなんか?
0300289NGNG
>>299
デモ見たけど、togetherよさげ。
リバースエンジニアリング機能&フォワードエンジニアリング機能より、
連続的同期のほうが自分の希望に合ってるなーと。

MS .NET用もあるからC++もいける?
キャンペーン終わったから\98,000+年間保守料\30,000か。出せない金額じゃない。
使ってる人いますか?
0301デフォルトの名無しさんNGNG
>>300
と思って.NET用のデモをインストールしようとしたら、C#かJ#が
インストールされていないとダメだといわれました。
世間ではC++はUMLに向いてないと思われているんだろうか?
0302デフォルトの名無しさんNGNG
Java, C#よりもマルチパラダイム指向だったり、マクロが邪魔だったりするせい
なんじゃないかと思ったことはあるけど。実際のところは知らん。<C++はUMLに不向き
0303デフォルトの名無しさんNGNG
>>301
UML自体はもともと他のどの言語よりC++を優遇してると思うよ。
ツールは知らんけど。
0304デフォルトの名無しさんNGNG
>>303
インターフェースとか思いっきり突き放してる感も。
0305デフォルトの名無しさんNGNG
>>300
together のデモ版を評価したことがあるが、あれで同期を取るためには C++ の
コードの書き方が激しく制約された。ちょっと凝った template とか使った瞬間に
破綻する。

俺のところでは、「モデリングツールの都合で設計・コーディングが制約されるの
では、本末転倒」ということで購入見送り。
0306300NGNG
>>305
同社のC++Builder用だとC++で使えるみたいですね。
そちらを使われたのでしょうか?

破綻してしまう特定の個所をUMLに反映しないようにすることはできないのでしょうか?
他になにか試されたツールはありますか?
0307デフォルトの名無しさんNGNG
Together欲しいけど、貧乏人なので毎年保守料を払いたくない。
保守サービスなしでは使えないような仕組みとか入ってますか?
教えて教えて。
0308デフォルトの名無しさんNGNG
ミセス サイゴウ
0309デフォルトの名無しさんNGNG
305ではないが
>>306
自分で試したほうがいいんでないかと。
おいらはLinuxのデモ版をつかった。
最初はすごいことのようにおもえるけど、
ただ重いだけの気がしてくる。
0310デフォルトの名無しさんNGNG
>>307

貧乏な個人は使うな(=主に企業向け)ということでしょう
ソフトウェアの利益としてそもそも保守料込みで考えているはずなので
1年目は無理でしょう
2年目以降はバージョンアップを放棄すればだいじょぶなはず
0311307NGNG
>>310
レスありがとうございます

ベンダーとしてこの製品では個人を相手にしてないと思うから
その辺は納得しています。
まあ 本体ライセンス + \30000/年でも良いツールなら
高くはないかもしれないけど、2年目以降ライセンスキーを
入れなきゃ使えないとかだとカネがないとき使えなくなって
一大事…と心配しますた。
0312デフォルトの名無しさんNGNG
>>311

そこらへんはソフトによって違うので確認すべし
キー自体に日付情報が含まれていて、期限切れすると
無効になるようなケースも多い

0313デフォルトの名無しさんNGNG
Judeのユースケース図の矢印のメッセージの、黒い▲はどうやったら消せるの?
0314デフォルトの名無しさんNGNG
RationalRoseつかってます。
0315デフォルトの名無しさんNGNG
>>313
関連を選択して右クリック -> [関連名の方向] -> [表示]のチェックを外す
0316デフォルトの名無しさんNGNG
びしお2003
0317デフォルトの名無しさんNGNG
http://www.seshop.com/detail.asp?pid=4906
https://www.soft-direct.com/goodsdetail.aspx?ID=1333
Konesa Basic Typeが\20kらしい。
0318デフォルトの名無しさんNGNG
媚潮2003
0319デフォルトの名無しさんNGNG
>>317

見てみたけど、検討した結果EAのデスクトップにしました。
試供版使うのに名前とか入れるのがめんどいので
使ってみたわけじゃないけど。
0320デフォルトの名無しさんNGNG
今日 IBM/Rational のセミナーいってきた。
Rose-RTが激しく便利そう。
実行させると、勝手にシーケンス図ができる。
回帰テストにも流用可能らしい。むちゃほしい。

ふと思ったのだが、ログファイルを解析して、シーケンス図描いてくれるツールとかないかななぁ。

ログファイル
ClassB:: methodB() :: call aClassA.methodA()

生成されたシーケンス図
ClassB ClassA
  | methodA |
  |   ---> |


みたいな。
0321デフォルトの名無しさんNGNG
同じ関数がいろんなところから数百万回とか呼ばれたらすごいことになりそうだな
0322デフォルトの名無しさんNGNG
>>321
現実的じゃないな。
0323デフォルトの名無しさんNGNG
OMG認定UML技術者資格試験というものがある。
http://www.umlcert.org
0324デフォルトの名無しさんNGNG
JUDE
0325デフォルトの名無しさんNGNG
Poseidon Release 2.2 just published だそうだ
0326デフォルトの名無しさんNGNG
Judeのアクティビティ図で繰り返し条件を表現するにはどうすれば良いでしょうか?
0327326NGNG
条件分岐を使えば良いっすね。(台形の図がどこかにないかって探してしまってた)

Jude良いっすねぇ〜。
以前にEclipse Omondoを使った時はかなり幻滅しました。
0328デフォルトの名無しさんNGNG
>>327
え〜?gotoでループ?
0329デフォルトの名無しさんNGNG
poseidonとEAを足して2で割ったようなのが出てきてくれると俺的にはうれしい
0330デフォルトの名無しさんNGNG
そういや、EAって近々値上げするんだよね。
部署で一括導入しようと思ってたんだけど、
ちょっと言い出しづらくなったな・・
0331デフォルトの名無しさんNGNG
>>330

値上げしてもこの値幅なら安さの優位点はほとんど変わらないと思われ

ただ、最近はKonesaにしろTogetherにしろ、
価格を下げてきているので、比較の余地があると思う。

まあ、でもKonesaBasicは論外だね。
ToghtherかEAか って感じか


0332デフォルトの名無しさんNGNG

たかだか三千円弱で言い出しづらくなる部署ってのも
ヒサンだな

0333デフォルトの名無しさんNGNG
フリーでソースからシーケンス図を自動生成してくれるツール
でおすすめなものあります??
0334デフォルトの名無しさんNGNG
>>333

おすすめもなにも存在しないのでは?
0335デフォルトの名無しさんNGNG
>>333
無理。理由は二つ。

シーケンス図は「典型的な場合のシーケンス」を人間が図示したもので、
あらゆるケースを列挙したものではない。「典型的」とかの判断はコードを
見ただけで自動的にできるものではない。

加えて派生クラスの実体が何になるかは、やってみないとわからない。
たとえば Foo* p; p->func() というコードのシーケンスを書く場合、
p の実体が何かによってシーケンスが変わってくる。これを完全に
解析するのはコンピュータには難しいし、解析したとしても場合分け
が多すぎて実用的じゃない。
0336デフォルトの名無しさんNGNG
でも有料のものであれば存在するのでは?
ない?
0337デフォルトの名無しさんNGNG
あ、もちろんある程度の制約はあると言う条件で
(すべての場合について完全に解析できる、ということではなく
ある程度のシーケンス図がかけるようなツール)
0338デフォルトの名無しさんNGNG
ある程度ってどの程度よ。
もうちっと脳みそ使えよ。

わかっている振りして曖昧な表現するやつは嫌い。
0339デフォルトの名無しさんNGNG
Togetherの試用版
0340デフォルトの名無しさんNGNG
>>338は自分が嫌い。
0341デフォルトの名無しさんNGNG
ソースからクラス同士の参照状態を得るのは簡単なんだよ。静的にソースを読んでいけばよい。
最悪、コンパイラと同等の処理ができればよい。コンパイラはソースのクラスを理解してコードを
出しているからね。

シーケンス図を作るには、コード同士がどの順番でどうかかわるかを認識しないと書けない。
それは動的な評価が必要ということだ。何らかの形でコードを実行してみる必要がある。
それは大変なコストがかかるし、ほんとに動作するかもわからない。そしてすべての可能性を
尽くしたかどうかを知ることもできない。(チューリングマシンの停止問題にかかわる)

コストがかかる割には完全なものが作れない(と思われている)のでどこもやっていない。

...やってみたら一財産稼げるかもよ?

0342デフォルトの名無しさんNGNG
チューリング云々はわからんが、
1) 複数のクラスに対して、振る舞いを数えつくせるか?
2) 数えつくせたとして、どれが典型的と判断するか?

どっちもできないって。
テストケースの数え上げと同じだよ。と言えば理解しやすいかな?


0343デフォルトの名無しさんNGNG
C 言語だと関数の call graph を書き出すツールはあった気がする。
簡単なプログラムならともかく、ちょっと規模が大きくなるととても
実用にならないし、関数ポインタが絡むとアウトだったけど。
■ このスレッドは過去ログ倉庫に格納されています