系统分析与设计(四)

简答题

  1. 用例的概念
    提供了一个或多个成功/失败场景,该场景说明了系统是如何和最终用户或其它系统互动,用来描述参与者如何使用系统来实现其目标。

  2. 用例和场景的关系?什么是主场景或 happy path?
    用例是一个或多个场景的表示,场景则是一个参与者(Actor)向系统做出请求,系统根据参与者的请求,在不同的条件下,执行某一行为序列。而用例则包含多个场景。
    主场景则是用户最常用,直接地实现用户目标的一个场景,描述了当各项工作都正常进行时用例的工作方式,所以又被称为happy path。

  3. 用例有哪些形式?

    • 摘要 Brief (high level):简单的一段式摘要,通常是主要成功案例。用于在早期需求分析中,快速了解主题和范围。
    • 简便格式 Casual:非正式段落格式,涵盖各种场景的多个段落。
    • 完全 Fully:所有步骤和变化都写得很详细,并有支持部分,如前提条件和成功保证。
  4. 对于复杂业务,为什么编制完整用例非常难?
    因为对于复杂业务来说,用例场景比较多,场景较为复杂,很难完全地考虑到所有的子用例和场景并且在绘制图时,可能因为用例图过于繁杂而会出错。

  5. 什么是用例图?
    由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图是外部用户(参与者)所能观察到的系统功能的模型图。
    描述系统上下文,显示系统的边界,以及与系统交互的外部对象,并展示系统如何去使用它们。通常作为一个总结系统和用户行为的交流工具。

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

    • 参与者(Actor):表示系统用户,即与应用进行交互的用户
    • 用例(Use Case):表示对系统提供的功能和服务描述
    • 用例之间的关系:
      • 包含关系(include):用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。箭头由基础用例(Base)指向被包含用例(Inclusion)
      • 扩展关系(Extend):在一定条件下,把新的行为加入到已有的用例中。
      • 泛化关系(Generalization):一个父用例可以被特化形成多个子用例。
      • 关联关系(Association):参与者与用例之间的关系
  7. 用例图的画法与步骤

    1. 选择系统边界
      该系统是软件应用,硬件再加上参与者或者是整个组织?
    2. 确定主要参与者
      参与者通过使用系统服务来实现目标
    3. 确定每个主要参与者的目标
    4. 定义满足用户目标的用例;并根据这些目标来进行命名。
      用户目标级用例将与用户目标一对一,但至少有一个例外,将进行检查。
  8. 用例图给利益相关人与开发者的价值有哪些?
    对于利益相关人来说,用例图可以直观地显示整个系统的功能,服务以及用户的行为结果,能够使系统按照其需求进行开发。
    对于开发者来说,用例图能够细化用户的需求,软件的服务要求等,通过场景来理解软件的目标,使软件架构设计思路更加清晰。

建模练习题(用例模型)

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

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

    ShanBay

    Hotel

  • 然后,回答下列问题:

    1. 为什么相似系统的用例图是相似的?
      因为在相似的系统中,系统的功能和服务都是大致相同的,基础功能差不多,所以主场景往往也相似,用例图所以是相似的。

    2. 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
      根据旅客的要求,对酒店周围环境的要求来进行旅馆的推荐,以及可以通过选择旅行路线,景点路线来推荐相关的酒店。根据不同地区的旅馆的特色,如果符合用户的爱好则可以进行推荐。

    3. 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
      在用例图中,可以给创新的模块进行颜色的高亮处理,标记出与之相关的子用例,行为过程,和产生的结果,观察在用例图中的影响。

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

      ID Name IMP Est How to Demo Notes
      1 注册 6 3 用户可以通过手机号注册,或者是使用微信/支付宝注册绑定手机号 当用户使用微信注册后,需要绑定手机
      2 登陆 6 4 用户通过手机号/邮箱/微信/支付宝/昵称进行登陆 需要进行微信/支付宝支持
      3 搜索酒店 8 4 通过选择条件如地点/时间/人数/价格/星级来搜索酒店 要求结果按照用户优先选择的条件排序
      4 预定房间 10 6 预定房间要先判断对应房型是否有空
      5 支付订单 8 6 下单后,对房间进行锁定,若15分钟内未支付,则取消订单并解锁
      6 取消订单 7 5 取消订单后,对应的房间能够解锁
      7 查询订单 6 3 能够查询之前完成/取消/正在支付的订单
    5. 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算

      用例 事物 计算 原因 UC权重
      注册 1 1 通过手机号注册,或者是使用微信/支付宝注册绑定手机号 简单 5
      登陆 2 2 通过手机号/邮箱/微信/支付宝/昵称进行登陆 简单 5
      搜索旅店 11 8 通过选择条件进行搜索 复杂 15
      预定房间 9 7 判断对应房型是否有空 复杂 15
      支付订单 5 4 支付限定时间 平均 10
      取消订单 2 2 取消订单,解锁房间 简单 5
      查询订单 2 2 查询历史订单 简单 5