用例建模

文章目录

用例建模 Use case modeling


一,什么是用例 What’s use case?

Use case is a collection of related success and failure scenarios that describe an actor using a system to support a goal.

用例是相关的场景(不管是成功还是失败的)的集合,用来描述一个希望使用这个系统来达成某个目的的参与者。

注意:用例不是流程图(diagram),而是一种文本(text),用例建模是一个撰写文本的过程,一种技巧
And there is nothing object-oriented! 没有任何面向对象的思想在里面

二,用例和场景 Use case and scenario

1,什么是场景 What’s scenario?

Scenario is a specific sequence of actions and interactions(会话) between actors and the system; it is also called a use case instance.

所谓场景,就是参与者和系统的交互过程,由若干行为和会话组成的特定序列构成,也被称为用例的实例。

2,用例和场景的关系 Relationship between use case and scenario

用例事实上就是一系列场景的集合(a collection of scenarios),例如:主场景(primary scenario,也称为基本流),正零路径(plus zero,基本流加上零)或者是其他备选流(alternate scenario,基本流加上其他的信息流)

主场景 Primary scenario or happy path

The primary scenario corresponds to the main system interactions, usually the ‘success’ scenario.

主场景就是最常用的一个业务场景,反映的是用户最为基本的目的,简单的说就是这个系统所实现的基本业务

三,用例的形式 Forms of a use case

  • Brief(high level):一段总结,通常是主要的成功场景的建立,只需要几分钟的时间
  • Casual(简便格式):不是很正式的形式,并且包括了不同的场景
  • Fully:完整的场景建立,完整的步骤以及用例的细节,以及一些可能发生的情况的应对以及如何确保一个成功的场景

四,对于复杂业务编制完整用例的困难 Difficulties of writing a complete use case for a complex business

对于复杂的业务来说,参与者(actor)的相对较多,系统交互也会非常复杂,需要考虑的备选流(alternate scenarios)也非常复杂,这将会是一个非常庞大,场景(scenario)众多的用例,因此对于这样的业务,我们要编制一个完整的用例是非常困难的,因为我们很难做到完整的覆盖所有可能的场景

五,什么是用例图 What’s use case diagram?

用例图(use case diagram)就是所有的参与者(actor)加上一个系统(system),其中系统内定义了和参与者进行交互的一系列接口,即一系列的用例实例(例如一个登陆行为),定义了系统和用户交互的行为,例如,下图就是一个求职系统的用例图,包括还包括了 一个个人履历管理的子系统:

六,用例图的基本符号与元素 Basic symbols and elements of a use case diagram

一个用例图(use case diagram)包含的主要元素:

  • system under design (SuD) 系统设计
  • goal 目标
  • actor 参与者
  • primary scenario 主场景
  • alternate scenario 备选场景
system under design(SuD)系统设计

可以参考上面给出的银行内部系统的用例图,其中,我们一般用图中那样的一个方框表示一个系统,里面定义了一系列的用户接口

Actor 参与者

任何参与系统交互的角色都是这个用例的参与者(actor),在用例图中一般用这样的一个符号表示:
在这里插入图片描述

goal 目标

事实上就是用户使用这个系统的目的,也可以说是主场景的主要内容,例如在一个电话系统中,我们的目标就是:和被呼叫方进行通话。

primary scenario 主场景

主场景就是用户顺利使用系统实现目标的完整过程(success scenarios,是一系列成功场景),同样我们考虑一个电话系统,那么主场景应该是类似这样的:

 拨号,系统建立连接,回呼叫音
 系统连接完成,取消呼叫音
 与被叫方通话
 挂机,系统拆线

alternate scenario 备用场景

还是一个电话系统,根据生活常识我们都知道,打电话不是每次都会打通,比如说:占线,对方正在通话,系统忙等,这些就属于这个电话系统用例模型的备用场景,可以看成是主场景这一条path中的支线(alternate path),一个分支情况。

不管是主场景还是备用场景都是一个用例的实例,我们一般用一个椭圆,附上用例名称表示:
在这里插入图片描述

七,用例图的画法与步骤

首先是用例之间的关系:

我们以上面的求职系统的用例图为例:

关联 Association

关联就是参与者(actor)和用例的信息流动,我们可以把用例和和参与者连接起来,表示一个关联,你也可以添加箭头表示信息的流动方向:

泛化 Inheritance

泛化一般用于一个功能有多个子功能,或者更加具体的功能的时候,例如:用户,在用户之下可能还有VIP用户和SVIP用户,或者是管理用户,这时,我们用到的就是泛化,由子功能指向父功能。这可以是参与者和参与者之间,也可以是用例和用例之间。

包含 Include

我们通常会把一个复杂的用例功能分解成及部分,这样这若干个部分和这个用例之间的关系就是包含关系,用一个箭头从用例指向着一些部分:

扩展 Extend

如果一个用例的使用依赖于另外一个用例,以另外的一个功能为前提的话,这时就会用到扩展,我们用一个从子用例指向父用例的箭头,然后在上面注上<extend>。例如“浏览企业招聘职位”,在进行这个行为之前,需要先完成“注册个人会员”的操作,而这个操作需要在“登陆”状态下进行:

通常父用例是抽象的,但是在这里,这三个都是用户可以执行的操作,所以“注册个人会员”和“登陆”都是一个具体的用例。

通过用例之间的关系,参与者和用例以及参与者和参与者之间的关系,我们可以通过系统设计好用例,按照关系进行用例图的绘制

八, 用例图给利益相关人与开发者的价值 Values of use case diagrams for those being beneficial and developer

用例图对于利益相关者来说,他们可以非常直观的了解到自己所要实现的功能是否被很好的体现,开发者是否理解了自己的需求;而对于开发者来说,这不仅是向客户传递自己对需求的理解,也是方便开发者进行系统设计和开发

九,建模例子 —— 订旅馆 Use case modeling - Reservation for hotel

Hotel Reservation Online system use case diagram
在这里插入图片描述
另外一个比较类似的是电影票网上购票系统:
在这里插入图片描述

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

相似系统的用例图一般是相似的,这是因为它们的业务逻辑是相似的,那么用户和系统的交互方式,用例也是相似的,那么用例图自然也是相似的。

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

结合不同时代的业务模式,例如最为简单的:支付模式,在过去可能只能支持银联的闪付,但是现在越来越多的支付方式出现,一个支付模式上的改变就可能是一个创新。此外,思考不同地区产品的侧重点,因为每个地区有其共性,但也必然有其特殊性,如果能够参考共性,把握好地区的特殊性,就能够在业务上实现创新

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

我们知道相似的业务会有一个相似的用例图,那么一个创新的思路,比如说一个新的业务模式,应该会产生一个与众不同的用例图,通过比较传统业务的用例图,我们可以发现,新的思路是如何对主场景(primary scenario)或者是备用场景(alternate scenario)产生作用的,哪些业务逻辑发生了变化,那些相关的用例发生了改变。这样我们就可以定位创新思路在系统中的作用。

3,使用 SCRUM 方法,编制一个定旅馆开发的需求(backlog)开发计划表
IDTitleEstIterImp
10010find hotel215
10011find city235
10031find on map1023
10046GIS API learning513
10053make order315
4,参考 使用用例点估算软件成本的项目用例点的估算


因为我们只有一个用户(旅馆系统用户),所以我们让参与者权重(Actor Weight)为0。也就是说,这里我们用例点的

IDTitleEstCalReasonUC weight
10010find hotel22simple
10011find city22simple
10031find on map107frameworkaverage
10046GIS API learning54simple
10053make order33simple
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值