参与者(Actor)

参与者(注:有另一种翻译“执行者”)
  代表位于系统之外并和系统进行交互的一类事物(人、物、其他软件子系统等)
  通过它,可以对软件系统与外界发生的交互进行分析和描述
  通过它,可以了解客户希望软件系统提供哪些功能
Actor的图形表示
  参与者是人,用“小人图”
  参与者是某个系统时用方框图,构造型 《actor》

根据下面的问题来寻找系统的参与者
  ① 谁使用系统?Who or what uses the system
  ② 谁安装系统、维护系统?Who installs the system? Who maintains the system
  ③ 谁启动系统、关闭系统?Who starts and stops the system
  ④ 谁从系统中获取信息,谁提供信息给系统?Who gets and provides information to the system
  ⑤ 在系统交互中,谁扮演了什么角色?What roles do they play in the interaction
  ⑥ 系统会与哪些其他系统相关联?What other systems interact with this system
  ⑺ 内/外部定时器 Does anything happen at a fixed time?
对每一类参与者要有简短描述
  如, 学生:需要参加培养计划规定的课程,并通过考核

例子

手机软件系统的Actor有

  用户

  网络
  SIM卡
学院管理系统的Actor有
  用户/学生/教师/系统管理员
  数据库
  如果有子系统
  其它系统可以作为一个Actor
  有时数据库可以作为一个Actor
银行ATM机的Actor有
  用户/管理员
  网络 / 数据库

用例
  系统为响应参与者引发的一个事件而执行的一系列的处理/动作,而这些处理应该为参与者产生一种有价值的结果
  这些动作
    不但应包含正常情况的各种动作序列
    而且应包含对非正常情况时软件系统的动作序列的描述,Exception / Alternate
用例图
  边界
  参与者
  用例
  关系

寻找用例

  可以根据下面的一些问题来识别用例
    ①参与者希望系统提供什么功能 Start with actors, then identify what they want to do What functions will the actor want from the system ?
    ②系统是否存储和检索信息
    ③当系统改变状态时,是否通知参与者 Are any actors notified when the system changes ?
    ④是否存在影响系统的外部事件,是哪个参与者通知系统这些外部事件 Are there external events that notify the system ?
    ⑤哪个参与者触发了活动?Which actors trigger activity ?
  每个用例都有一个名称
    短小精悍的“动名词”
    例如ATM系统,经典的用例有“取钱” “存钱”“修改密码”等

用例图中的关系
  1)参与者与用例之间
    关联关系: 用实线表示
  2)参与者/参与者之间的关系
    泛化关系:实线+空心箭头
  3)用例之间的关系
    泛化关系 例如、发出订单 - 网上发出订单
    含关系《include》
    扩展关系《extend》

用例描述UseCase description

  仅有用例图还不够,还需要详尽的文字描述!

    主事件流:一切正常时的动作序列
    异常事件或者可选事件流:主事件流的每一步都有可能出现异常,此处描述异常情况的处理

用例模型 Usecase Model
  用例模型包括
    系统边界
    参与者
    用例
    用例图
    用例描述
  用例模型是系统分析的结果、是系统设计的输入

案例

用例描述

  用例:处理销售

  Summary : 完成一笔日常销售业务的处理
  Actor List : 顾客、收银员、财务子系统、税金计算器
  Pre-Cond : 收银员必须经过确认和认证
  Description :
    1)顾客携带所购商品或服务到收银台通过POS机付款
    2)收银员开始一次新的销售交易
    3)收银员输入商品条码
    4)系统记录出售的商品,显示品名、价格、数量
    重复第3~4步,直到输入结束
    5)系统显示应付总额
    6)顾客付钱,系统处理支付
    7)系统记录完整的销售信息,打印票据
    8)顾客携带商品和票据离开,销售结束
  Exception :
    3a : 无效商品ID,收银员手工输入,或者取消该商品
    3b : 顾客要求删除某项已经输入的商品,需要经理授权,并删除商品
    6a : 顾客信用卡不足部分,需要现金支付,请经理授权,并接受现金
  …….
  PostCond :

    系统完整记录该笔销售业务的信息
    系统正确协同其他子系统,确保数据一致性

用例模型小结
  用例模型
    是软件开发人员分析客户业务流程的结果
    是面向对象分析的结果
      不一定完全是面向对象分析的结果
    是面向对象设计的输入
    是开发部门与顾客之间的合同
    是软件设计部门与软件工程师之间的合同
    是开发部门领导、非直接开发人员,了解系统的主要信息来源

