软件需求(第2版)

软件需求(第2版)
作 者: Karl Wiegers 刘伟琴 刘洪涛 刘伟琴
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 软件需求
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Karl E.Wiegers是需求工程和软件过程改进领域内的顾问专家。作为Process Impact公司的首席顾问,他曾举办过许多培训讲习班.并多次在行业大会上发表演讲。Karl曾两次荣获Software Development Productivity Award,这一奖项是专门为奖励有助于提高生产率的产品和著作而设立的。

内容简介

本书是有关软件需求的经典教材,本书全面而深入地讲述了软件开发中一个至关重要的问题:软件需求问题。软件开发人员及用户往往容易忽略沟通的重要性,导致软件开发出来后,不能很好地满足用户的需要。返工不仅在技术上给开发人员带来巨大的麻烦,并且会造成人力、物力和资源的浪费,还使软件性能深受影响,所以在开发早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩大及需求变更来达到按计划完成预定目标,是当前软件业急需解决的问题,也是本书讨论的主要内容。本书对第1版的内容进行了扩展,不仅对原有的知识点进行了补充,还引入了一些新知识,以求与时代发展同步。本书可以作为计算机专业及软件工程专业学生的教材使用,也非常适合作为项目经理、软件开发人员的指导性参考书。译者序随着计算机软件项目的规模越来越大,竞争日趋激烈,软件开发组织越来越认识到软件质量的重要性,在这种情况下软件工程的理念已渐渐深入人心,人们已经从中受益。软件需求作为软件工程的一个阶段,在软件项目开发中起着至关重要的作用。软件项目要取得成功,最重要的莫过于了解所要开发的软件需要解决哪些问题,这就是软件需求所要解决的问题,因此,软件需求为软件项目的成功奠定了基础。如果软件开发人员与客户不进行充分的交流与沟通,没有就产品的功能性需求和非功能性需求达成共识,就匆匆忙忙开始着手编写代码,其后果可想而知,很可能不能满足用户的需要,从而不得不对项目进行返工,这就造成了人力和物力的巨大浪费。如果我们在软件项目开发之前,充分地完成软件需求的相关活动,就可以避免这种情况的发生。本书是一本非常实用的需求工程参考书,书中按照需求工程的各个阶段,即需求获取阶段、需求分析阶段、编写需求规格说明阶段、需求确认阶段和需求管理阶段组织起来,并提供了许多有效技术,这些技术为用户、开发人员和管理层之间进行交流提供了方便。本书作者卡尔·E·威格(KarlE.Wiegers)是需求工程领域的权威人士,他曾担任过软件开发人员、软件经理以及软件过程和质量改进负责人,在长期的工作中积累了丰富的经验。本书第1版曾荣获"软件开发"效率大奖,目前已成为参与软件开发过程的所有人员必不可少的参考书。本书第2版对第1版中所提出的最佳实践进行了许多扩充,这一版不仅在每一章中都列举了大量的实例并提供了新的案例,而且,作者还根据自己的亲身经历,为完成不同的任务提供了颇具特色的检查列表、范例文档和模板。另外,作者还从自己丰富的职业...

图书目录

第1部分 什么是软件需求

为什么要实现软件需求

哪些人应参与软件需求

第1章 软件需求基础知识

1. 1 软件需求的定义

1. 1. 1 对需求的不同解释

1. 1. 2 需求的层次

1. 1. 3 不属于需求的内容

1. 2 需求的开发与管理

1. 2. 1 需求开发

1. 2. 2 需求管理

1. 3 所有项目都有需求

1. 4 优秀的团队遇到糟糕的需求

1. 4. 1 用户参与不足

1. 4. 2 用户需求扩展

1. 4. 3 有岐义的需求

1. 4. 4 镀金问题

1. 4. 5 过于抽象的需求

1. 4. 6 忽略了某类用户

1. 4. 7 不准确的计划

1. 5 优质需求过程的好处

1. 6 优秀需求的特点

1. 6. 1 需求陈述的特点

1. 6. 2 需求规格说明的特点

第2章 客户眼中的需求

