<三>面向对象分析之UML核心元素之参与者
一:版型
--->在UML里有一个概念叫版型.有些书里也称类型,构造型。
--->这个概念是对一个UML元素基础定义的扩展。在同一个元素基础定义的基础上赋予特别的含义,使得这个元素适用于特定的场合。
--->例如(1)用例:的版型有:“业务用例”,“业务用例实现”
(2)类:的版型有:“接口”,“边界类”,“实体类”,“控制类”
--->除了UML已经定义的版型外,为了在某种场合下让元素表达某种特定的含义,版型也是可以自己定义的。也就是说在项目里,可以有自己项目的版型定义。例如:包元素有“子系统”,“组织结构”,“模块”等默认的版型。
--->版型只是UML的一种扩展手段,本身并不涉及太多的思想和方法,而是在建模的不同阶段,为了区分视图之间的不同观点,会采用不同的图示来表示。
二:参与者
【1】以人为本是当代流行的词汇。UML建模也是以人为本的。建模是从寻找抽象角度开始的。那么定义人,准确地说是定义参与者,就是我们寻找抽象角度的开始。
【2】基本概念
---->参与者在建模过程中是处于核心地位的。
---->UML官方文档对参与者的定义为:actor是在系统之外与系统交互的某人或某事务。
---->图3.1中的系统被一个边界包裹着。系统之外的定义说明参与者和系统之间有一个明确的边界,参与者只可能存在于边界之外,边界之内的所有人和事物都不是参与者。边界在UML图中有时会显示地绘制出来,有时则不绘制出来。但是无论是显示的还是隐式的,一谈到参与者,读者必须想到系统边界的存在,否则参与者就是可疑的。
---->如何找出参与者,第一步是弄明白系统边界。
---->如何搞明白系统边界,弄明白两个问题(1)谁对系统有着明确的目标和要求并且主动发出动作?(2)系统为谁服务的?
---->参与者也叫主角,只有主动启动了某个业务的,才是参与者。
例子:小王到银行开户,想大厅经理询问了办理手续,填写表单,交给柜台职员,拿到了银行存折。这个场景中,谁是参与者?
(1)小王是参与者
(2)大厅经理,柜台职员。虽然参与了该开户行为,但不属于主动发起者,称之为“业务工人”,而不是参与者。
【3】参与者可以非人
--->建模着也常常会面临另一个问题,有些需求并没有人参与,参与者如何确定?例如这样一个需求:每天自动统计网页访问量,生成统计报表,并发送至管理员邮箱。这个需求参与者是谁?
(1)物理学有一个熟知的概念,在没有外力的情况下,物体保持静止或匀速直线运动状态。这个概念也适用计算机系统。在没有“外力”的情况下,计算机保持等待或循环任务状态。因此必须有“东西”发出指令或动作,计算机才会做出相应的反应。
--->参与者一定是直接并且主动地向系统发出动作并获得反馈的。否则就不是参与者。
---->参与者和系统边界是共存的,相对的。随着系统边界的扩大或缩小,与之对应的参与者也在变动。
--->(1)业务主角:一个功能性需求的主动发起者。
--->(2)业务工人(不属于参与者):有些人员参与了业务,但属于被动参与业务。
--->(3)如何区分参与者和业务工人?可以通过三个问题来澄清他们的身份1他是主动向系统发出动作的吗?2他有完整的业务目标吗?3系统是为它服务的吗?
【4】参与者与与之相关方面的关系
---->参与者与涉众的关系.
(1)涉众(stakeholder),也称之为干系人。涉众是与要建设的这个系统有利益相关的一切人和事。
---->参与者与用户的关系。
(1)用户(user),是指系统的使用者,通俗点说是系统操作员。
---->参与者与角色的关系
(1)角色(role),是参与者的职责。是一类参与者的抽象。
<三>面向对象分析之UML核心元素之参与者的更多相关文章
- <十>面向对象分析之UML核心元素之关系
关系 --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构. 一,关联关系(association)
- <八>面向对象分析之UML核心元素之分析类
一:基本概念 ---->在那大数项目中,分析类是被忽视的一种非常有用的元素. ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...
- <五>面向对象分析之UML核心元素之边界
一:基本概念
- <四>面向对象分析之UML核心元素之用例
一:基本概念 --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值. --->所谓用例,就是一件事情,要完成这 ...
- <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
- <十二>面向对象分析之UML核心元素之节点和设备
节点,设备
- <七>面向对象分析之UML核心元素之包
一:基本概念
- <六>面向对象分析之UML核心元素之业务实体
一:基本概念
- <十一>面向对象分析之UML核心元素之组件
组件
随机推荐
- (二)、SSL证书
从第一部分HTTPS原理中,我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密码.在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似, ...
- How do you design object oriented projects?
what are things you do during the high level design phase (before you begin programming) to determin ...
- C# 使用TimeSpan计算两个时间差
转载:http://www.cnblogs.com/wifi/articles/2439916.html 可以加两个日期之间任何一个时间单位. private string DateDiff(Date ...
- POJ 4044 Score Sequence
题目链接 题意 :给你两个序列,进行降序排序,找出连续的公共子序列,将这个子序列输出,然后对个位数升序排序,如果个位数相同就按数的大小排,再输出这个新排好的. 思路 :先排序,再找公共子序列,最后个位 ...
- POJ 1724 ROADS(BFS+优先队列)
题目链接 题意 : 求从1城市到n城市的最短路.但是每条路有两个属性,一个是路长,一个是花费.要求在花费为K内,找到最短路. 思路 :这个题好像有很多种做法,我用了BFS+优先队列.崔老师真是千年不变 ...
- css中的:before与:after的简单使用
直接上代码,不多说了! 画三角形 1). <style type="text/css"> .triangle{ width: 0; height: 0; /*borde ...
- PKUSC 模拟赛 day2 上午总结
今天上午考得不是很好,主要还是自己太弱QAQ 开场第一题给的图和题意不符,搞了半天才知道原来是走日字形的 然后BFS即可 #include<cstdio> #include<cstr ...
- Python图片与其矩阵数据互相转换
程序 # coding=gbk from PIL import Image import numpy as np # import scipy import matplotlib.pyplot as ...
- java io流缓冲理解
bufferedinputstream和bufferedoutputstream:这两个类是在inputstream和outputstream的基础上增加了一个buffer的缓冲区,从而使数据不直接写 ...
- parent children
class parent{ protected static int count=0; public parent() { count++; } } public class child extend ...