2.2 UML用例模型的更多相关文章

  1. UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...

  2. UML和模式应用4:初始阶段(3)--需求制品之用例模型

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...

  3. visio UML用例里面找不到include关系

    今天用Microsoft Visio 2007画用例图时,发现visio UML用例里面找不到include关系,查到一个可行的解决办法:  1)创建一个UML用例图模板:打开Microsoft Vi ...

  4. 【转】Visio画用例模型图竟然没有include关系

    转自:http://blog.csdn.net/shuixin536/article/details/8289746 由于电脑上没有安装Rose,因此决定用visio来画UML中的用例模型图,在绘制的 ...

  5. 【Java】设计模型-五种单例模型

    一. 什么是单例模式 只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在. 单例模式有很多好处,它能够 ...

  6. UML-6.2-用例-用例模型/用例/场景关系

    参与者:具有某些行为的人或事物.如上一章中的收银员. |_主要参与者:收银员. |_协助参与者:程序(自动付费.帮收银员验证输入要素) |_幕后参与者:政府等(电子签章取证找公证机构) 用例:一组相关 ...

  7. Java学习笔记之---单例模型

    Java学习笔记之---单例模型 单例模型分为:饿汉式,懒汉式 (一)要点 1.某个类只能有一个实例 2.必须自行创建实例 3.必须自行向整个系统提供这个实例 (二)实现 1.只提供私有的构造方法 2 ...

  8. python 设计模式:单例模型

    一.单例模型简介 代码的设计模式共有25种,不同的应用场景应用不同的设计模式,从而达到简化代码.利于扩展.提高性能等目的.本文简述Python实现的单例模式场景.简而言之,单例模式的应用场景是一个类对 ...

  9. 讨论UML概念和模型UML九种图。

    文件夹: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图.在每一种视图中都包括一个或多种图. 本文我们重点解说UML每种图的细节问题: 1.用例图(use case d ...

随机推荐

  1. utf-8并不"兼容" gb2312, gb18030

    注意 utf-8 并不是 向下 兼容"gb2312 gb18030"等编码, 也并不是说, utf-8就是比 gb2312等高级的编码! 比如在terminal中, 你开始使用的 ...

  2. ZOJ 3963 Heap Partition(multiset + stl自带二分 + 贪心)题解

    题意:给你n个数字s1~sn,要你把它们组成一棵棵二叉树,对这棵二叉树来说,所有节点来自S,并且父节点si<=子节点sj,并且i<j,问你树最少几棵二叉数.树 思路:贪心.我们往multi ...

  3. 深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods)

    深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods) 2018-07-17 16:50:12 Reference:https://www.you ...

  4. eclipse创建springBoot项目

    创建Spring Boot 工程 先在eclipse中安装spring -tool -suite插件,然后根据以下步骤可以创建1.新建Spring Starter Project 2.Packagin ...

  5. c++中static的用法详解

    C 语言的 static 关键字有三种(具体来说是两种)用途: 1. 静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数. int foo(){ static int i = 1; // ...

  6. 折腾了好久的地图缩放 ngui 各种偷懒实现

    当时找到一篇cocos2dx 地图缩放的  很遗憾我用不了  也要记录一下 免得以后用ugui可以用 转 http://blog.csdn.net/cocosnode/article/details/ ...

  7. P1182 数列分段`Section II`

    传送门 思路: 求数列每段和的最大值的最小值,很明显是用二分法求解,加贪心检验.本题关键是要怎么去高效的check,可以考虑一个贪心的思路,能加的就加上,不能则新开一段,so对于二分的值 u ,我们从 ...

  8. overload、override、overwrite的介绍

    答:(1)overload(重载),即函数重载: ①在同一个类中: ②函数名字相同: ③函数参数不同(类型不同.数量不同,两者满足其一即可): ④不以返回值类型不同作为函数重载的条件. (2)over ...

  9. java常用技术名词解析

    1.1 token Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便 将此Token返回给客户端,以后客户端只需带上这个Token前来请求数 ...

  10. vue-cli3快速创建项目

    文档:https://cli.vuejs.org/zh/guide/ 条件: npm 更至最新 node >=8.9 1.全局安装 npm install -g @vue/cli 或 yarn ...