一、概述
用例是描述系统需求的一种手段,即系统应该做什么。用例图由参与者、用例和主题组成。每个用例的主题都代表了一个用例所适用的系统。用户和任何其他可以与主体交互的系统都被表示为行动者。
用例是一种行为规范。用例的实例指的是紧急行为的发生符合相应的用例。这种情况通常用交互来描述。
二、Abstract Syntax
图 1
三、用例图的基本符号与元素
参与者(Actor):表示系统中的用户,即与系统交互的对象
用例(Use Case):用户与系统的交互行为,可以理解为用户可以使用系统做的事情
系统边界(system):用来表示正在建模系统的边界
包含关系(include):被指向用例为指向用例的行为之一
拓展关系(extend):被指向用例为指向用例的拓展功能
泛化关系(generalization):被指向用例为指向用例的特例之一
关联关系(association):表示参与者与用例之间的关联关系
1、Use Cases and Actors
用例可以适用于任何数量的主题。当用例应用于主题时,它指定了一组行为由受试者执行,从而产生对参与者或受试者的其他利益相关者有价值的可观察结果。
用例是一种BehavioredClassifier,它表示一组提供的行为的声明。每个用例指定受试者可以与一个或多个演员合作执行的某些行为。用例定义了受试者提供的行为,而不参考其内部结构。这些行为涉及参与者和受试者之间的互动,可能会导致受试者状态的变化以及与环境的沟通。用例可以包括其基本行为的可能变体,包括异常行为和错误处理
用例的主题可以是一个系统或任何其他可能具有行为的元素,例如组件或类。每个用例都指定了主题向用户提供的有用功能单元(即与受试者互动)。必须始终完成此功能才能完成用例。视为如果在执行之后,受试者将处于不期望进一步输入或操作的状态,并且UseCase可以再次启动,也可以处于错误状态。
用例既可以用于规范主题的(外部)需求,也可以用于规范由主题提供的功能。此外,用例还可以通过定义参与者应该如何与主体交互,从而使主体能够执行其服务,来说明指定主体对其环境提出的要求
用例的行为可以由一组行为(通过其ownedBehavior关系)来描述,例如交互、活动和StateMachines,以及按前置条件、后置条件和自然语言文本在适当的情况下。它也可以通过协作来间接描述,该协作使用用例及其参与者作为分类器来键入其部分。使用哪种技术取决于用例行为的性质以及预期的读者。这些描述可以组合在一起。具有关联StateMachine的用例示例如图1 所示。
用例可能有相关的Actor,这些Actor描述分类器的实例如何实现用例和扮演Actor角色之一的用户进行交互。指定同一主题的两个用例不能关联,因为它们各自描述了主题的完整用法。
当UseCase与Actor的关联在Actor端的多重性大于1时,这意味着UseCase中涉及多个Actor实例。多个参与者参与用例的方式取决于手头的具体情况,本规范中未对此进行定义。例如用例可能需要两个独立的行动者同时(同时)采取行动(例如,在发射核导弹时)或它可能需要参与者采取互补和连续的行动(例如,一个参与者开始某件事,另一个参与者一个停止它)。
用例可以由包(Package)拥有,也可以由分类器(Classifier)拥有。尽管拥有的分类器通常代表拥有的用例所适用的主题,但情况并非如此。Actor为实体所扮演的角色类型建模,该实体与其相关用例的主体进行交互(例如,通过交换信号和数据)。Actor可以代表由人类用户、外部硬件或其他系统扮演的角色。