18 UseCases¶
18.1 Use Cases¶
18.1.1 Summary¶
UseCases はシステムの要求、すなわちシステムが何をすることになっているものであるのかを捉える手段の一つだ。主要概念は Actors, UseCases, subjects
だ。
UseCase の
subject
それぞれはその UseCase が適用される検討中のシステムを表現する。利用者や
subject
に相互作用することがある他のシステムは Actors として表現される。
A UseCase is a specification of behavior. An instance of a UseCase refers to an occurrence of the emergent behavior that conforms to the corresponding UseCase.
こういうオブジェクトは Interactions を用いて記述されがちだ。
18.1.2 Abstract Syntax¶
Figure 18.1 UseCases
Actor と UseCase は BehavioredClassifier の特殊化だ。
Extend と Include は NamedElement と DirectedRelationship の両方の特殊化であり、UseCase が所有することがある。
Extend は Constraint を一個だけ所有することがある。
ExtensionPoint を UseCase が複数所有することがある。
18.1.3 Semantics¶
18.1.3.1 Use Cases and Actors¶
UseCase は任意の個数の subjects
に適用してよい。 UseCase が subject
に適用する場合、その subject
によって行われる挙動の集合が指定され、その
subject
の Actors または他の利害関係者にとって価値のある、目に見える結果が生じる。
A UseCase is a kind of BehavioredClassifier that represents a declaration of a set of offered Behaviors.
UseCase のそれぞれは
subject
が一つ以上の Actors と協調して行うことが可能である挙動を指定する。UseCase はその
subject
の内部構造を参照することなしに、そのsubject
の供給される Behaviors を定義する。これらの Behaviors はその Actors とsubject
の相互作用に関与し、そのsubject
の状態の変化とその環境との通信を生じることがある。UseCase には異例の挙動やエラー処理など、基本挙動の変種を含めることが可能だ。
UseCase の subject
はシステム、または Component や Class など、挙動を有することがある他の要素である可能性がある。UseCase のそれぞれはその subject
が利用者に対して実現する有用な機能の単位(それと相互作用する特定の手段)を指定する。
This functionality must always be completed for the UseCase to complete. It is deemed complete if, after its execution, the
subject
will be in a state in which no further inputs or actions are expected and the UseCase can be initiated again, or in an error state.
UseCases を subject
に対する(外部からの)要求の仕様と、subject
が供給する機能の仕様との両方に対して利用することが可能だ。さらに、UseCases は指定された
subject
がそのサービスを行使することが可能であるように、その Actors がその
subject
とどのようになるべく相互作用するのかを定義することによって、指定
subject
がその環境に対して提示する要件を述べてもよい。
The behaviors of a UseCase can be described by a set of Behaviors (through its
ownedBehavior
relationship), such as Interactions, Activities, and StateMachines, as well as by pre-conditions, post-conditions and natural language text where appropriate.
また、UseCase とその Actors を、その部分を型付ける Classifiers として使う Collaboration を通して間接的に記述することもある。これらの技法のどちらを採用するかは、その UseCase 挙動の性質や読者次第だ。これらの記述は組み合わせることが可能だ (Fig. 18.12)。
UseCases には関連 Actors があってもよく、UseCase を実現している Classifier のオブジェクトと Actor の役割の一つを演じる利用者がどのように相互作用するかを記述する。二つの UseCases はそれぞれ個別にその subject
の完全な使用法を記述するため、関連付けることは不可能だ。
When a UseCase has an association to an Actor with a multiplicity that is greater than one at the Actor end, it means that more than one Actor instance is involved in the UseCase.
複数の Actors がどのように UseCase に関与するかは、具体的な状況により異なり、本仕様では定義されない。
A UseCase may be owned either by a Package or by a Classifier.
所有する Classifier は所有される UseCases が適用される subject
を表すのが普通ではあるが、Fig. 18.10, 18.11 で図解されるように、必ずしも当てはまらない。
Actor は関連する UseCases の subjects
と相互作用する物が果たす役割の型のモデルだ。Actors は人間の利用者、外部ソフトウェア、他のシステムが果たす役割を表現することがある。
Actor は特定の物理的実体を必ずしも表現するものではなく、その関連する UseCases の詳細に関連する、何らかの実体についての特定の役割を表現する。
Thus, a single physical instance may play the role of several different Actors and, conversely, a given Actor may be played by multiple different instances.
役割 (role) という用語をここでは非公式に用いており、本仕様書中の他のどこかに見当たるその用語の技術的な定義のいずれをも意味しない。
Actor が UseCase に関連し、UseCase 側の多重度が 1 を超える場合、ある Actor がその型の複数の UseCases に関与することが可能であることを意味する。
The specific nature of this multiple involvement depends on the case on hand and is not defined in this specification. Thus, an Actor may initiate multiple UseCases in parallel (concurrently) or at different points in time.
18.1.3.2 Extends¶
Extend:
An Extend is a relationship from an extending UseCase (the
extension
) to an extended UseCase (theextendedCase
) that specifies how and when the behavior defined in the extending UseCase can be inserted into the behavior defined in the extended UseCase. The extension takes place at one or more specific extension points defined in the extended UseCase.
Extend は少なくとも一つの UseCase で定義された挙動に、条件付きでなるべく追加されるさらなる挙動がある場合に利用される。
被拡張 UseCase はその拡張 UseCase と独立して定義され、この拡張 UseCase とは独立して意味を持つ。他方では、拡張 UseCase はそれ自身では必ずしも意味をなさない挙動を定義する。
Instead, the extending UseCase defines a set of modular behavior increments that augment an execution of the extended UseCase under specific conditions.
同じ拡張 UseCase は複数 UseCase を拡張することが可能だ。その上、拡張 UseCase は自身が拡張されることもある。
Extend is a kind of DirectedRelationship, such that the
source
is the extending UseCase and thetarget
is the extended UseCase.
また、NamedElement の一種でもあり、所有する UseCase の context において name
を持つことが可能だ。この Extend 関係自体はその extension
が所有する。
An ExtensionPoint identifies a point in the behavior of a UseCase where that behavior can be extended by an Extend relationship. Each ExtensionPoint has a unique name within a UseCase.
ExtensionPoint の位置を定義する明確なやり方は意図的に未指定だ。UseCases は自然言語、図表、樹形図等々、さまざまな形式で指定することが認められているからだ。
The intuition behind the notion of
extensionLocation
is best explained through the example of a textually described UseCase: Usually, a UseCase with ExtensionPoints consists of a set of finer-grained behavioral fragment descriptions, which are most often executed in sequence.
このように UseCase テキストの断片構造化は、元の断片間の適切な挿入点(拡張点)に補足的な挙動の断片記述を合併することで、元の挙動の記述を拡張してもよい。したがって、拡張 UseCase は通常、被拡張 UseCase の適切な箇所に挿入される一つ以上の挙動断片記述から構成される。
An
extensionLocation
, therefore, is a specification of all the various ExtensionPoints in a UseCase where supplementary behavioral increments can be merged.
拡張 UseCase 実行中に最初の ExtensionPoint に到達した時点で、Extend の
condition
が欠けているか、あるいは被拡張 UseCase の実行中に到達した初回時に真であると評価される場合、拡張 UseCase の適切な挙動断片のすべてもまた実行される。この condition
が偽であれば、このようなことは起こらない。
The individual fragments are executed as the corresponding ExtensionPoints of the extended UseCase are reached. Once a given fragment is completed, execution continues with the behavior of the extended UseCase following the ExtensionPoint.
複数の UseCase があっても、実行される挙動は一つであることに注意。
18.1.3.3 Includes¶
Include:
Include is a DirectedRelationship between two UseCases, indicating that the behavior of the included UseCase (the
addition
) is inserted into the behavior of the including UseCase (theincludingCase
). It is also a kind of NamedElement so that it can have aname
in the context of its owning UseCase (theincludingCase
).
包括する UseCase は、包括される UseCase の実行によって生じる変更に依存することがある。包括する UseCase の挙動を完全に記述するためには、包括される UseCase が利用可能であることが必要だ。
The Include relationship is intended to be used when there are common parts of the behavior of two or more UseCases.
この共通部分は、別の UseCase に抽出され、この共通部分を持つすべての基底 UseCases に包括される。
Include 関係の主な用途は共通部分の再利用であるため、基底 UseCase に残されたものは、通常、それ自体で完全なものではなく、包括された部分に依存して意味を持つ。これは関係の方向に反射され、基底 UseCase が addtion
に依存し、その逆はないことを示す。
All of the behavior of the included UseCase is executed at a single location in the included UseCase before execution of the including UseCase is resumed.
Include 関係は UseCases の階層的合成や再利用を可能にする。
18.1.4 Notation¶
UseCase の記法:
A UseCase is shown as an ellipse, either containing the name of the UseCase or with the name of the UseCase placed below the ellipse.
ステレオタイプキーワードを名前の上に配置してもかまわない。
A
subject
for a set of UseCases (sometimes called a system boundary) may be shown as a rectangle with its name in the top-left corner, with the UseCase ellipses visually located inside this rectangle.
同じモデル UseCase は複数の subject 矩形内に別々の楕円として描かれることがある。
Where a
subject
is a Classifier with a standard stereotype, the keyword for the stereotype shall be shown in guillemets above the name of the subject.
メタクラスがあいまいな subject
の場合は Classifier のメタクラスに対する記法に対応するキーワード .
を、その名前の上に «» で囲んで示すものとする。
複数のキーワードやステレオタイプ名が適用される場合、(9.2.4) で定義された記法オプションが適用される。
The subject notation is illustrated by the example in Figure 18.2 which shows a Component with the standard stereotype «Subsystem».
上述の subject
classifier についての記法は通常の Classifier のそれとは異なることに注意する。見出しも区画もない。
Note also that the
subject
rectangle does not imply that thesubject
classifier owns the contained UseCases, but merely that the UseCases apply to that classifier.
特に、subject
である Classifier を表す境界矩形に視覚的には含まれているように見える UseCase と、所有者である Classifier の区画に視覚的には含まれているように見える UseCase との間に混同の余地がある (Fig. 18.9)。
属性と操作は通常の Classifier 矩形と同じ内容で、UseCase 楕円内部にある区画らに表示されることがある。
ExtensionPoints may be listed in a compartment of the UseCase with the heading extension points.
各 ExtensionPoint は、次の構文に従い、UseCase の楕円の記号内の文字列で示される:
<extension point> ::= <name> [: <explanation>]
説明(オプション):
Note that explanation, which is optional, may be any informal text or a more precise definition of the location in the behavior of the UseCase where the extension point occurs, such as the name of a State in a StateMachine, an Activity in an activity diagram, a precondition, or a postcondition.
UseCases には他の Classifiers に対する Associations や Dependencies を持つことがある。例えば入出力、イベント、挙動を表すのに持つ。
UseCase で定義された詳細な挙動は、選択された記述手法に従って、別々の図式または文書に記録される。
Fig. 18.5 のように、UseCase を Classifiers の標準的な矩形記法を用いて示してもよい。その場合は楕円アイコンを矩形右上隅に付ける。この場合、拡張点はオプション区画だ。この描写は拡張点や特徴が多い場合に適している。
Actor:
An Actor is represented by a “stick man” icon with the name of the Actor in the vicinity (usually above or below) the icon
Actor をすべての区画を通常の記法で、キーワード «actor»
の付いた Classifier
矩形で示してもよい (Fig. 18.8)。
人間以外の Actor には別の図像を使用するなど、Actor の種類を示す他の図像を使用することが許される。
Classifier による UseCase の入れ子(所有)を、Classifier 矩形内に UseCase 楕円を入れ子にして別の区画で表現してもよい (9.2.4)。
Extend:
An Extend relationship between UseCases is shown by a dashed arrow with an open arrowhead pointing from the extending UseCase towards the extended UseCase.
矢印のラベルにはキーワード
«extend»
が付く。Extend の条件とその ExtensionPoints への参照は、その対応する矢印に付けられた Comment 記号 (7.2.4) で、オプションとして示される (Fig. 18.3)。
Include:
An Include relationship between UseCases is shown by a dashed arrow with an open arrowhead pointing from the base UseCase to the included UseCase.
矢印のラベルにはキーワード
«include»
が付く (Fig. 18.4)。
18.1.5 Examples¶
Figure 18.2 Class diagram of a Package owning a set of UseCases, Actors, and a Subsystem
UseCases, Actors および UseCases の subject
である Subsystem からなる集合を所有する Package ATMtopPkg
に対応するクラス図だ。
この見本では
subject
は Subsystem 標準ステレオタイプを持つ Component だ。Subsystem ステレオタイプはメタクラスを示す必要はない。その
subject
が必然的に Component であるからだ (22 Standard Profile)。
The example shows that a Customer or Administrator may or may not participate in any of their associated UseCases (hence the
0..1
multiplicity).
UseCase としてはこの見本の UseCase すべてにはそれを開始する Actor がなければならない。それゆえ多重度
1
だ。Deposit
とRegister ATM
UseCases はBank
の関与を要する。Bank
のほうは同時に多くのDeposit
とRegister ATM
UseCases に関与することが可能だ。
Figure 18.3 Example Extend
UseCase Perform ATM Transaction
に ExtensionPoint selection
がある。
この UseCase は Perform ATM Transaction
の発生が selection
拡張点によって参照される場所にあり、顧客が HELP キーを選択するたびに UseCase
On-Line Help
によってその拡張点を介して拡張される。
Perform ATM Transaction
UseCase は On-Line Help
UseCase とは別に定義される。
Figure 18.4 Example Include
UseCase Withdraw
は独立して定義された UseCase Card Identification
を含む。
Figure 18.5 UseCase using Classifier rectangle notation
楕円図像を持つ Classifiers に対する標準矩形記法とオプションの拡張点区画。
矩形右上隅に楕円を描けばよい。
区画
extension points
は任意だが、記すときはこのようにする。Figure 18.6 Actor notation using stick-man
棒人間を描き、その真下に Actor 名を記す。
Figure 18.7 Actor notation using Class rectangle
矩形を描き、内部にキーワード «actor»
付き Actor 名を記す。
Figure 18.8 Actor notation using icon
図像で Actor を表現する例。見てくれは PC だが Actor 名は User
とある。
Figure 18.9 Notation for UseCase owned by Classifier
オプションの ownedMember
区画を使用している Class の ownedUseCase
の見本。
Make Purchase
は ClassDepartmentStore
のownedUseCase
だ。区画の名前が
owned use cases
となっているが、これは (9.2.4) で規定されている規則に従い、特性名ownedUseCase
から導出されるものだ。Figure 18.10 Example ATM system with UseCases and Actors
UseCases need not be owned by their
subject
.
これは前掲 Fig. 18.10 と同じ機能だ。ここにある UseCases は ATMSystem
Subsystem に適用される。しかし、次の見本で示すように所属が別々のパッケージだ。
Figure 18.11 Example UseCases owned by Packages
Package の中身が UseCases になっている。
パッケージ ATM Services
がパッケージ TransactionUseCases
を import しているので、名前が共通する UseCases が色を変えて描かれている。
Figure 18.12 Example UseCase with associated StateMachine
左側はその ownedBehaviors
の一つとして StateMachine を持つ UseCase を示す。この StateMachine の Classifier 記号はオプション区画 owned behaviors
に示されることがある。
右側はこの StateMachine 内部の詳細を表した状態機械図だ。
StateMachine Call
はここでは矩形プラスキーワード «statemachine»
で示されている。
18.2 Classifier Descriptions¶
機械生成による節。
18.3 Association Descriptions¶
機械生成による節。