学习目标:
1 理解需求工程的基本概念
2 需求规格说明书(SRS)
3 理解同行评审的概念
4 掌握需求评审的过程
5 了解需求变更
学习内容:
1 什么是需求:
解决用户问题,或者达到用户目标所需要的条件或者能力
遵循合同,标准,规格或者其他要求的正式文档
强调的是做什么,不需要知道怎么做
2 需求工程:
需求开发(整个过程):
需求获取
需求分析
需求定义
需求验证
需求管理:
需求分配
需求评审
需求基线
需求跟踪
需求控制
需求管理工具:
禅道
QC
doors
3 同行评审:
评审对象:
管理:
软件开发计划(SDP)
软件测试计划(S V V P)
项目计划
技术:
需求规格,概要设计,详细设计
代码,程序,用户手册,帮助
测试计划,测试方案,测试用例,测试
方法(怎样进行同行评审):
审查
小组评审
走查
结对编程:
持续进行
同级
轮查
临时评审
4 需求规格说明书(SRS):
是对软件产品,程序或者一组程序的说明
描述需求:
功能:软件做什么
外部接口:如何与用户,系统硬件,软件或外部硬件进行交互
性能:速度,响应时间,恢复时间
约束:操作环境,资源限制,实现语言,标准等
敏感信息审查
目的:
客户和开发之间达成一致
方便制定计划
成本计价
为确认和验证提供一个基础
提高开发效率
特点(描述需求的特点):
软件需求的正确性
软件需求无歧义性
软件的功能需要完整性
软件需求要一致:
案例:
概要设计指定同时200人访问网站,但需求规格允许300人
软件需求可验证性:
网页字体足够大
软件需求的可追踪性:
案例:
注册功能,需求——>分析——》设计——》代码——》测试(完整的追踪),没有对应的测试用例
案例:
小明在早上上学之前说,今天晚上放学之后,我想吃个鸡腿,晚上,小明的爸爸买了个炸鸡腿,小明的妈妈给他做了红烧的鸡腿,小明的奶奶给他卤鸡腿,小明的爷爷去超市给他买了一个盐焗鸡腿
启示
羡慕小明
小明没有说明需要吃几个鸡腿
小明没有说明哪个口味
小明没有指定具体的请谁给他准备鸡腿
映射到软件开发
软件需求要管理,不管理的话,需求的实现是盲目的,不受控制
软件需求的实现,要跟踪,要记录,要标识
要测量软件需求
验证软件需求