2010-11-26 16 views
1

私はスーパークラスを持っています。この40個の他のクラスが継承していますが、この時点では図を単純化したいと思います。すべての継承関係(40個の関係点が1つのクラスになります)完全な混乱、これを簡素化する可能性がありますか?UMLクラス図の継承表記を簡略化するにはどうすればよいですか?

+0

ポイントは何ですか? 1つの図に40のクラスがある場合、その図はどのような価値がありますか? 1つのクラスから継承する40のクラスはどのようなデザインですか? – duffymo

+0

私は@duffymoに同意しますが、UMLは、特にシステムの設計の初期段階(そして反復的に複雑化し始めます)で、標準的な(そしてシンプルな)モデリング方法が必要であったため、最初に発明されました。とにかく幸運。 –

+1

第1回、あなたの答えをありがとう、duffymoが言及したように... 1つから継承する40のクラス?まあ、1つのシンプルなクラスには、LastModificationのタイムスタンプ、最後のUser Modificacion、バージョン、ロールなどがあります。他のすべての40クラスは、この種の情報を格納する必要があるパラメータです。そのため、すべてのパラメータは、基本的な情報は多分私は質問を変更し、どのような種類のダイアグラムをベストに使うべきか、あるいはこのパターンはどんなパターンに従うのだろうか? – nicoliniyo

答えて

0

UML仕様ではこのようなケースを単純化する直接的な方法はありませんが、本当に1つのクラスから継承するクラスは40です。あなたのデザインをもう一度考え直す必要があるかもしれないと思います。

一般に、属性とメソッドをクラスから除外することができます。そのようにすれば、少なくとも優れています。

+0

第1回、あなたの答えをありがとう、ダフィモが言及したように... 1つから継承する40のクラス?まあ、1つのシンプルなクラスには、LastModificationのタイムスタンプ、最後のUser Modificacion、バージョン、ロールなどがあります。他のすべての40クラスは、この種の情報を格納する必要があるパラメータです。そのため、すべてのパラメータは、基本的な情報は多分私は質問を変更し、どのような種類のダイアグラムをベストに使うべきか、あるいはこのパターンはどんなパターンに従うのだろうか? – nicoliniyo

0

コードの再利用に継承を使用していますか? 40のサブクラスがあるシナリオには一度も遭遇していません。とにかく、1つのアイデアは、論理的に関連するクラスを1つの単一のパッケージダイアグラムにグループ化し、次にパッケージ関係を持つことです。

  1. UMLダイアグラムが;-) 90年代ですけれども、私はいくつかの提案を提供したいと思います。現在のアジャイルの世界では、これらの図をほとんど使用していません。
  2. コードをリバースエンジニアリングし、必要に応じてクラスとシーケンス図を作成できるツールを探します。私は私のプロジェクトの一つで同様の問題があったので、これはあなたがON-DEMANDアプリケーションの関連部分のみ
  3. 読むを視覚化するのに役立ちますについてsub-typing versus sub-classing
+0

私は、休止状態、シームフレームワーク、およびその他のライブラリを使用しているように、逆に複雑になっていますので、私はそれを逆にしたときにどのように不完全か、 thanbks – nicoliniyo

+0

OOPデザインに精通している人だけがUMLに感謝します。 – janetsmith

0

これは良い質問です。私がしたのは、名前を表示するために各クラスのサイズを減らすことです。私は円形+階層レイアウトを選択し、これらすべてのリンクをマウスで移動しました。

結果は鮮明でした。私が使ったツールはEclipseUML Omondoでした。

0

私は次のことをお勧めします:

**

  • SCENARIO 1

**

あなたは、コード生成のためのモデルを使用する予定がない場合

  • すべてのサブクラスをパッケージに入れます。このパッケージには、含まれるすべての要素/クラスが特定のスーパークラスから継承することを示す名前を付けます。たとえば、スーパークラスの名前が "SuperFoo"の場合、パッケージ "SuperFoo_SubTypes"を呼び出します。
  • パッケージ内のすべてのクラスがスーパークラスから継承することを示すために、パッケージにメモを入れます。

**

  • SCENARIO 2

**

あなたは確かにあなたのモデルからコードを生成することを計画します:

オプション1 おそらく、通常どおりにすべての継承関連を描画してから、モデリングツールの非表示機能を使用してスーパークラスを非表示にすることをお勧めします。

オプション2 はイタリック体およびサブクラス要素の右上角にスーパークラスの名前を書いて、サブクラスの各々について、によって継承/一般化を説明するための別の表記法を使用します。この方法は、この記事で簡単に説明しています。 http://www.sparxsystems.com/resources/uml2_tutorial/uml2_classdiagram.html これはもちろん、モデリングツールがこの表記をサポートしているかどうかによって異なります。

こちらがお役に立てば幸いです。

関連する問題