系统分析与设计 - Homework6

简答题

用例的概念

  • 用例是描述参与者使用系统去达到某种目的的相关的成功失败情景
  • 是文本而非图
    • 用例建模主要是写文本的行为,而非画图
  • 用例与面向对象毫不相关
  • 用例是经典OOA/D的关键需求输入
  • 功能性或者行为性的需求表现系统要做的事情。

用例和场景的关系?什么是主场景或 happy path?

场景

  • 场景是参与者与系统之间动作和会话的具体序列,也叫做用例实例(use case instance)
  • 是使用系统或者用例的一条途径的具体故事

用例和场景的关系

  • 一个用例代表了场景的集合,包含主场景和一些可选场景。
    • 主场景相当于主要的系统交互,即成功场景
    • 可选场景(alternate scenarios)相当于不怎么频繁的交互和异常

用例有哪些形式?

  • Brief(high level)
    • 一段简介,通常是主要的成功场景
    • 在早期的需求分析中,获得对于主体和范围的快速认识
  • Casual(简便格式)
    • 非正式的段落形式,使用多个段落包含多个场景
  • Fully
    • 所有的步骤和变化都详细写明,有支持的部分,比如前提和成功场景的保证

对于复杂业务,为什么编制完整用例非常难?

  • 对于复杂的业务,很难将所有的目标、故事、使用场景遵循一定的顺序列举出来。如果场景不够全面,那么用例的完整性就难以保障。
  • 此外,用例建模虽然给出了一套可操作的步骤,但是具体如何操作以及如何书写依赖于用例的书写者。因而用例本身并不能够控制自身的完整性。

什么是用例图?

  • 用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。 用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型

用例图的基本符号与元素?

  • 用例图包含一组用例

椭圆

  • 表示每个用例

矩形框

  • 表示整个系统

小人

  • 绘制在矩形框外,表示参与者

连线

  • 连接某一参与者与某一用例,表示该参与者和该用例有交互

箭头

  • 用例之间的包含关系/扩展关系/泛化关系

用例图的画法与步骤

  • 创建新的用例图
  • 绘制用例图
    • 绘制“子系统”边界
      • 重命名“子系统”
    • 绘制参与者(放在所有系统边界之外)
      • 重命名参与者
    • 绘制用例
      • 使用参与者自身能够理解的名称重命名用例,不要使用与代码有关的名称
      • 从主要的事务开始,直到后面较小的交互为止
      • 将每个用例放入支持它的系统或主要子系统(忽略只与用户有关的外观或组件)
      • 可以在系统边界外绘制用例,表明系统不支持该用例
    • 将参与者与用例相连
    • 使用“包括”、“扩展”和“泛化”关系结构化用例

用例图给利益相关人与开发者的价值有哪些?

  • 每个用例制定了系统提供给客户的有用功能单元,使得客户可以更加清晰地看到系统的用途
  • 对于软件开发者,用例细化了用户的需求,以及软件的使用方式,可以使得软件架构的设计思路更加清晰

建模练习题(用例模型)

  • 选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:

    • 请使用用户的视角,描述用户目标或系统提供的服务
      • 购买电影票
    • 粒度达到子用例级别,并用 include 和 exclude 关联它们
    • 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
    • 尽可能识别外部系统和服务

    ATOPzQ.jpg
    ATOCRg.jpg

  • 然后,回答下列问题:

    1. 为什么相似系统的用例图是相似的?

      由于买电影票的主要就是选择影片、影院、场次和座位,就能够完成电影票的购买。因而用户的需求导致了用例的共性,而相似的系统满足的用户需求是相同的。

    2. 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用

      因为用例图表现了用户在达成某种目的需要的必经之路,因而可以在图中发现这条必经之路上可以增加商机的地方。比如在选择场次和支付之前,猫眼电影和淘票票分别将爆米花饮料的优惠套餐加入界面,可以增加平台/影院的收益。

      另外用例图较为简洁地提出了用户目标(因为每个用例的划分就是对于实现每个大目标以及小目标的划分),因而已经实现的用户目标清晰可见,更方便联想用户的潜在需求。

    3. 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表

      根据去哪儿APP的酒店预订用例图:
      ATOFMj.jpg

ID Name Imp Est(man-day) How to demo Note
1 注册 10 10 点击注册按钮,输入手机号、注册密码,获取验证码,正确填写验证码显示注册成功并跳转到app首页。下次能使用相同的手机号和密码正确登录。 需要短信服务支持。
2 登录 10 10 点击登录,输入正确的手机号和密码(或验证码),看到程序首页。
3 查询酒店 50 30 选择位置、日期,输入特征关键词,选择价格区间和酒店档次,选择酒店类型后,能够返回符合检索条件的酒店列表。 位置需要GPS服务支持。特征关键词有联想和推荐。
4 预订 70 30 在酒店列表中选择酒店跳转到酒店详情显示不同房型,选择房型后跳转到付款页面,此页面可以选择保险。点击预订后,付款并生成订单,手机收到预定成功短信。
  1. 根据任务3,参考 使用用例点估算软件成本,给出项目用例点的估算
用例 #事务 #计算 原因 UC权重
1 注册 4 2 查看手机号是否被注册过,验证验证码正确性 10
2 登录 3 2 5
3 查询酒店 2 6 根据条件检索 5
4 预订酒店 5 3 10