用例模型
用例模型用来记录系统的需求,它提供系统与用户及其他参与者的一种通信手段。
执行者
用例图显示了系统和系统外实体之间的交互。这些实体被引用为执行者。执行者代表角色,可以包括:用户,外部硬件和其他系统。执行者往往被画成简笔画小人。也可以用带«actor»关键字的类矩形表示。
在下图中,执行者可以详细的泛化其他执行者:
用例
用例是有意义的单独工作单元。它向系统外部的人或事提供一个易于观察的高层次行为视图。 用例的标注符号是一个椭圆。
使用用例的符号是带可选择箭头的连接线,箭头显示控制的方向。下图说明执行者 "Customer"使用 "Withdraw"用例。
用途连接器(uses connector)可以有选择性的在每一个端点有多重性值,如下图,显示客户一次可能只执行一次取款交易。但是银行可以同时执行许多取款交易。
用例定义
一个典型的用例包括:
- 名称和描述
- 需求
- 约束
- 情形
- 情形图
- 附加信息。
名称和描述
用例通常用一个动词词组定义,而且有一个简短的文字说明。
需求
需求定义了一个用例必须提供给终端用户的正式功能性需求。它们符合构造方法建立的功能性规范。一个需求是用例将执行一个动作或提供多个值给系统的约定或承诺。
约束
一个约束是一个用例运行的条件或限制。它包括:前置条件,后置条件和不变化条件 。前置条件指明了用例在发生之前需要符合的条件。后置条件用来说明在用例执行之后一些条件必须为"真"。不变化条件说明用例整个执行过程中该条件始终为"真"。
情形
情形是用例的实例在执行过程中,事件发生流程的形式描述。它定义了系统和外部执行者之间的事件指定顺序。 通常用文本方式来表示,并对应顺序图中的文字描述。
包含用例
用例可能包含其他用例的功能来作为它正常处理的一部分。通常它假设,任何被包含的用例在基本程序运行时每一次都会被调用。下面例子:用例"卡的确认"<Card Identification> 在运行时,被用例"取钱"<Withdraw>当作一个子部分。
用例可以被一个或多个用例包含。通过提炼通用的行为,将它变成可以多次重复使用的用例。有助于降低功能重复级别。
扩展用例
一个用例可以被用来扩展另一个用例的行为,通常使用在特别情况下。例如:假设在修改一个特别类型的客户订单之前,用户必须得到某种更高级别的许可,然后"获得许可"<Get Approval>用例将有选择的扩展常规的"修改订单"<Modify Order>用例。
扩展点
扩展用例的加入点被定义为扩展点。
系统边界
它用来显示用例在系统内部,执行者在系统的外部。