1

UML を学び始めたばかりで、少し混乱しています。次のユースケース図があります。

ボリューム コントロールの使用例図

私がこれを尋ねているのは、UML の正しい知識を持っている人なら誰でも理解できるように、自分の図を正しく描きたいからです。私だけが理解できる方法で図を描くだけではありません。

ここでユースケースの一般化を使用した理由は次のとおりです。

本 UML 2 のセクション 5.3 と統合プロセスを読んだ後、特に 100 ページの例を見た後、私がやろうとしているのはユース ケースの一般化だと思います。この例は、FindProductと呼ばれるユース ケースを示しています。 101ページに記載されているのは抽象的なユースケースです。

私たちはそれを読みました

FindBook の使用例は、より具体的です。特定のタイプの製品である本を扱うために、より抽象的な親を専門化します。親ユース ケースにイベント フローがない場合、またはイベント フローが不完全な場合、それは抽象ユース ケースです。抽象ユース ケースは、最高レベルの抽象化で動作をキャプチャするために使用できるため、非常に一般的です。抽象的なユース ケースでは、イベント フローが欠落しているか不完全であるため、システムで実行することはできません。

そして、それが私の図で表現しようとしているものです。抽象的なユース ケースTurn ONがあり、このユース ケースがそのまま実行されることはありません。システムはIRまたはKNOBによってオンになり、単にオンになることは決してないため、子、またはこの場合は子がそれを特殊化する必要があります。それは抽象的なことです。

したがって、ここでのことは、複数の一般化について確信が持てず、これが正しい場合です。または、たとえば、Turn with IRおよびTurn with KNOBのユース ケースを、Turn ON with IRおよびTurn ON with KNOWのユース ケースに変更し、これらをTurn ONの子にし、 Turn Off with IRおよびTurn OFF with KNOBのユース ケースを追加します。これらをTurn OFFなどの子にしますか?

ありがとう!!

4

1 に答える 1

0

質問について: 私が見た中で最も一般的なアプローチは、ユース ケースごとに 1 つのアクティビティ図を作成することです。

ユース ケース図に関するいくつかのポイント:

1- ユースケース図で複数の専門化を見たことがありません。あなたはそれを再考したいかもしれません。ユース ケース A (子) がユース ケース B (親) を特殊化すると、すべての事前条件、事後条件、メイン フロー、および代替フローのステップが継承されます。この機能は、親のユース ケース (たとえば、音量を上げてオンにするなど) とは異なると推測できます。したがって、控えめに言っても、複数の専門化はここでは意味がありません。

2- モデルに真の価値を追加しない限り、ユースケースの一般化は避けるべきです。あまり直感的ではなく、ダイアグラムがあいまいになります。

3- このユースケース図には、ユースケースをクラスとして、一般化を継承として見る傾向があるようです。これは正しくありません。

4- ユース ケースの粒度のレベルも再検討する必要がある場合があります。IR/Knob でオンにし、IR/Knob でオフにすることはすべて、いくつかの代替フローを使用して 1 つの妥当なサイズのユース ケースに統合できます。しかし、これは要件エンジニアとして行う選択であり、誰もが異なる方法で行う可能性があります。

UML 2 のセクション 5.3 と、ユース ケースの一般化に関する Unified Process book を参照することをお勧めします。

提案:

オンとオフの別々のユース ケースを保持し、1 つのユース ケース (オン) に焦点を当てたいとします。

1- IR で電源を入れる手順がノブで電源を入れる手順とまったく異なる場合は、電源を入れるユース ケースを抽象化し、仕様 (テキスト) を記述したり、アクティビティ図を描いたりしないでください。次に、「ノブでオンにする」と「IR でオンにする」という 2 つのユース ケースを特殊化します。これらは、個別の仕様やアクティビティ図で具体的です。

2- IR で電源を入れる手順が、ユーザーが IR またはノブを選択する 1 つの手順を除いて、ノブで電源を入れる手順とほぼ同じである場合。代替フローを使用できます。この場合、1 つの仕様および/または 1 つのアクティビティ図を持つ 1 つのユース ケースのみを持つことができます。

他の 3 つの使用例についても同じことを行います。

于 2013-02-15T02:24:34.460 に答える