Thinking in uml 03 uml核心元素(一)

一.版型

版型(stereotype),是对一个uml元素基础定义的扩展,在同一个元素基础定义的基础上赋予特别的含义,使得这个元素适用于特定的场合。比如,接口、边界类、实体类、控制类等都是类的版型。

二.参与者

建模时从寻找抽象角度开始的,定义参与者,就是我们寻找抽象角度的开始。

1.基本概念

参与者(actor)是系统之外与系统交互的人或物。参与者与系统之间有着一个明确的边界,一谈到参与者,必须想到系统边界的存在,否则参与者就是可疑的。注:参与者可以是物。

通过回答两个问题,可以帮助找出参与者从而确定边界:

(1)谁对系统有着明确的目标和要求,并主动发出动作?

(2)系统是为谁服务?

情况一,机票购买者通过登录网站购买机票,那么机票购买者就是参与者;

情况二,假如机票购买者通过呼叫中心,由人工坐席操作订票系统购买机票,那么人工坐席才是真正的参与者,而机票购买者实际上是呼叫中心的参与者;

情况三,如果机票购买者通过呼叫中心的自动语音预定机票而不是通过人工,那么呼叫中心就成为机票预定系统的一个参与者;

情况四,如果扩大系统边界,让呼叫中心成为机票预定系统的一个子系统,并且假设机票购买者将可以自主选择是通过人工坐席、自动语音还是登录网站预定机票,那么机票购买者是参与者,而人工坐席则变成业务工人(业务工人:非参与者,被动参与业务)。

2.业务主角

业务主角(businessactor)是参与者的一个版型,特别用于定义业务的参与者,在需求阶段使用。业务主角是与业务系统有着交互的人和事物,他们用来确定业务范围。

在初始需求阶段,请务必使用业务主角,时时牢记业务主角是客户实际业务里的参与者,没有计算机系统,没有抽象的计算机角色,业务主角必须在实际业务里能找到对应的岗位或人员。

可以通过如下问题进行验证:

业务主角的名称是否是客户的业务术语?

业务主角的职责是否在客户的岗位手册里有对应的定义?

业务主角的业务用例是否都是客户的业务术语?

客户是否对业务主角能顺利理解?

3.参与者与涉众、用户、角色之间的关系

涉众,只要和项目相关的人员都是项目的涉众。

用户,是指系统的使用者,就是系统的操作员。

角色,是参与者的职责,角色是一个抽象概念,从众多参与者的职责中抽象出相同的那一部分,将其命名而形成一个角色。

参与者是涉众的代表,它代表涉众对系统的利益要求,并向系统提出建设要求;参与者通过代理给其他用户或将自身实例化成用户来使用系统;参与者的职责可以用角色来归纳,用户被指定扮演哪个或哪些角色因此来获取参与者的职责。