连载:面向对象葵花宝典:思想、技巧与实践(19) - 功能点提取

简介:

完成了用例之后,需求分析的工作基本上已经完成,接下来我们需要趁热打铁,完成另外一个事情:提取功能点

 

有了用例之后,提取功能可以说是一个水到渠成的事情,基本上只是一个文字工作,我们只需要将用例中那些需要系统完成的事情——更简单的说:是动词——提取出来,就成为了系统的功能。

 

以前面的POS机为例,我们看看如何提取功能,如下粗体字即为提取的功能:

 

【用例名称】

买单

【场景】

Who:顾客、收银员

Where:商店的收银台

When:营业时间

【用例描述】

1. 顾客携带选择好的商品到收银台;

(这一步没有异常)

2. 收银员逐一扫描商品条形码,系统根据条形码查询商品信息

2.1 扫描仪坏了,必须支持手工输入条形码

2.2 商品的条形码无法扫描,必须支持手工输入条形码

2.3 条形码能够扫描,但查询不到信息,需要收银员和顾客沟通,放弃购买此产品

3. 扫描完毕,系统计算商品总额并显示,收银员告诉顾客商品总额;

(这一步没有异常)

4. 顾客将钱交给收银员;

4.1 顾客的钱不够,顾客和收银员沟通,删除某商品

4.2 顾客的钱不够,顾客和收银员沟通,删除某类商品中的一个或几个(例如买了5包烟,去掉两包)

4.3 顾客觉得某个商品价格太高,要求删除某商品

4-A:顾客使用信用卡支付

4-A.1 信用卡支付流程(请读者自行思考完善,可以写在这里,如果太多,也可以另外写一个子用例)

4-B:顾客使用购物卡支付

        4-B.1 购物卡支付流程

4-C:顾客使用会员卡积分支付

        4-C.1 会员卡积分支付流程

5. 收银员清点钱数,输入收到的款额,系统给出找零的数目

(这一步没有异常)

6. 收银员将找零的钱还给顾客,并打印小票

7. 买单完成,顾客携带商品和小票离开

【用例价值】

顾客买完单以后,就可以携带商品离开,而超市也将得到收入;

【约束和限制】

1. POS机必须符合国标XXX;

2. 键盘使用中文,因为收银员都是中国人;

3. 一次买单数额不能超过99999RMB;

4. POS机要非常稳定,至少一天内不要出现故障;

 

我们将提取的功能列出来:

功能编号

功能描述

备注

001

扫描商品条形码

NA

002

手工输入条形码

在用例的几个步骤中有体现

003

删除某商品

在用例的几个步骤中有体现

004

删除某类商品中的一个或几个

NA

005

顾客使用信用卡支付

这三个功能点比较大,如有需要,可以继续拆分。

006

顾客使用购物卡支付

007

顾客使用会员卡积分支付

008

计算找零的数目

用例中是“给出”,对应系统功能是我们改为“计算”,因为这更加符合计算机的描述术语。

009

打印小票

NA

注意用例中可能同一个功能在不同的步骤中出现了多次(例如“手工输入条形码”、“删除某商品”),最后提取的时候要合并

 

除了同一用例中某些功能要合并外,不同的用例中相同的功能也需要合并,我们以ATM机为例:

功能编号

功能描述

涉及用例

001

银行卡验证

取款、存款、查询余额

002

密码验证

取款、存款、查询余额

003

点钞

取款、存款

004

验钞

存款

005

打印交易清单

取款、存款

 

有的同学可能会问:有了用例后,为什么还要将功能点单独提取出来呢?直接看用例不就可以了么

这个问题要从多方面来回答:

首先,从美学的角度来看,看一个功能列表的表格,肯定比看一长篇用例文档,然后在脑袋里组织功能列表要方便很多;

 

其次,从项目管理的角度来看,功能列表更易于管理,例如任务分配时不可能基于用例进行分配的,因为不同用例间可能存在大量重复的功能点;

 

再次,从开发角度来说,开发是基于功能点的,而不是基于用例的;

最后,从测试的角度来说,虽然最后的验收测试是基于用例的,但产品测试主要还是基于功能点进行测试的


================================================ 
转载请注明出处:http://blog.csdn.net/yunhua_lee/article/details/21550893
================================================ 

相关文章
|
3月前
|
存储 设计模式 算法
【 第十一章】软件设计师 之 面向对象设计与结构化分析设计
软件设计师 之 面向对象设计与结构化分析设计备考资料
【 第十一章】软件设计师 之 面向对象设计与结构化分析设计
|
3月前
|
算法 安全
【 第十二章】软件设计师 之 面向对象设计与结构化分析设计
软件设计师 之 面向对象设计与结构化分析设计备考资料
【 第十二章】软件设计师 之 面向对象设计与结构化分析设计
|
运维 监控 架构师
第二章 软件过程与思想 第一节 基础
第二章 软件过程与思想 第一节 基础
|
BI 程序员
透过文学经典理解软件设计的抽象思想
透过文学经典理解软件设计的抽象思想
|
人工智能 算法 安全
8种提升程序猿编程能力的方法+编程思维四个核心:分解、抽象、模式识别和算法
对于程序员来说,提高自己的编程能力,算是给自己定的职业发展目标之一,不过定一个成为编程大神的目标很容易,具体做起来可能就不是一件简单的事了。首先,既然决定“我要变得更好”,得先知道“更好”是什么样子的。另外,不能“想变得更好”,却没有任何具体可行的措施。
919 2
8种提升程序猿编程能力的方法+编程思维四个核心:分解、抽象、模式识别和算法
|
算法 关系型数据库 MySQL
形式化验证工具TLA+:程序员视角的入门之道
女娲是飞天分布式系统中提供分布式协同的基础服务,支撑着阿里云的计算、网络、存储等几乎所有云产品。在女娲分布式协同服务中,一致性引擎是核心基础模块,支持了Paxos,Raft,EPaxos等多种一致性协议,根据业务需求支撑不同业务状态机。如何保证一致性库的正确性是一个很大挑战,我们引入了TLA+、Jepsen等工具保证一致性库的正确性。本文即从程序员视角介绍形式化验证工具TLA+。
形式化验证工具TLA+:程序员视角的入门之道
《面向对象分析与设计》一第1章 面向对象方法概论
本节书摘来自华章出版社《面向对象分析与设计》一书中的第1章,第1.1节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1146 0
《面向对象分析与设计》一第2章 什么是面向对象分析
本节书摘来自华章出版社《面向对象分析与设计》一书中的第2章,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1227 0