《大象 Thinking in UML》学习笔记(三)——UML核心元素之参与者、用例

来源:互联网 发布:淘宝简介 编辑:程序博客网 时间:2024/04/28 02:02
一、版型

在UML里有一个概念叫版型(stereotype),也被称为类型、构造型。

版型是由UML里的元素扩展而来,每个元模型都有很多版型,比如用例有“业务用例”、“业务用例实现”等版型。当我们需要时候我们也可以根据UML里的元素自定义版型来辅助建模。

二、参与者

参与者(actor)是在系统之外与系统交互的某人或某事物,在建模过程中处于核心地位。
参与者和系统之间有一个明确的边界,参与者只能存在于边界之外,边界之内的所有人和事物都不是参与者。



每个用例都必须有参与者,参与者可以非人,但一定是启动业务的主角。

三、业务主角和业务工人

业务主角(business actor)是参与者的一个版型,用于定义业务的参与者。业务主角是与业务系统有着交互的人和事物,他们用来确定业务范围。

业务范围:项目所涉及的所有客户业务,有没有计算机系统参与都客观存在;
系统范围:软件将要实现对应业务的系统功能。

业务主角是针对业务范围来说的,是客观存在的,考虑业务主角时候需要抛开计算机的概念,这样才能彻底搞清楚客户的业务。

接下来这段完全就是我的亲身经历,所以贴上来以作鞭策。



业务工人(business worker)是指的系统边界内,被动参与了业务的执行过程的人。

四、参与者相关关系

涉众(stakeholder),也称为干系人,是与要建设的这个系统有利益相关的一切人和事。参与者就是涉众代表,对系统提出要求来获得他所代表的涉众的利益。

用户(user),指的是系统的使用者,是参与者的代表,一个用户可以代理多个参与者。

角色(role),指的是参与者的职责,一个角色代表了系统中的一类职责。



五、用例

用例的基本概念

用例(Use case)是一种把现实世界的需求捕获下来的方法。用例定义了一组用例实例,其中每个实例都是系统所执行的一系列操作,这些操作生成特定主角可以观测的值。

在UML里,除了用例之外,所有其他元素都是封装独立的。用例推动这些UML元素关联起来,从而实现某个功能。所以说用例是UML建模中最重要的一个元素。

一个完整的用例定义由参与者、前置条件、场景、后置条件构成。如下图所示:



一个系统的功能性是有一些对系统有愿望的参与者要做的一些事情构成的,事情完成后就达成了参与者的一个愿望,当全部参与者的所有愿望都能够通过用例来达到,那么这个系统就被确定下来了。

用例的特征

用例是相对独立的。

用例的执行结果对参与者来说是可观测和有意义的。



这件事必须由一个参与者发起。不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。



用例必然是以动宾短语形式出现的。



一个用例就是一个需求单元、分析单元、设计单元、开发单元、测试单元,甚至部署单元。



用例的粒度

用例的粒度是指的一个用例所描述事件的大小。

在业务建模阶段,用例的粒度以每个用例能够说明一件完整的事情为宜,即一个用例可以描述一项完整的业务流程。

在系统建模阶段,用例视角是针对计算机的,因此用例的粒度以一个用例能够描述操作者与计算机的一次完整交互为宜。

现实情况中,根据系统的大小选择不同用例粒度,可以更好适应其需求范围。

不论粒度如何选择,必须把握的原则是在同一个需求阶段,所有用例的粒度应该是同一个量级的。

用例的获得

用例的来源就是参与者对系统的期望。

一个明确的有效的目标才是一个用力的来源。

一个真实的目标应当完备地表达主角的期望。

一个有效的目标应当在系统边界内,由主角发动,并具有明确的后果。

六、用例相关的误区

用例和功能的误区

用例需要从使用者的观点出发来描述软件;功能是脱离使用者的愿望而客观存在的。

用例是系统性的,以开灯为例,需要描述谁在什么情况下通过什么方式开灯结果是什么;功能是孤立的,只要按下开关灯就亮。

用例可以解释为一系列完成一个特定目标的功能的组合,针对不同的应用场景,这些功能体现不同的组合方式。

目标和步骤的误区

一个用例是参与者对目标系统的一个愿望,一个完整的事件,为了完成这个事件需要经由很多步骤,但这些步骤不能够完整地反映参与者的目标,不能够作为用例。

用例粒度的误区

用例的粒度不是越小越好,太小了会使建模无比繁琐且没意义;

一个系统里用例粒度如果不一,会使系统边界不确定,从而系统结构混乱。

七、业务用例和业务用例实现

业务用例(business use case)是用例版型中的一种,专门用于需求阶段的业务建模



业务模型是针对客户业务的模型,与计算机系统建模无关,只是业务领域的一个模型。

业务用例的参与者是业务主角,如果说用例是用来获取功能性需求,那么业务用例用来获取功能性业务。

业务用例实现(business use case realization)是用例版型中的一种,专门用于需求阶段的业务建模。



业务用例实现是业务用例的一种实现方式,表达了同一项业务的不同实现方式。

业务用例和业务用例实现的关系举例如图







阅读全文
0 0