定义:参与者是在系统之外与系统交互的某人或某事物。参与者在建模过程中处于核心地位。

1、系统之外:系统之外的定义说明在参与者和系统之间存在明确的边界,参与者只能存在于边界之外,边界之内的所有人和事务都不是参与者。

2、参与者可以非人:不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。没有人参与的需求一定有别的事务在发出启动操作,这个事务就是参与者,可能是另一个计算机系统、一个计时器、一个传感器等。

3、特点:参与者对系统有着明确的目标和要求并且主动发出动作;

系统是为参与者服务的。

4、边界不同,参与者会随之变化:

(1)机票购买者通过登录网站购买机票:机票购买者;

(2)机票购买者通过呼叫中心,由人工坐席操作订票系统购买机票:人工坐席是订票系统的参与者,机票购买者是呼叫中心的参与者;

(3)机票购买者通过呼叫中心的自动语音提示预定机票:呼叫中心是订票系统的参与者(参与者非人);

(4)扩大系统边界,呼叫中心只是订票系统的子系统,那么上述三种情况下,机票购买者都是参与者,人工坐席变成了业务工人。

5、业务主角:业务主角是参与者的一个版型,它针对的是业务人员而非计算机用户,用来确定业务范围,在需求阶段使用,没有计算机系统这些业务人员也客观存在。

版型:版型是对UML元素基础定义的扩展,在同一元素基础定义的基础上赋予特别的含义,是这个元素适用于特定的场合。

例如,类有“接口”、“边界类”、“实体类”和“控制类”。

业务范围与系统范围:业务范围不同于系统范围,业务范围指这个项目所涉及的所有客户业务,这些业务有没有计算机系统参与都客观存在。

系统范围是指软件将要实现的那些对应于业务功能的系统功能,从功能性需求来说系统范围是业务范围的子集。但是一些系统功能会超出业务范围,例如,操作日志。

站在业务主角的立场上看到的边界是业务范围的边界而非系统范围边界。

6、业务工人:业务工人不是参与者!

首先,业务工人处于边界内参与业务的执行;

其次,业务工人只是系统给的相应器,不会主动发起动作,以订票为例,购票人不拨打电话人工坐席是不会订票的。

UML核心元素--参与者的更多相关文章

  1. 【UML】NO.54.EBook.6.UML.2.002-【Thinking In UML 大象 第二版】- UML 核心元素

    1.0.0 Summary Tittle:[UML]NO.54.EBook.6.UML.2.002-[Thinking In UML 大象 第二版]- UML 核心元素 Style:DesignPat ...

  2. <三>面向对象分析之UML核心元素之参与者

    一:版型        --->在UML里有一个概念叫版型.有些书里也称类型,构造型.        --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...

  3. <十>面向对象分析之UML核心元素之关系

    关系        --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构.        一,关联关系(association)

  4. <八>面向对象分析之UML核心元素之分析类

    一:基本概念        ---->在那大数项目中,分析类是被忽视的一种非常有用的元素.        ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...

  5. <五>面向对象分析之UML核心元素之边界

    一:基本概念

  6. <四>面向对象分析之UML核心元素之用例

    一:基本概念        --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值.        --->所谓用例,就是一件事情,要完成这 ...

  7. UML核心元素--边界

    定义:边界是无形的,是可大可小的,同时参与者.用例和边界又有着相生相克的性质.与其说边界是UML元素,还不如说它是一种分析方法. 1.需求是动态的过程:系统边界是无形的,看不到的,不好理解,倒不如说需 ...

  8. <十二>面向对象分析之UML核心元素之节点和设备

    节点,设备

  9. <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性

    设计类

随机推荐

  1. go语言之接口二

    接口查询: 先来看如下的结构.结构体File实现了Read,Writer,Seek,Close的方法 type File struct{ } func (f *File) Read(buf []byt ...

  2. python数据分析之:数据聚合与分组运算

    在数据库中,我们可以对数据进行分类,聚合运算.例如groupby操作.在pandas中同样也有类似的功能.通过这些聚合,分组操作,我们可以很容易的对数据进行转换,清洗,运算.比如如下图,首先通过不同的 ...

  3. cocos2d-x 源代码分析 : control 源代码分析 ( 控制类组件 controlButton)

    源代码版本号来自3.1rc 转载请注明 cocos2d-x源代码分析总文件夹 http://blog.csdn.net/u011225840/article/details/31743129 1.继承 ...

  4. Tensorflow官方文档中文版——第二章(瞎奖杯写)

    包含如下几个部分: 1.面向机器学习初学者的 MNIST 初级教程 2.面向机器学习专家的 MNIST 高级教程 3.TensorFlow 使用指南 4.卷积神经网络 5.单词的向量表示(word e ...

  5. activiti--4----------------------------------流程变量

    一.流程变量的作用 1.用来传递业务参数 2.指定连线完成任务(同意或拒绝) 3.动态指定任务办理人 二.测试代码块 Person类 package com.xingshang.processVari ...

  6. Elasticsearch使用记录

    Elasticsearch使用记录 Elasticsearch的搭建方法 1.RPM方式搭建 首先去官网[https://www.elastic.co/downloads/elasticsearch# ...

  7. mysql sql语句:行转列问题

    存在表score,记录学生的考试成绩,如下图所示: 现要求以 学生姓名,语文,数学,英语 这种格式显示学生成绩,如下图所示 具体步骤如下: 1.首先,使用case when函数输出单个课程的成绩 ca ...

  8. spring AOP简单实现代码存放

    @Before:使用Before增强处理只能在目标方法执行之前织入增强,如果Before增强处理没有特殊处理,目标方法总会自动执行,如果Before处需要阻止目标方法的执行,可通过抛出一个异常来实现. ...

  9. ubuntu14.04 pygame安装 python2.7

    系统:ubuntu14.04 LTS amd64python版本:2.7.6pygame版本:1.9.1release别这种方法了,这么安装不知道什么原因就出现了问题,在使用pygame.image. ...

  10. htmlParser的使用-链接

    基于htmlparser实现网页内容解析:http://www.cnblogs.com/coding-hundredOfYears/archive/2012/12/15/2819217.html ht ...