18.1.5 示例
图18.2 Class diagram of a Package owning a set of UseCases, Actors, and a Subsystem
图18.2展示了一个对应ATMtopPkg包的类图,它拥有一组用例、执行者和一个子系统(用例的主题)。本例中的主题是一个带标准子系统关键字的构件。元类不用显式因为子系统stereotype足够暗示该主题是一个构件,参见第22章。
本例展示了一个Customer或administrator可能或不可能参与到任意与它相连的用例中(因为multiplicity为0..1)。从用例的视角,本例中的每个用例都必须有一个执行者来启动它(因为multiplicity为1)。用例Depsit和Register ATM需要Bank的参与,bank可以同时参与到许多Deposit和Register ATM用例中。
在图18.3中的用例图中,用例“Perform ATM Transaction”有一个扩展点“Selection”。这个用例被“On-Line Help”用例通过该扩展点来扩展。当“Perform ATM Transaction”用例执行到“Selection”扩展点所引用的位置时,如果客户选择了HELP键,那么将执行“On-Line-Help”用例。
注意. 用例“Perform ATM Transaction”的定义独立于“On-Line Help”用例。
图18.3 Example Extend
在图18.4中,用例“Withdraw”包含一个独立定义的用例“Card Identification”。
图18.4 Example Include
图18.5使用分类符的标准矩形图示表示了一个用例,它显示了椭圆图标和一个可选的“extension points”隔间。
图18.5 UseCase using Classifier rectangle notation
图18.6、18.7和18.8展示了三种不同的执行者图示。
图18.6 Actor notation using stick-man
图18.7 Actor notation using Class rectangle
图18.8 Actor notation using icon
图18.9使用一个可选的ownedMember格间展示类的一个ownedUseCase。格间名“owned use cases”根据9.2.4定义的规则从属性名ownedUseCase衍生。
图18.9 Notation for UseCase owned by Classifier
用例不必被它们的主题所拥有。例如,图18.10中的用例(功能上与图18.12中显示的一样)应用到子系统“ATMSystem”,但没有被图18.11显示的其它不同的包所拥有。
图18.10 Example ATM system with UseCases and Actors
图18.11 Example UseCases owned by Packages
图18.12展示了一个用例,该用例有一个作为它的ownedBehaviors之一的状态机。用于状态机的分类符符号可以显示在可选的“owned behavior”格间内,该状态机的内部细节显示在右部的状态机图中。
图18.12 Example UseCase with associated StateMachine