6

さて、UMLダイアグラムで関係を表示しようとするときに、クラスに属性を追加する必要があるのか​​、クラスに関連付けを描画するのかについて、少し混乱しています。

たとえば、DFAのさまざまな状態へのパスのセットがそれぞれ異なる10個の状態オブジェクトを含むDFAクラスがあるとします。DFAからStateクラスに合成線を引くか、DFAクラスの属性セクションに10個すべての状態を入力する必要があります。

基本的に、クラスAに1つ以上のクラスBが含まれている(または構成されている)場合、それらの間に線(集約、構成、関連付けの依存関係など)を描画するか、属性として1つだけ配置するかを判断しようとしています。別。

この記事は質問に答えようとしますが、彼が描いた図について話し始めるとすぐに私は混乱します。

4

1 に答える 1

7

あなたが指摘した記事は1つのガイドラインを与えます:

何年にもわたって、さまざまなモデリングチームと協力してきましたが、最も効果的なルールは、クラスの関連付けとデータ型の属性を使用することです。データ型は、クラスに似た特殊な種類の分類子です。データ型のインスタンスはその値によってのみ識別されるという点で、クラスとは異なります。

私は著者に同意しますが、別の点を追加します。クラス図は理解できるはずです。互いに交差する多くの線がある図がある場合、その図は役に立ちません。これが発生した場合、視覚的な情報をあまり失うことなく属性を使用してモデル化できる関係を見つけ、それらを属性に置き換える必要があります。

属性ではなくリレーションで実行できるもう1つのことは、双方向のリレーションを表示することです(リレーションの各クラスの1つの属性でこれを実行できますが、リレーションのセマンティクスは失われます)。

于 2012-11-26T08:51:59.850 に答える