系统分析与设计作业四

1、简答题

用例的概念

用例,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。 每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。

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

  • 场景是参与者与系统之间的一系列特定活动和会话,也称为用例实例,它是使用某一系统的特定故事,或者用例的某条路径;用例是场景的集合,包括主场景以及零个或多个可选场景。
  • 主场景指最常用的系统会话,直接地实现用户目标的故事,通常是成功的场景。

用例有哪些形式?

  • Brief:使用一个简短的段落概括用例,通常只概括主场景的内容。
  • Casual:使用非正式的段落格式,通常使用几个段落来描述多个不同的场景。
  • Fully:所有的步骤和视图,以及系统中可能出现的所有变化都被详细记录,同时附有额外的章节来说明前提条件、成功保证等内容。

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

因为对于复杂业务,涉及的参与者和场景很多,可能出现的变化也很多,编制用例只能覆盖有限的部分场景,对于各种不同的变化情况很难完全覆盖,所以很难编制出完整的用例。

什么是用例图?

用例图(use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。用例图也经常和其他图表配合使用。

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

  • 参与者:系统的主要参与者,指与系统交互的角色。可以是人、计算机系统、组织等。用以下符号表示:

actor

  • 用例:用例是描述参与者为了某个目的使用系统的一系列相关成功和失败场景的集合。使用如下符号表示:

usecase

  • 系统边界:系统边界是用于表示正在建模的系统的边界。用如下符号表示:

system

  • 关系:表示参与者与系统之间的交互或者用例之间的关联关系,用如下符号表示:

relation

用例图的画法与步骤

  • 确定研讨的系统
    • 使用用例图 System框 表示一个待研究的系统
    • 正确命名系统或子系统,例如 Reserve Hotel。
    • 千万不要将研究的系统的名称起的太泛,如“网上商店”。正确的姿势是“网上书店”,以避免业务空泛问题
  • 识别Actor:
    • 识别使用系统的主要参与者(primary actors)/角色(roles)
    • 识别系统依赖的外部系统
  • 识别用例(服务)
    • 识别用户级别用例(user goal level)
      • 以主要参与者目标驱动
      • 收集主要参与者的业务事件
      • 必须满足以下准则:boss tese, EBP test, Size Test
      • manage 用例。特指管理一些事物的 CRUD 操作,例如管理文件、管理用户等
    • 识别子功能级别的用例(sub function level)
      • 子用例特征
      • 正确使用用例与子用例之间的关系
  • 建立 Actor 和 Use Cases 之间的关联
    • 请使用 无方向连线,表示两间之间是双向交互的协议

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

  • 使用用例图使利益相关人能更形象准确地传达对需求的认识,清晰地表达其想法
  • 开发者可以通过用例图清楚了解到客户的需求,为开发过程提供更清晰的思路,提高双方沟通的效率

2、建模练习题(用例模型)

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

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

猫眼APP

CatEye

淘票票APP

TaoTicket

然后,回答下列问题:

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

因为相似系统的功能、用户都是很类似的,从而确定的系统边界、参与者和用例场景都是很类似的,进而导致用例图很相似。

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

对比Asg_RH用例图,在现在这个时代,订旅馆时可以考虑的因素更多了,除了距离、价格等因素外,可以把外观、舒适度、用户评价、周边便利条件等作为排序功能的指标加入到子用例中,为用户提供更多的考量标准,提高客户满意度。在支付手段上,随着移动支付的普及,当代的旅馆预定业务应支持现金、银行卡、微信支付宝等多种方式,为用户提供更多的便利性,提高软件竞争力。

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

因为用例图表现了用户在达成某种目的需要的必经之路,因而可以在图中发现这条必经之路上可以增加商机的地方。比如在选择场次和支付之前,猫眼APP和淘票票分别将小吃和饮料的优惠套餐加入界面,简介增加影院的收入渠道,提高软件竞争力。

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

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

Hotel

以上述用例图为例,编制backlog如下:

Id Name Imp Est How to Demo Notes
1 login 5 3 login with Id number and phone number verified by face recognition
2 find hotel 10 8 can be found by map or sort by distance geo API
3 make reservation 10 6 choose hotel and than select a room send e-mails to comfirm
4 pay 8 3 pay by card or other methods stmp API to send informing e-mail
5 manage basket 3 8 allow the travelers to collect hotels interested in

5.根据任务4,参考使用用例点估算软件成本,给出项目用例点的估算

用例 #业务 #计算 原因 UC权重
login 2 5 face recognition 5
find hotel 5 4 framework 10
make reservation 4 6 10
pay 3 4 invoke API 5
manage basket 1 8 5