0

UML に関する本を読んで、次のことがわかりません。

                                      --------include---> Add new manufacturer
  Servoce Assistant---Add new product
                                     <--------extend----Add new product type    

私はそれを理解していません。メーカー不明の場合は同梱のケースを使用 メーカー追加。しかし、まだタイプが不明な場合は、extend はありますか? それは私には意味がありません。別の場所から Add manufacturer のみを呼び出すことができれば意味がありますが、Add new product type はその場合にのみ存在します。それが正しいか?ありがとうございました!

4

4 に答える 4

5

次の説明は、ユース ケース図での「拡張」と「組み込み」の関係を明確にするのに役立ちます。

インクルード: インクルード ユース ケースは、インクルードされたユース ケースを呼び出すか、呼び出します。包含は、ユースケースがどのように小さなステップに分割されるかを示すために使用されます。付属のユースケースは矢印の先にあります。

拡張: 拡張ユース ケースは、拡張ユース ケースに目標とステップを追加します。拡張機能は、特定の条件下でのみ動作します。拡張ユース ケースは、矢印の先にあります。

ユース ケース図の包含と拡張の関係 http://i.msdn.microsoft.com/Dd409427.UML_UCOvStructure(en-us,VS.100).png

UML ユース ケース図: http://msdn.microsoft.com/en-us/library/dd409427%28VS.100%29.aspxのリファレンス

于 2010-02-19T02:10:56.117 に答える
1

メーカー不明の場合は同梱のケースを使用 メーカー追加。しかし、まだタイプが不明な場合は、extend はありますか? それは私には意味がありません。

それが私にとっても意味があるかどうかは完全にはわかりません。

UML2 仕様では、include について次のように述べています (セクション 16.3.5)。

2 つのユース ケース間の包含関係は、包含ユース ケースで定義された動作が基本ユース ケースの動作に含まれることを意味します。インクルード関係は、2 つ以上のユース ケースの動作に共通部分がある場合に使用することを目的としています。次に、この共通部分は別のユースケースに抽出され、この部分を共有するすべての基本ユースケースに含まれます。インクルード関係の主な用途は共通パーツの再利用であるため、ベース ユース ケースに残されたものは通常、それ自体では完全ではなく、インクルードされたパーツに依存して意味を持ちます。これは関係の方向に反映されており、基本ユースケースは追加に依存するが、その逆ではないことを示しています。

含まれているユースケースの実行は、サブルーチン呼び出しに似ています。含まれるユース ケースのすべての動作は、含まれるユース ケースの実行が再開される前に、含まれるユース ケース内の 1 つの場所で実行されます。

...

含まれるユースケースはオプションではなく、含まれるユースケースが正しく実行されるために常に必要であることに注意してください。

そしての拡張 (セクション 16.3.3):

この関係は、ユース ケースの動作が別の (通常は補足的な) ユース ケースの動作によって拡張される可能性があることを指定します。拡張は、拡張ユース ケースで定義された 1 つ以上の特定の拡張ポイントで行われます。ただし、拡張ユース ケースは拡張ユース ケースとは無関係に定義され、拡張ユース ケースとは無関係に意味を持つことに注意してください。一方、拡張ユースケースは通常、それ自体では必ずしも意味をなさない可能性のある動作を定義します。代わりに、拡張ユース ケースは、特定の条件下での拡張ユース ケースの実行を強化する一連のモジュラー動作インクリメントを定義します。

...

拡張されたユースケースの実行中に最初の拡張ポイントに到達した時点で拡張の条件が true の場合、拡張されたユースケースの適切な動作フラグメントもすべて実行されます。条件が false の場合、延長は発生しません。

ユースケースは、OOD 言語で見つけるにはかなり手続き的なものです。インクルードはサブルーチン呼び出しです。拡張は、条件付きロジックやテンプレート メソッド パターンのようなオプションの手順であり、メイン メソッドがより具体的な実装を呼び出す場合と呼び出さない場合があります。

ユースケースは分類子であるため、クラス間で一般化を表すのと同じ一般化関係をユースケース間で使用できます。拡張と包含は、オプションおよび必須のサブ動作を示します。

別の場所から Add manufacturer のみを呼び出すことができれば意味がありますが、Add new product type はその場合にのみ存在します。それが正しいか?ありがとうございました!

製品を追加するたびに、常に新しいメーカーを追加し、場合によっては新しい製品カテゴリを追加する可能性がある. ユース ケースのいずれかが他の場所から呼び出されているかどうかはわかりませんが、通常は含まれているユース ケースのみを分割します。実際のメーカーがさまざまな製品を製造していることを考えると、これはおそらく不適切な例です。

于 2010-02-01T19:44:20.847 に答える
0

Tomas、クラスを拡張するのではなく、拡張ポイントを意味しますか?

ログインで LWoodyiii の例を取り上げると、すべてが完璧に機能する使用シナリオが出発点としてあり、シナリオがうまくいかない可能性がある場所で使用ケースに拡張機能を追加しますか?

そこにはたくさんのがありますが、uml use case extensionをググってください。

于 2010-01-31T01:58:43.317 に答える