ログイン
検索
メインメニュー
フォーラム一覧   -   トピック一覧
   astah*への改善アイデア
     関連クラス変更機能が残念
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 トピック
naka_aki
投稿日時: 2006-7-18 16:38
常連
登録日: 2006-7-4
居住地:
投稿: 42
関連クラス変更機能が残念
MLのほうで以前から「関連クラスが…」と言っていた者です。
今度のJUDE 3(Community)にそれがついて喜んだ…のですが、見たところ、私が期待した機能とはだいぶ違うものが実装されてた (それしか実装されてなかった)ので残念に思っています。
ひとことで言ってしまえば、Rose風の関連クラス変更機能が(も)欲しい、ということです。
以下、説明します。

(以下のAsciiArt(?)では、全角バックスラッシュを、「左のモノと上のモノをつなぐ線」のつもりで使います。具体的にいえば関連クラスと関連の間の点線のつもりです。)

JUDEで

クラス0------------クラス1

という関連の線に対して「関連クラスに変換」をすると

クラス0------------クラス1
関連クラス0/

というような関連クラスが新規に作成され、逆にこの関連クラス1に対して「関連に変換」をすると、関連クラス0が削除されちゃいますよね。

削除されるってことは、UNDO以外の手段では回復不能だということです。

これは私が夢見てた挙動とはだいぶ違います。 (そういう機能も有ってもいいですが、それだけだと困ります。)

だって、消えちゃうってことは、「いろんな関連クラスを着脱してみる」という揺さぶり((C)児玉様)が、できなくなっちゃいますから。

私としては「消す」機能じゃなく「はずす」そして「とりあえずそのへんに置いておく」機能が(も)欲しかったのです。

クラス0------------クラス1
関連クラス0/

の"/"の部分を触って「関連クラスでなくする」などというコマンドを実行すると、

クラス0------------クラス1

関連クラス0

という風につながりが切れてしまうような機能を、です。
そして逆に、

クラス0------------クラス1

関連クラス0

の関連(?)クラス0に対して、関連の線に「ぶら下がりなさい」と命じれば、

クラス0------------クラス1
関連クラス0/

になってくれる、というような機能をです。

(Roseだと関連クラスを関連にDragDropすれば出来上がる…んじゃなかったかな…)

===========

あと現状の、関連クラスに対して行える「クラスに変換」というコマンドですが。

この挙動は「そういうモデル(の変更の仕方)の解釈も有る」という程度のものだと思います。
一種のベストプラクティス。

それはそれで、それを一発で変換してくれる機能がついているのは有意義だと思うのですが、
一方で、上記のような「見たまんまやんか!」という感じの変更を行える機能も、
無いと駄目だ…と私は思っています。

===========

あと、それこそ関連クラス周りで、なんかバグりました。JUDE Community 3.0.1。Javaは1.4.2_05。以下の手順で出来ちゃうみたいです。

0:サラで起動してプロジェクトの新規作成する。デフォルトで存在するクラス図を開く。
1:クラスを2つ作る。デフォだと「クラス0」「クラス1」になる。
2:両者の間に関連クラスを作る。デフォだと「関連クラス0」になる。
3:1の両者の間に再度、関連(関連クラスじゃなく素の関連)を作る。
4:3の関連を「関連クラスに変換」する。
4に対するJUDEの反応:あのー。<<一見何も起きないんですけど…>>
5:ファイルを保存する
5に対するJUDEの反応:保存できず、エラーダイアログが出る。ログファイルには
JP.co.esm.caddies.golf.model.BadTransactionException: Operation should be out of transaction.Call EntityStore#commitTransaction() first.
とかってExceptionが出る。

ところでこれって、ちょうど、
「関連を同一のクラス間に複数引くのは禁止!」という話と
「関連クラスも複数引くのは禁止!」っていう話
(私はそのUMLの仕様に賛同しませんが…)に
絡む実装の部分ですよね。

JUDEは以前から関連(クラス)を複数引けるようになっていたので、
これを作成だけじゃなく変更も可能に機能強化したとき、
どう折り合いを付けるのかな?と楽しみにしていたのですが、
残念ながら今のところエラーになっちゃうという
(そういう意味では最悪の)
実装状況というか設計状況であるようです。

なお私は、クラスじゃなく素の関連ならともかく、
関連クラスにした場合は、
同じ2つのクラス間に複数の関連クラス(や、それどころかインスタンス)を
作れてもいいじゃん、と思っている人です。

(その発想に基づいて実装設計を行っていれば、上記のエラーは起きなかったんじゃないでしょうか?
関連クラスが複数ある状態を最初から想定していなかった…んじゃないか?と邪推しています。)

素の関連なら
「区別不能→複数引くの禁止」
という理屈はわかりますが、
せっかく関連クラス(オブジェクト)にしたのだから、
オブジェクトの「識別可能」という性質を活かせば、
「区別可能→複数引くの許可」
という理屈になる(してもいい)ハズだと思うので…

いや、(とりあえずJUDEに対して)何を言いたいかといいますと、
上記の「バグ」に対して、どういう修正をするご予定かを聞きたいのです。
「関連クラスを複数引くの禁止」
という仕様に変更するのでしょうか?
もしそうなら、今までそういう抜け穴を使っていた(^^;私としては非常に困るので、
乗り換えますから。
乗り換えの必要が有るかどうかを出来れば早めに教えて頂けると
(対策をとる都合上)嬉しいですので、出来れば早めにお願いします。


----------------
A.nakamuraです。

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » 関連クラス変更機能が残念 naka_aki 2006-7-18 16:38
     Re: 関連クラス変更機能が残念 murata 2006-7-18 18:50
       Re: 関連クラス変更機能が残念 naka_aki 2006-7-27 17:36
         Re: 関連クラス変更機能が残念 Kota 2006-8-9 10:04
           Re: 関連クラス変更機能が残念 okamura 2006-8-9 11:05
             Re: 関連クラス変更機能が残念 naka_aki 2006-8-11 18:18

投稿するにはまず登録を