连载:面向对象葵花宝典:思想、技巧与实践(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
================================================ 

相关文章
|
小程序 数据安全/隐私保护
点餐小程序实战教程01需求分析
点餐小程序实战教程01需求分析
|
8月前
|
人工智能 算法 搜索推荐
刘慈欣预言下的创作革命:刘慈欣称DeepSeek完全可能替代人类作家!
科幻作家刘慈欣谈及AI未来或可替代科幻作家,认为从理论上讲,10至20年后AI完全可能取代科幻小说作家。尽管如此,具有“巅峰创造力”的作家仍难以被完全取代。文章探讨了生成式AI在文学创作中的三重境界:工具化、主体化和生态级重构,并提出GAI认证体系助力创作者掌握AI技术,保持独特性。最终,文学可能演化为共生、抵抗与进化三种形态,在人机协作中迎来更繁荣的未来。
|
10月前
|
监控 关系型数据库 MySQL
Aurora MySQL负载突增应对策略与优化方案
通过以上策略,企业可以有效应对 Aurora MySQL 的负载突增,确保数据库在高负载情况下依然保持高性能和稳定性。这些优化方案涵盖了从架构设计到具体配置和监控的各个方面,能够全面提升数据库的响应速度和处理能力。在实际应用中,应根据具体的业务需求和负载特征,灵活调整和应用这些优化策略。
200 22
|
机器学习/深度学习 算法
【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献
本文介绍了2023年高教社杯数学建模竞赛B题,聚焦于多波束测深系统的覆盖宽度和重叠率问题,包括问题分析、数学模型构建和参考文献,并针对不同场景下的测线设计提出了解决方案。
448 0
【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献
|
Linux 虚拟化 Windows
完美解决:重新安装VMware Tools灰色。以及共享文件夹的创建(centos8)
这篇文章提供了解决VMware Tools无法重新安装(显示为灰色)问题的步骤,并介绍了如何在CentOS 8上创建和配置VMware共享文件夹。
完美解决:重新安装VMware Tools灰色。以及共享文件夹的创建(centos8)
|
数据可视化 定位技术 API
Python pyecharts 模块
Python pyecharts 模块
|
人工智能 测试技术 Python
基于 LangChain 的自动化测试用例的生成与执行
本章节详细介绍了如何利用人工智能技术自动化完成Web、App及接口测试用例的生成与执行过程,避免了手动粘贴和调整测试用例的繁琐操作。通过封装工具包与Agent,不仅提升了测试效率,还实现了从生成到执行的一体化流程。应用价值在于显著节省时间并提高测试自动化水平。
|
Java 测试技术 Python
《手把手教你》系列技巧篇(二十七)-java+ selenium自动化测试- quit和close的区别(详解教程)
【4月更文挑战第19天】本文介绍了WebDriver中关闭浏览器的两个方法:close和quit。close方法关闭当前窗口,如果这是最后一个窗口,浏览器也会退出。quit方法则直接退出浏览器并关闭所有关联窗口。示例代码展示了两者的区别,通常在自动化测试后使用quit来彻底关闭浏览器。close和quit在HTTP请求上的差异也进行了说明,close请求的是 `/session/{session id}/window/current`,而quit请求的是 `/session/{session id}`。
291 8
|
Web App开发 机器学习/深度学习 人工智能
详细解读AI测试之Applitools入门教程
详细解读AI测试之Applitools入门教程
765 0
|
人工智能 运维 自然语言处理
构建高效自动化运维体系:DevOps与AI的融合之路
【4月更文挑战第30天】在数字化转型的大潮中,企业IT基础设施的复杂性日益增加,传统的运维模式已难以满足快速变化的业务需求。本文深入探讨了如何通过融合DevOps和人工智能(AI)技术构建一个高效、自动化的运维体系。文章首先概述了现代运维面临的挑战,接着分析了DevOps的核心理念以及AI如何在故障预测、智能决策支持等方面提升运维效率。最后,本文提出了一个具体的实施框架,并讨论了在推进过程中可能遇到的挑战及应对策略。