0

部屋に扇風機があります。ファンには 1、2、3、4、5 の 2 つの速度があります。1 が最も遅く、5 が最も速いです。ファンの速度は温度に依存します。

これらは私のファンの通常の設定です: 温度が低い場合 - 速度 = 1、温度が通常の場合 - 速度 = 2、温度が高い場合 - 速度 = 3

私が外出しているときに、他の誰かが私の部屋を使用したいとします。彼は次のように速度を変更したいと考えています: コールド = 2、ノーマル = 3、ホット = 5

このシステムでは、必要に応じてファンの速度を設定できる setFanProperties というユース ケースを作成しました。

通常の設定のユース ケースと、これらの通常の設定をオーバーライドするユース ケースを作成したいと考えています。システムを変更するように頼まないでください。システムに通常の設定とオーバーライド設定の使用例が必要です。

どうすればいいのですか?setFanProperties ユース ケースを拡張する必要がありますか? よろしければ、overrideFanProperties ユース ケースを setFanProperties ユース ケースのインスタンスにできますか?

編集 -

オーバーライドがある場合は、オーバーライドする人に従って設定を変更するようにシステムを機能させたいと思います。その人が部屋を空けた瞬間は、通常の設定を使用してください。

この新しい情報を考えると、延長は依然として最良の選択でしょうか?

これまでの私の図は次のとおりです-

拡張のユースケース図

4

1 に答える 1

1

そう思います。ユース ケース setFanProperties は、通常の設定でシステムを構成し、setFanProperties を拡張する overrideFanProperties に関連付けることができる拡張ポイントを提供します。

UML 2.4.1 によると、拡張ユース ケースの実行中に最初の拡張ポイントに到達した時点で拡張の条件が true の場合、拡張ユース ケースの適切な動作フラグメントもすべて実行されます。条件が false の場合、延長は発生しません。次に、「オーバーライド」条件が false の場合、overrideFanProperties ユース ケースは実行されず、デフォルト設定が適用されますが、条件が true の場合、overrideFanProperties が実行され、デフォルト設定が効果的にオーバーライドされます)。

(ところで、ユースケースは分類子であるため、クラスが別のクラスのインスタンスではないのと同じように、ユースケースが別のインスタンスであるとは思いません)。

編集:

UML 標準では、「関係の条件と拡張ポイントへの参照は、対応する拡張関係に添付された注記にオプションで表示されます」と記載されています。

条件は制約です (自然言語または OCL などの形式言語で表現できます)。「拡張ポイントへの参照」は、拡張ポイントの名前です。(もちろん、詳細のレベルは、モデル化しているものと対象読者によって異なります)。

拡張ポイントの場所の説明は、通常は通常のテキスト (...) として、適切な形式で提供されます。この例では、各ユース ケースにメモを付けて、その動作 (および拡張ポイントを実行できる場所) を詳述することにしました。ユースケースの文書化に使用する任意の方法で記述できます。

于 2013-02-18T07:59:59.740 に答える