2. 1 客户

2. 2 客户与开发人员的合作伙伴关系

2. 2. 1 软件客户的权利法案

2. 2. 2 软件客户的义务法案

2. 3 关于签字

第3章 需求工程的推荐方法

3. 1 知识技能

3. 2 需求获取

3. 3 需求分析

3. 4 规格说明

3. 5 需求验证

3. 6 需求管理

3. 7 项目管理

3. 8 开始新实践

3. 9 需求开发过程

第4章 需求分析员

4. 1 需求分析员的职责

4. 1. 1 需求分析员的工作

4. 1. 2 需求分析员必备的技能

4. 1. 3 需求分析员必备的知识

4. 2 如何培养需求分析员

4. 2. 1 从用户转为分析员

4. 2. 2 从开发人员转为分析员,

4. 2. 3 主题专家

4. 3 营造合作的氛围

第2部分 软件需求开发

第5章 确定产品前景与项目范围

5. 1 通过业务需求定义前景

5. 1. 1 相互矛盾的业务需求

5. 1. 2 业务需求与用例

5. 2 前景与范围文档

5. 3 关联图

5. 4 保持范围的适度

第6章 获取客户的需求

6. 1 需求的来源

6. 2 用户类

6. 3 寻找用户代表

6. 4 用户代言人

6. 4. 1 外部的用户代言人

6. 4. 2 对用户代言人的要求

6. 4. 3 设置多位用户代言人

6. 4. 4 如何让人接受用户代言人的概念

6. 4. 5 用户代言人应避免的陷阱

6. 5 谁来做出决策

第7章 聆听客户的需求

7. 1 需求获取

7. 2 需求获取讨论会

7. 3 将客户的意见归类

7. 4 需求获取中的注意事项

7. 5 寻找遗漏的需求

7. 6 如何判断需求获取是否已完成

第8章 理解用户需求

8. 1 用例法

8. 1. 1 用例与使用场景

8. 1. 2 确定用例

8. 1. 3 编写用例

8. 1. 4 用例与功能性需求

8. 1. 5 用例的好处

8. 1. 6 使用用例时应避免的问题

8. 2 事件一响应表

第9章 遵守规则

9. 1 业务的规则

9. 1. 1 事实

9. 1. 2 约束

9. 1. 3 动作触发规则

9. 1. 4 推论

9. 1. 5 计算

9. 2 在文档中记录业务规则

9. 3 业务规则和需求

第10章 编写需求文档

10. 1 软件需求规格说明

10. 1. 1 需求的标识

10. 1. 2 处理不完整性

10. 1. 3 用户界面和软件需求规格说明

10. 2 软件需求规格说明模板

10. 3 编写需求文档的原则

10. 4 改进前后的需求示例

10. 5 数据字典

第11章 一图胜千言

11. 1 需求建模

11. 2 从客户需求到分析模型

11. 3 数据流图

11. 4 实体一关系图

11. 5 状态转换图

11. 6 对话图

11. 7 类图

11. 8 判定表和判定树

11. 9 最后的提醒

第12章 软件质量属性

12. 1 质量属性

12. 2 定义质量属性

12. 2. 1 对用户重要的属性

12. 2. 2 对开发人员重要的属性

12. 3 性能需求

12. 4 用Planguage定义非功能性需求

12. 5 属性的折中方案

12. 6 实现非功能性需求

第13章 通过制作原型减少项目风险

13. 1 什么是原型和为什么要建立原型

13. 2 水平原型

13. 3 垂直原型

13. 4 废弃型原型

13. 5 演化型原型

13. 6 书面原型和电子原型

13. 7 原型评估

13. 8 创建原型所带来的风险

13. 9 原型法成功的因素

第14章 设定需求优先级

14. 1 为什么要设定需求优先

14. 2 优先级规则

14. 3 优先级的等级

14. 4 根据价值. 成本和风险来设定优先级

第15章 需求确认

15. 1 需求评审

15. 1. 1 审查过程

15. 1. 2 需求评审面临的困难

15. 2 测试需求

15. 3 制定验收标准

