0

図書館管理システムのユースケース図を作成しようとしています。管理者とユーザーの2人のアクターがいます。

現在、管理者には、manageCategories(歴史、地理などの本の)manageUserとmanageBooksの3つの関数があります。

私がやっていることは、これら3つの関数を単一の関数で検討することです。manageつまりmanage、単一のユースケースです。

ダイアグラム内の3つの関数managerUser、manageBooks、manageCategoriesをどのように考慮する必要がありますか?

単一のユースケースで3つの関数を含めるか拡張するかmanage、それとも他のものを使用する必要がありますか?

ここに画像の説明を入力してください

4

2 に答える 2

2

@TonyRadに同意しません。

別のユースケースにユースケースを含めることは、「このユースケースを実行するには別のユースケースが必要」と言うようなものです。他のユースケースが実際に呼び出されるという意味ではありません。たとえば、ユーザーが実行する場合、manageBooks常に実行するとは限りませんがeditUser、一方で、manageBooksユースケースの実装がない場合、ユースケースは完全ではありませんeditUser

拡張ユースケースは、拡張ユースケースが存在する必要がない場合に使用する必要があります。たとえば、ブラウザには、プラグインを追加できる拡張ポイントが表示されます。プラグインがない場合はブラウザが動作しますが、プラグインがある場合は、拡張ポイントが来るとブラウザがプラグインを実行します。

あなたの場合、問題はこれらのユースケースがユーザーにどのように表示されるかです。ユーザーが最初に「管理」画面に入る必要があり、そこから「ユーザーの追加」、「ユーザーの削除」、「ユーザーの編集」にアクセスできる場合は、それらを包含としてモデル化するのが論理的です。一方、マネージャーがこの3つのユースケースを直接操作できる場合は、「管理」から「ユーザーの追加」、「ユーザーの削除」、「ユーザーの編集」への継承を行います。

于 2012-12-04T09:29:40.250 に答える
0

私の答えに含まれているユースケースの混乱についての@vainoloのコメントを修正した後に編集されました

manageユースケースがメインアクターの意味を理解する(価値を生み出す)ために呼び出し可能なユースケース(managerUser、manageBooks、manageCategories)を必要とする場合は、include関係を使用する必要があります

アクターがmanage呼び出し可能なユースケース(managerUser、manageBooks、manageCategories)のゼロまたは3つすべてを実行してユースケースを完了することができる場合は、拡張関係を使用する必要があり、それらの拡張ポイント条件ステートメントを指定できます。

manageユースケースが、独立して実行できる3つの呼び出し可能なユースケースを整理するために使用されるコンテナーである場合、ユースケース自体ではなく、3つのユースケースを含むユースケースパッケージmanageとして モデル化します。


含まれているユースケースの必須ではない実行についてのその投稿からの次の抜粋を見つけてください(@vainoloによって正しく指摘されています):

ポイント5:包含ユースケースはオプションである可能性があります

2つの状態のUMLスーパーストラクチャステートメントセクション16.3.5 :

「[包含]ユースケースはオプションではなく、[ベース]ユースケースを正しく実行するには常に必要であることに注意してください。」</ p>

混乱の原因

これは、基本ユースケースの実行ごとに包含ユースケースを実行する必要があることを意味すると解釈する人もいます。

真実から遠く離れたものはなく、真実は単純です。

単純な真実

包含ユースケースが基本ユースケースに対して必須であるかオプションであるかは、基本ユースケースのどこでフラグメントが定義されたかによって異なります。フラグメントは、包含ユースケースのincludeステートメントに置き換えられています。

そのフラグメントが基本ユースケースの無条件フロー(常に実行されるステップ)の一部であった場合、包含ユースケースは必須です。そのフラグメントが条件付きフロー(オプションで実行されるステップ)の一部であった場合、包含ユースケースはオプションです。

では、UMLステートメントはどういう意味ですか?

UMLステートメントの目的は、次のように、include関係とextend関係を対比することであるように思われます。

拡張ポイント(基本ユースケース全体ではない)では、拡張ユースケースの実行はオプションです。

基本ユースケースの実行が拡張ポイントに到達すると、拡張関係に条件が付随している可能性があるため、拡張ユースケースが挿入される場合と挿入されない場合があります。ただし、「包含ポイント」(基本ユースケース全体ではない)では、包含ユースケースの実行は必須です。

基本ユースケースの実行が包含ポイント(つまり、基本ユースケースのincludeステートメント)に達すると、包含関係に条件を付加するための規定がないため、包含ユースケースは常に実行されます。

于 2012-12-03T20:19:34.677 に答える