web-dev-qa-db-ja.com

クラス間のクラス図の依存関係

要件をクラス図で表現できますか?

例えば:

学生はクラスに登録できます。異なるクラスがあります。一部のクラスには依存関係があります。スペイン語IIとスペイン語Iに行く前に、スペイン語IIIに行くことはできません。

それをモデル化する方法は?

2
Johannes Klaus

いいえ、ほとんどの要件をクラス図で完全に表現することはできません。

クラス図は、クラスの相互関係の静的な構造を示していますが、多くの要件には動的な側面もあります。ただし、要件によってクラス図の構造が決まります。

たとえば、学生が「スペイン語II」への登録を許可される前にクラス「スペイン語I」に準拠している必要があるという要件を満たすには、クラス図に、クラスとそれ自体とのオプションの関係を示して、考えられる前提条件を記録する必要があります。クラスのために。

要件は、プロファイルを使用して独自に作成できる要件要素を介して表現できます(その種類の要素を提供するプロファイルがすでにいくつかあります)。ただし、より迅速に、要件から派生した制約を追加し、それらを所属する場所にリンクされたクラス図に追加することができます。制約は{note with text in curly brackets}として表すことができます。最終的には、<<pre-condition>><<post-condition>>、または<<invariant>>でステレオタイプ化できます。

リストした要件に関して:ランタイムに関連しており、ユースケースにより適しています。上記は、「学生の名前が20文字を超えることはできない」などの場合に適しています。

1
qwerty_so