第16章 需求开发面临的特殊难题

16. 1 维护项目的需求

16. 1. 1 开始捕获信息

16. 1. 2 亲身实践一下新的需求技术

16. 1. 3 遵循跟踪链

16. 2 软件包解决方案的需求

16. 2. 1 开发用例

16. 2. 2 考虑业务规则

16. 2. 3 定义质量需求

16. 3 外包项目的需求

16. 4 突发型项目的需求

16. 4. 1 非正式用户需求规格说明

16. 4. 2 现场客户

16. 4. 3 尽早地而且要经常地设定优先级

16. 4. 4 简单的变更管理

第17章 超越需求开发

17. 1 从需求到项目规划

17. 1. 1 需求和预估

17. 1. 2 需求和进度安排

17. 2 从需求到设计和编码

17. 3 从需求到测试

17. 4 从需求到成功

第3部分 软件需求管理

第18章 需求管理的原则和实践

18. 1 需求基线

18. 2 需求管理过程

18. 3 需求版本控制

18. 4 需求属性

18. 5 跟踪需求状态

18. 6 评估需求管理的工作量

第19章 变更管理

19. 1 管理范围蔓延

19. 2 变更控制过程

19. 2. 1 变更控制策略

19. 2. 2 变更控制过程描述

19. 3 变更控制委员会

19. 3. 1 CCB的组成

19. 3. 2 CCB规章

19. 4 变更控制工具

19. 5 测量变更活动

19. 6 变更需要付出代价:影响分析

19. 6. 1 影响分析的过程

19. 6. 2 影响分析报告模板

第20章 需求链中的联系链

20. 1 需求跟踪

20. 2 需求跟踪动机

20. 3 需求跟踪矩阵

20. 4 需求跟踪工具

20. 5 需求跟踪过程

20. 6 需求跟踪可行吗 必要吗

第21章 需求管理工具

21. 1 使用需求管理工具的益处

21. 2 需求管理工具的功能

21. 3 实现需求管理自动化

21. 3. 1 选择适当的工具

21. 3. 2 改变文化

21. 3. 3 使需求管理工具服务于自己

第4部分 实现需求工程

第22章 改进需求过程

22. 1 需求与其他项目过程的联系

22. 2 需求和各涉众组

22. 3 软件过程改进的基本原则

22. 4 过程改进周期

22. 4. 1 评估当前采用的方法

22. 4. 2 规划改进活动

22. 4. 3 建立. 实验并实现新过程

22. 4. 4 评估结果

22. 5 需求工程过程资产

22. 5. 1 需求开发过程资产

22. 5. 2 需求管理过程资产

22. 6 需求过程改进路线图

第23章 软件需求与风险管理

23. 1 软件风险管理基本原理

23. 1. 1 风险管理的要素

23. 1. 2 编写项目风险文档

23. 1. 3 制定风险管理计划

23. 2 与需求相关的风险,

23. 2. 1 需求获取

23. 2. 2 需求分析

23. 2. 3 编写需求规格说明

23. 2. 4 需求确认

23. 2. 5 需求管理

23. 3 风险管理是我们的好帮手

附录A 当前需求实践的自我评估

附录B 需求和过程改进模型

B. 1 软件能力成熟度模型

B. 2 CMMI-SE/SW

B. 2. 1 需求管理过程域

B. 2. 2 需求开发过程域

附录C 需求错误诊断指南

C. 1 根本原因分析

C. 2 需求问题的常见现象

C. 3 实现解决方案常常会遇到的障碍

附录D 需求文档范例

D. 1 前景和范围文档

D. 1. 1 业务需求

D. 1. 2 解决方案的前景

D. 1. 3 范围和局限性

D. 1. 4 业务上下文

D. 2 用例

D. 3 软件需求规格说明

D. 3. 1 介绍

D. 3. 2 总体描述

D. 3. 3 系统特性

D. 3. 4 外部接口需求

D. 3. 5 其他非功能性需求

D. 3. 6 附录A 数据字典和数据模型

D. 3. 7 附录B分析模型

D. 4 业务规则

术语表

结语