[系统分析] 第六周作业

简答题

  1. 用例的概念
    用例是一系列相关的成功和失败场景的集合,这些场景描述了一个参与者使用一个系统来支持一个目标。用例是功能或行为需求,指示系统将做什么。就FURPS+需求类型而言,它们强调“F”,但也可以用于其他类型。

  2. 用例和场景的关系?什么是主场景或 happy path?
    用例表示一组场景:主场景,加上零个或多个可选场景。

    主场景对应于主要的系统交互,通常是“成功”场景。是最常用的,直接地实现用户目标的故事。

  3. 用例有哪些形式?

  • 简洁模式(Brief (high level))
    简短的一段概要,通常是成功的主场景。
    在早期的需求分析中,快速了解主题和范围。可能只需要几分钟来创建。
  • 简便格式(Casual)
    非正式的段落格式。包含多种场景的多个段落。
  • 详细描述(Fully)
    所有的步骤和变化都写得很详细,并有补充部分,如先决条件和成功的保证。
    在以一种简短的格式确定并编写了许多用例之后,在第一个需求研讨会期间,会详细地编写一些(例如10%)具有体系结构重要性和高价值的用例。
  1. 对于复杂业务,为什么编制完整用例非常难?
    复杂业务的需求多,导致扩展部分较多,即除了主成功场景外的其他场景或分支,包括成功和失败路径。用例的格式导致编制复杂业务的完整用例非常难,因为这需要花费大量的时间编写,而且这些用例没有增加或增加很少的价值,并会导致大量的返工。
  2. 什么是用例图?
    用例图是系统上下文的绝佳图景,它能显示用例和参与者的名称及其关系,给出了一个很好的系统及其环境的上下文图。

    a.它是一个很好的上下文图
    b.显示系统的边界,它外面的东西,以及如何使用它。
    c.它作为一种沟通工具,总结了系统及其参与者的行为。
  3. 用例图的基本符号与元素?
  • 参与者Actor
    在这里插入图片描述
    表示一个系统的用户,即与应用程序或系统进行交互的用户、组织或者外部系统。参与者用一个小人表示。

    参与者包括三类:系统用户;其他系统。在当前项目范围之外,需要建立与其他系统的接口;一些可以运行的进程
  • 用例Use Case
    外部可见的系统功能,表示对系统提供功能、服务的描述。用例用一个椭圆表示。
    在这里插入图片描述
  • 用例之间的关系:
    关联Association表示参与者与用例之间的关系。关联关系用一条直线表示,由参与者指向用例。
    在这里插入图片描述
    泛化Inheritance,可以理解为继承关系,父用例可以特化为若干个子用例。子用例与父用例相似,但表现更为特别的行为。子用例继承父用例的所有结构、行为以及用例关系。父用例与子用例之间的关系极为泛化关系。泛化关系用带箭头的直线表示,箭头指向父用例。
    在这里插入图片描述
    包含Include,较复杂的用例可以被分解为较小的用例,即该用例可以包含其他用例所具有的行为。包含关系使用带箭头的虚线表示,箭头指向被包含的用例。
    在这里插入图片描述
    扩展Extend表示用例功能的延伸。把新的行为加入到基础的用例上,使得基础用例能够获得新的行为并能够提供新的附加功能。扩展关系使用带箭头的虚线表示,箭头指向基础用例。
    在这里插入图片描述
  • 系统边界system scope
    确定系统的范围,边界是一个方框,用例在边界内,参与者在边界外
    在这里插入图片描述
  • Neighboursystem框
    表示用例依赖的外部系统、服务、设备
    在这里插入图片描述
  1. 用例图的画法与步骤

a. 确定研讨的系统

  • 使用用例图 System框 表示一个待研究的系统
  • 正确命名系统或子系统,例如 Reserve Hotel。
  • 千万不要将研究的系统的名称起的太泛,如“网上商店”。正确的姿势是“网上书店”,以避免业务空泛问题

b.识别 Actors

  • 识别使用系统的主要参与者(primary actors)/角色(roles)

1 使用用例图 actor符号 表示,通常放在系统的左边
2 企业应用可以通过企业组织架构,业务角色与职责识别
3 互联网应用则必须通过市场分析,确定受众范围
4 千万不要用“用户”代表系统使用者,以避免过于通用导致缺乏用户体验。例如,你的系统服务对象是程序员,但你必须明白 c/c++ 程序员、java 程序员、 PHP 程序员之间的相同与不同

  • 识别系统依赖的外部系统

