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

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. JDK动态代理连接池

    JDK动态代理   1 什么是JDK动态代理 刚刚写ItcastConnection时爽么?因为Connection中的方法太多了,每个都要写,所以很累吧.累点到是没什么,可以完成功能就是好的.但是不 ...

  2. Js数组的map,filter,reduce,every,some方法

    var arr=[1,2,3,4,5,6]; res = arr.map(function(x){return x*x}) [1, 4, 9, 16, 25, 36] res = arr.filter ...

  3. iOS base64编码 MD5 加密

    //创建一个Base64编码的NSString对象 //字符串 转二进制 NSData *nsdata = [@"iOS Developer Tips encoded in Base64&q ...

  4. Scala window下安装

    第一步:Java 设置 检测方法前文已说明,这里不再描述. 如果还为安装,可以参考我们的Java 开发环境配置. 接下来,我们可以从 Scala 官网地址 http://www.scala-lang. ...

  5. mysql设置有外键的主键自增及其他

    有外键的主键设置自增. ; ALTER TABLE `<table>` MODIFY COLUMN `id` ) NOT NULL AUTO_INCREMENT FIRST; 创建数据库, ...

  6. Linux查看硬盘使用情况

    df df - report file system disk space usage df是查看文件系统磁盘使用情况的命令.如: # df -h Filesystem Size Used Avail ...

  7. Logstash添加Protobuf解析插件

    logstash收集日志时,日志部分是由google的protobuf工具打印的,直接利用json解析会造成部分无法解析的问题 搜索后发现有个logstash的protobuf插件 在logstash ...

  8. 算法(Algorithms)第4版 练习 2.1.25

    代码实现: package com.qiusongde; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; ...

  9. Luogu P1196 [NOI2002]银河英雄传说:带权并查集

    题目链接:https://www.luogu.org/problemnew/show/P1196 题意: 有30000个战舰队列,编号1...30000. 有30000艘战舰,编号1...30000, ...

  10. Jquery 取值,赋值学习总结

    <h2>获取和设置文本框值:</h2> <input type="button" value="赋值文件框" id="v ...