在建模中,关于参与者准确的来说就是寻找抽象角度的开始。

参与者(actor)在建模的过程中是处于核心地位的。UML官方文档对于参与者的定义为:actor 是在系统之外与系统交互的某人或某物。如下图所示:

上图说明系统被一个边界包裹着。系统之外的定义说明在参与者与系统之间有一个明确的边界。参与者只能存在于边界之外,边界内的所有人或事物都不是参与者。
在官方文档中对参与者还有另一种叫法:“主角”,参与者可以是非人。

那么,在系统建模中,我们如何发现参与者?其实,参与者其中重要的一个来源是涉众,从涉众中找出那些直接对系统发出动作,或者直接从系统中接收反馈信息的涉众。

什么是业务主角?

业务主角是参与者的一个版型(或是说类型),特别用于定义业务的参与者,在需求阶段使用,业务主角是与业务系统交互的人或事物,它们用来确定业务范围,因为业务主角是参与者的一个版型,所以业务主角必须遵守参与者的所有定义。

业务主角的特殊性在于:它针对的是业务人员,而非计算机用户,所在查找业务主角的时候必须抛开计算机。没有计算机系统这些业务人员也客观存在,在引入计算机系统前他们的业务也一直跑得很顺畅。

业务主角是非常重要的,建立业务模型,查找业务用例都必须使用业务主角而不是普通的参与者。

什么是业务工人?

建模者经常会被一个问题困扰,有些人员参与了业务,但是身份很尴尬,它是被动参与业务的,不好说它有什么具体的目的,但是它又的确在业务中做了很多事情。那到底要不要给这种人建模呢?

参与者这个叫法不可避免的带来一些问题,会让人觉得,凡是参与了业务的或在业务流程中做了事情的,都是参与者。这是一种误解,如何换一种叫法,叫“主角”,应当就会避免这种歧义。

那么如何区分是参与者还是业务工人呢?最直接的办法是判断在边界之内还是边界之外,如何边界尚不清楚,可以通过以下三个方法判断:

1:它是主动向系统发出动作的吗?

2:它有完整的业务目标吗?

3:系统是为它服务的吗?

这三个答案是否定的,那他一定是业务工人。

转载于:https://www.cnblogs.com/youshan/archive/2012/05/15/2501285.html

我学UML建模系列之核心元素 -------- 参与者相关推荐

  1. 我学UML建模系列之核心元素 -------- 版型(类型)

    版类概念 UML中几乎每一个元模型都有一个版型.例如:用例有 "业务用例","业务用例实现"等版型,类有"接口"."边界类&quo ...

  2. 设计模式——UML建模之精选核心知识用例图、构件图、部署图、对象图的小结(一)

    文章大纲 引言 一.UML 的核心图概述 二.用例图 1.用例图概述 2.用例图的核心元素 2.1.参与者 2.2.用例 2.3.容器 2.4.用例图内的关系 三.组件图 四.部署图 五.对象图 引言 ...

  3. 一起学UML建模:面向对象基础与UML表示

    统一建模语言(Unified Modeling Language, UML)是软件业的标准语言.我们常见的软件通常都是面向对象的.复杂系统建模,需要调研需求.分析问题.设计解决方案等.在开发的每个阶段 ...

  4. startuml动态模型工具_跟我学UML建模工具StarUML(第11部分)——应用StarUML创建顺序图的创建示例...

    杨教授大学堂,版权所有,盗版必究. 1/27 页 1.1 跟我学 UML 建模工具 StarUML (第 11 部分) --应用 StarUML 创建 顺序图的创建示例 1.1.1 UML 动态建模相 ...

  5. UML建模系列文章总结

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  6. UML建模系列文章总结 (转载)

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  7. UML建模系列文章总结 [转]

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  8. 【转】UML建模系列文章总结

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  9. 步步为营UML建模系列总结

    转载自:http://www.cnblogs.com/springyangwc/archive/2012/01/16/2323723.html 软件开发为什么需要UML (软件越来越复杂),开发人员仍 ...

最新文章

  1. 来看看企业如何拥抱混合云?
  2. 使用idea编写第一个Java程序
  3. linux中挂载系统光盘,在Linux系统下挂载光盘
  4. HDU - 2586 How far away ?(LCA)
  5. nginx 上传文件漏洞_文件上传及解析漏洞
  6. 中文版php.ini
  7. Windows 7 / Windows 10 安装 IPX/SPX
  8. linux 16.04 WIFI,手动配置 WIFI无线网络 (Ubuntu 16.04)
  9. Oracle11g数据库审计功能的关闭和开启
  10. java 两个数据合并_R:两个数据帧合并
  11. Linux多线程同步之相互排斥量和条件变量
  12. 利用数据细分目标客户群
  13. 苹果支付IAP V1
  14. 基于随机游走的personalRank算法
  15. oracle remap语句格式,Oracle remap_schema需要注意的问题
  16. 深度学习项目,使用python进行表情识别,pytorch应用
  17. FRM-91500: Unable to start/complete the build.
  18. java 空格 separater_Java随手记
  19. 3D模型汇总----骨骼模型
  20. 关于项目管理的通俗讲解

热门文章

  1. WebWork深度探索之号外
  2. 教你用netstat-实践案例
  3. iptables 实现centos内网机器访问外网
  4. 【白话设计模式二】外观模式(Facade)
  5. MySQL 5.7 并行复制实现原理与调优
  6. ASP.NET 调味品:AJAX
  7. fastjson总结
  8. Java线程入门第三篇
  9. Beaker:一个基于Electron的点对点Web浏览器
  10. 面试官:请简述一下vue-cli命令行工具,你能自己手写一个吗?