使用用例图 Neighboursystem框 表示用例依赖的外部系统、服务、设备,并使用构造型(Stereotype)识别

  • << system >> 例如:Account System(财务系统),教务系统
  • << service >> 例如:第三方身份认证、地理信息服务、短信服务等第三方在线服务
  • << device >> 或 << sensor >> 例如:GPS 等等
    要将一些专业功能赋予专业系统。对于 Reserve Hotel 系统,除了订单配送、支付、销售账单由其他专业系统完成外,房源管理都应由独立系统完成,以确保系统的简洁与专业。大而全的软件是软件失败的主要因素之一

要将一些专业功能赋予专业系统。对于 Reserve Hotel 系统,除了订单配送、支付、销售账单由其他专业系统完成外,房源管理都应由独立系统完成,以确保系统的简洁与专业。大而全的软件是软件失败的主要因素之一

c.识别用例(服务)

识别用户级别用例(user goal level)

  • 以主要参与者目标驱动
  • 收集主要参与者的业务事件
  • 必须满足以下准则
    boss test
    EBP test
    Size Test
  • manage 用例。特指管理一些事物的 CRUD 操作,例如管理文件、管理用户等

识别子功能级别的用例(sub function level)

  • 子用例特征
    业务复用。例如:现金支付
    复杂业务分解。将业务分解为若干步,便于交互设计与迭代实现
    强调技术或业务创新。例如:“识别人脸”,尽管从用户角度是单步操作,但背后涉及技术解决方案是比较复杂的
  • 正确使用用例与子用例之间的关系
    << include>> 表示子用例是父用例的一部分,通常强调离开这个特性,父用例无法达成目标或失去意义!
    << extend>> 表示子用例是父用例的可选场景或技术特征。
    << include>> 箭头指向子用例;<< extend>> 箭头指向父用例。箭头表示的依赖关系!

d. 建立 Actor 和 Use Cases 之间的关联

  • 请使用 无方向连线,表示两间之间是双向交互的协议

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

利益相关人:

  • 用例图可以直观看清系统的结果以及用户的功能体验,提供了系统使用和行为的摘要视图,保证系统能够按照用户的需求进行设计,并且便于与利益相关人进行沟通,及时对系统功能进一步完善。

  • 用例图能够根据业务场景的复杂程度和形式化程序进行增减调节,能够相应利益相关人提出的需求。通过用例图进行系统功能的增减以及修改更加便利。

  • 用例图使得系统能够注重其参与者的用户体验。

开发者:

  • 用例图能够为开发者提供参考,使得设计的过程更加清晰明确。同时用例图也是系统的蓝图,是开发过程的蓝图。

  • 用例图能够更明确客户的需求,使得开发者能够更好理解客户需求,相应客户的需求。

  • 用例图能够明确系统的范围以及其提供功能的情况、与外部系统之间的关系,便于开发者进行系统的实现。

  • 用例图便于评估其项目工作量,能够知道设计、开发以及测试,便于管理者明确其项目开发的迭代周期,能够在软件开发过程中起到很好的规划作用。


建模练习题(用例模型)

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

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

在这里插入图片描述

红宝书词汇app

在这里插入图片描述

然后,回答下列问题:

  1. 为什么相似系统的用例图是相似的?
    因为相似的系统,其目标人群和提供的功能时相似的,也就是说 actor 和 scenery 类似,所以 use case 也类似,最终的用例图也是类似的。
  2. 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
    可以对当前流行产品和目标用户进行调研,然后结合旧用例图,进行符合产品市场的改进,如在 ASG_RH 付款时需要 check out,但我们现在电子支付十分方便,可以更改为链接电子支付。
  3. 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
    在项目早期,通过对比当前用例图和其它类似产品的用例图,提炼类似产品的先进业务,技术和商业模式,改进当前用例图,对于别人产品用例图中不足的地方,如缺少的业务和落后的技术,进行创新。同时,从用户的角度进行考虑,发掘用户需求。
  4. 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
IDNameImpEstHow to demoNotes
1注册103输入手机号和密码,点击获取短信验证码按钮并正确填写收到的验证码,注册成功需要短信服务
2登录103输入正确的手机号和密码,可以登录程序
3查询酒店5014选择位置,日期,酒店特征和价格区间,返回符合条件的酒店需要GPS服务支持
4预定酒店7014选择酒店列表中的酒店,跳转到相应酒店页,选择入住日期和退房日期以及房型后生成订单,跳转到订单管理页
5订单管理407显示订单的详情,包括酒店名,入住和退房日期以及房型,同时可以选择酒店的其他服务(餐饮,保险和酒店设施服务),确认完毕跳转到付款页
6支付405选择付款方式(微信支付,支付宝支付或银行卡)并完成支付后,发送短信到手机提示付款成功需要短信服务
  1. 根据任务4,参考使用用例点估算软件成本,给出项目用例点的估算
用例#事务#计算原因UC权重
1注册32短信服务框架5
2登录225
3查询酒店43GPS API10
4 预定酒店335
5订单管理225
6 支付21短信服务框架5
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值