用例建模 - 绘制用例图

简答题

  1. 用例的概念

    用例是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。

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

    系统根据参与者的请求,在不同的条件下,执行某一行为序列。每一个行为序列可称为一个场景。一个用例包含多个场景,场景也可以称为用例的一个实例。

    主场景(happy path)描述了满足涉众关注点的典型成功路径。它是典型的、无条件的、理想方式的主成功场景。主场景是用户和系统之间的主要交互,是最常用的实现用户目标的场景。

  3. 用例有哪些形式?

    • 摘要:简洁的一段式摘要,通常用于主成功场景。

    • 非正式:非正式的段落格式,用几个段落覆盖不同场景。

    • 详述:详细编写所有步骤与各种变化,同时具有补充部分,如前置条件和成功保证。

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

    对于复杂业务,其涉及的场景数量会变得很多,而各场景之间的关联使得用例设计变得特别困难。因为用例是各个成功与失败场景的集合,用例的编写需要对这些场景熟悉,并且需要建模知识与注意用户交互的相关细节,但仍无法完整地覆盖实际中可能出现的情况。用例总是不完整的,所以编制完整用例非常难。

  5. 什么是用例图?

    用例图是一种优秀的系统语境图,它能够展示系统边界,位于边界之外的事物以及系统如何被使用。它可以作为沟通的工具,用以概括系统以及其参与者的行为。

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

    • 参与者(Actor):表示的是一个系统用户,即与应用程序进行交互的用户、组织或外部系统。用一个小人表示。

    • 用例(Use Case):表示的是对系统提供的功能、服务的一种描述,用椭圆表示。

    • 用例之间的关系:

      • 包含关系(表示可以简单地包含其他用例所具有的行为,并把它所包含的用例行为作为自身行为的一部分。UML中常用带箭头的虚线表示,箭头指向被包含的用例)
      • 泛化关系(指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。UML中用空心三角箭头的实线表示,箭头指向父用例)
      • 关联关系(表示的是参与者与用例之间的关系。在UML中常用一条直线,或者是一条带箭头的线条来表示,箭头指向信息接收方)
      • 扩展/延伸关系(表示在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例,原有的用例叫做基础用例,相当于为基础用例提供一个附加功能。在UML中用带箭头的虚线表示,箭头指向基础用例)
  7. 用例图的画法与步骤

    定义Subject:Subject是我们正在设计的业务、软件系统、子系统、组件、设备等。定义它是什么类型的系统,它的范围或边界。

    定义Actors:Actor是Subject需要服务的用户,它是一个外部实体,可以是设计系统的人类用户,也可以是其他系统或设备。

    定义Use Cases:当我们定义正在设计或分析的系统的边界或系统的外部用户时,我们需要定义这些用户能从系统中需要什么。每个用例都指定了主题为actor提供的完整且有用的功能单元。用例应反映用户的需求和目标,并应由Actors发起。

    描述用例行为:可用自然语言文本来描述,或使用UML行为图来表示特定行为。

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

    对于利益相关人:可以直观看到系统的结果和用户的功能体验,保证系统按照用户的需求进行设计;用例能够根据需要对复杂程度和形式化程序进行增减调节,即能够响应用户(利益相关人)提出的需求,而用例图使得这种调节更加便利,可通过修改图形间的关系实现。

    对于开发者:用例图是设计者设计过程的结论和参考,设计者与开发者之间的交流工具,开发者开发过程的蓝图;用例图使得开发者能够更明确地获得需求,更好地理解需求;用例图可以指导开发和测试,同时可以在整个过程中对其他工作流起到指导作用。

建模练习题

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

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

美团外卖:

扇贝单词:

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

    因为相似系统的用户人群大致相同,需求大致相同,所以参与者和用例,以及参与者和用例之间的关系都会很相似。

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

    并非定旅馆业务。但都是同样的迭代过程,综合不同时代、不同地区的产品来挖掘自己的创新业务,力求突出。

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

    通过在用例图中使用与其他用例不同的颜色进行标记的方法,能够快速定位到该用例图中的创新点。

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

ID Name Imp Est How to demo Notes
1 查询酒店 50 5 根据酒店名称、位置等信息进行查询 引入外部GPS API
2 筛选酒店 30 2 可根据详细信息进行筛选
3 预订酒店 60 3 选择房间、入住时间进行预订
4 管理订单 30 8 可以更改或取消订单
5 订单支付 60 8 可通过外部api进行支付 引入外部支付API
  1. 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算
用例 # 事务 # 计算 原因 UC 权重
查询酒店 3 3 查询方式多种 简单
筛选酒店 6 5 及时更新酒店各项信息 平均
预订酒店 3 2 录入信息创建订单 简单
管理订单 5 3 修改、取消 简单
订单支付 1 1 调用外部api 简单