# 软件系统分析与设计第 4 次作业

# 简答题

  1. 用例的概念

    • 用例为参与者使用系统完成目标的成功或失败场景的描述集合
    • 用例使用文本而非图进行描述
    • 用例并非是面向对象的
  2. 用例和场景的关系?什么是主场景或 happy path?

    • 场景是参与者与系统的行为与会话的特定序列。

    • 用例代表了一系列的场景,包含主场景与可选场景。

    • 主场景对应于主要的系统交互,通常用于成功场景

    • happy path 是不存在异常或错误条件的场景

  3. 用例有哪些形式?

    用例的形式有:

    1. Brief:以简短的段落式总结形式,通常用于主要的成功场景,在初期的需求分析中快速获得主体与范围大小的认识
    2. Casual: 非正式的段落形式,使用多个段落覆盖多重的场景
    3. Fully:对所有的步骤与变化进行详细的编写,通过前提和成功保障等来进行支撑。
  4. 对于复杂业务,为什么编制完整用例非常难?

    复杂业务中需求庞大,参与者众多,可选场景复杂,用例所能完整覆盖所有的可能场景的难度大。

  5. 什么是用例图?

    用例图是一种表示系统上下文的图,其可以展示系统的边界,确定系统边界外的事物以及系统如何使用,可被用于作为一种总结系统与参与者行为的交流工具。

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

    基本元素如下:

    1. 参与者(Actor)
    2. 用例(Use Case)
    3. 系统(System)
    4. 关系(Relation):
      • 关联:参与者与用例的关系
      • 泛化:参与者之间或用例之间的关系
      • 包含:将较复杂用例分解为较小的步骤,箭头指向分解的功能用例
      • 扩展:为用例提供附加功能,箭头指向原用例
  7. 用例图的画法与步骤

    1. 确定系统边界,将系统框放在中间,系统名位于上方中间
    2. 确定参与者,包括主参与者、协作参与者和幕后参与者,确定参与者之间的关系
    3. 根据需求识别和创作用例
    4. 确定用例间的关系
    5. 确定用例与参与者的关系
    6. 确定其他的支持系统,位于系统框右侧
  8. 用例图给利益相关人与开发者的价值有哪些?

    利益相关人:

    • 可直观地看到系统结果和用户的功能体验,确定系统设计遵守用户需求
    • 可便于响应用户提出的需求调节

    开发者:

    • 用例图可作为设计者与开发者间的交流工具
    • 可便于理解需求内容
    • 可指导开发与测试

# 建模练习题(用例模型)

  • 选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
    • 请使用用户的视角,描述用户目标或系统提供的服务
    • 粒度达到子用例级别,并用 include 和 exclude 关联它们
    • 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
    • 尽可能识别外部系统和服务

定电影票:

2

下厨房:

3

  • 然后,回答下列问题:

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

      相似系统的业务范围与服务对象类似,因此需求较为接近,从而产生相似的用例图

    2. 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术

      • 使用更加适合时代与地区的排序、评价方法
    3. 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用

      对具有创新思路的用例进行颜色标记,若创新点在主用例上则作用较大。

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

    ID Title Est Imp How to Demo
    1 旅馆查找 5 80 根据名字、位置、评价等信息搜索相关酒店信息
    2 旅馆选择 6 70 提供酒店房间、价格、客流量等信息供用户选择
    3 旅馆预定 8 90 根据用户提供的个人信息进行身份验证后进行预定,并收取相关的费用
    4 订单管理 3 60 允许用户对订单进行修改,如取消预定、延长入住时间等
    5 账户管理 2 50 允许用户修改账户信息如邮箱、手机、昵称等
    1. 根据任务4,参考 使用用例点估算软件成本 (opens new window),给出项目用例点的估算
    用例 事务 计算 原因 UC
    旅馆查找 5 5 根据条件进行查找与排序 平均
    旅馆选择 7 6 提供有时效性的旅馆各类信息 平均
    旅馆预定 3 4 根据获取的确定信息创建预定订单 简单
    订单管理 2 3 根据用户给出的信息进行修改 简单
    账户管理 3 2 对账户信息进行更新 简单