用例建模
用例模型(Use Case Model)是帮助进行需求分析的核心技术,建立用例模型能够使需求得到系统化、结构化的展示,同时在此基础上您还可以快速分析产品可创新性,制订创新用例。
接下来,通过引入一个预定酒店的实例,让您能对用例建模快速入门。预定酒店是互联网常见业务,您会看到两个处于不同时间点的预定酒店系统,通过对比这两个用例模型,您还可以了解到项目早期发现创新点的思路方法。
早期预定旅馆业务:Asg_RH
有关Asg_RH
的相关文档您可以访问这里。
如下是一个早期的旅馆预定业务用例图,在这个用例图中,有Actor Client
,也就是客户;有一个系统Reserve Hotel
和一个外部系统Credit Card Services
;有8个用例。

现代旅馆预定业务:Airbnb
严格来说,Airbnb
并不是预定酒店,而是预定民宿或度假屋,这里选用Airbnb
作为例子有两点考虑:(1)Airbnb
包含了所有预定酒店的业务过程;(2)Airbnb
的业务流程相对复杂,能够更好地展示用例建模的特性。
如下是一个Airbnb
系统的用例图,在这个用例图中,标红的是与Asg_RH
相比新增的用例或外部系统。

对比分析
两个用例模型分别处于不同的时间和地区。Asg_RH
比较早期,主要面向澳大利亚用户,对澳大利亚的地区支持比较完整,业务功能相对比较简单;Airbnb
则是一款现代全球住宿预定的解决方案,除了主体业务之外还包含了许多扩展性业务,致力于打造旅游住宿的超级APP。
在项目早期,您会发现,整个项目的功能需求一定是模糊的、不完整的,在这种情况下,要想进行创新更为困难。使用用例模型的技术,在不断迭代的过程中,可以基本正确地确定主要的业务,并且能够发现一些创新点——根据项目的总体目标,尽可能地在用例图中添加一些用例,例如Airbnb
就有”添加民宿到愿望单”和”编写旅行攻略心得”两个创新用例,这与其产品最终定位密切相关。
Backlog
Backlog是敏捷开发中的技术,您可以将Backlog与用例模型相结合使用,Backlog可以视为一个袖珍的用例集合,并且附带了对工作量和重要性的估计,既可以作为用例编制的基础框架,也可以指导进度和人员的管理。
如下是Airbnb
的一个Backlog,您可以从中体会其在敏捷开发中的作用。
ID | Name | Imp | Est | How to demo | Notes |
---|---|---|---|---|---|
1 | 获取特定的旅馆表 | 100 | 10 | 打开页面,填写旅馆搜索条件,获得符合条件的旅馆列表。 | 搜索条件包括时间、地区等。 |
2 | 选择旅馆 | 100 | 10 | 在旅馆列表中点击旅馆,浏览旅馆信息,填写必要信息,确认。 | 旅馆信息和填写的信息见8和9。 |
3 | 提交预定请求 | 100 | 10 | 选择完旅馆后,浏览预定订单全貌以及房屋主联系方式,提交。 | 无。 |
4 | 添加旅馆到愿望单 | 50 | 5 | 选择一个旅馆,点击添加至愿望单按钮,检查愿望单页面中增加了一个新旅馆。 | 无。 |
5 | 使用信用卡支付预定订单 | 100 | 8 | 选择信用卡类别,填写信用卡信息,提交交易请求。 | 无。 |
6 | 获取推荐的旅馆表 | 50 | 15 | 登陆后,在主页上看到由系统推荐的旅馆列表。 | 推荐算法有多种选择,工作量较大,可放到后期进行。 |
7 | 排序旅馆表 | 80 | 10 | 选择排序和过滤方式,列表自动排序。 | 排序可按照地点、价格、被预定次数等等。 |
8 | 获得旅馆的详细信息 | 100 | 5 | 选择旅馆后,展示旅馆的完整信息,包括地址、价格、房间结构、有无空调等等。 | 旅馆的信息需要仔细斟酌。 |
9 | 选择预定日期 | 100 | 5 | 选择旅馆后,填写预定的起止日期,确认。 | 无。 |
10 | 联络房屋主 | 90 | 10 | 点击房屋主,到达房屋主个人信息页,浏览联系方式,或发送站内信。 | 无。 |
11 | 发布旅行心得 | 50 | 10 | 点击创建旅行心得按钮,编写旅行心得,点击发布按钮,检查自己的心得页面新增了一条旅行心得。 | 无。 |
12 | 使用支付宝支付预定订单 | 95 | 8 | 选择支付宝支付,转到支付宝支付页面,进行支付。 | 无。 |
13 | 管理房屋 | 100 | 12 | 进入管理房屋页面,能够添加新房屋、编辑房屋信息、删除房屋。 | 可以细分。 |
14 | 获得预定历史订单 | 90 | 10 | 点击历史订单页面,获得所有历史订单列表,点击某个订单转到订单详情页。 | 无。 |
15 | 收款 | 100 | 5 | 登记自己的收款账号,系统自动将订房客的付款打到指定账户上。 | 无。 |
业务建模
活动图(Activity Diagram)常用于描述一个具体的业务,通过活动流程图与用例模型的组合使用,您可以快速掌握一个具体业务的流程,并发现可能的子用例。
查找酒店
如下是Airbnb
用例中Get a list of specified houses
的活动图,

通过浏览活动图,您可以观察每一个活动是否还有可扩展的地方,例如在选择城市部分,可以考虑
- 如何制作城市索引
- 是否要获取用户位置
- 是否要进行智能推荐
- …
不断地对所有活动进行这样的思考,是发现子用例的一个重要方法。
取款
使用自动取款机取款是身边的常见业务,如下是一个中国银行ATM取款业务活动图,

淘宝退货
多泳道图是活动图的一种特殊形式,用于描述业务中不同实体之间的相互关系和协作,如下是描述淘宝网退货业务的一个多泳道图,包含客户、淘宝网、淘宝商家服务系统以及商家四个实体。

客户须要完成退款业务,淘宝网至少要实现如下系统用例:
- 处理用户退款请求
- 处理用户退款物流信息
- 改变订单状态
- 处理退款
用例编制
用例文档具有三种常见的形式,分别是
- Brief
- Casual
- Full
三种形式各有优缺点,用例文档形式时要根据用例复杂程度和实际情况来选择,一味的使用完整用例不见得是一件好事。
文档形式 | 优点 | 缺点 |
---|---|---|
Brief | 极简,编制几乎不需要成本。 | 信息少,只能用于描述简单用例或不重要用例。 |
Casual | 较为简单,能够表示一定量信息。 | 难以清晰描述复杂用例。 |
Full | 结构清晰,内容翔实。 | 编制成本高,往往要经过多个迭代才能得到相对完整的用例文档。 |