本书可作为计算机软件专业本科生、研究生和软件工程硕士的软件需求分析教材,也可以作为软件工程、软件开发管理培训的教材,更是一线项目经理、需求分析人员、资深开发人员、信息系统运行管理人员、研发企业管理人员的必备参考书。
《软件需求最佳实践:SERU过程框架原理与应用》首先从软件需求实践中出现的主要问题和困难入手,指出了改进的主要方向;然后逐一说明了需求定义、需求捕获、需求分析与建模、编写规约、需求验证等需求开发活动的任务、要点和具体手段;并提出了一个可操作性强、易于上手的SERU过程框架,能够帮助读者清晰地了解整个过程,理解各阶段的关键产物和产物之间的关系。
《软件需求最佳实践:SERU过程框架原理与应用》还对包括需求基线、变更管理、需求跟踪在内的需求管理活动的操作要点进行了阐述,给出了具有很强实践性的具体建议。综观全书,语言浅显、文字生动,蕴含了许多人文、心理、交流方面的知识,即使非技术背景的读者也能够轻松读懂大部分内容,从中受益。
《软件需求最佳实践:SERU过程框架原理与应用》可作为计算机软件专业本科生、研究生和软件工程硕士的软件需求分析教材,也可以作为软件工程、软件开发管理培训的教材,更是一线项目经理、需求分析人员、资深开发人员、信息系统运行管理人员、研发企业管理人员的必备参考书。
第1章 需求实践现状分析
在信息化高速发展的今天,构建与时俱进的信息化系统已成为所有政府、企事业单位的重点课题之一。然而在软件项目实施过程中,进度超期、经费超预算、变更频繁的现象层出不穷,甚至有许多项目根本无法达到预期的目标,更谈不上为业主创造真正的效益。归根结底,软件需求实践这一共同的软肋是问题的根源。
1.1 软件项目失败的根源
“在中国做软件太难了!客户连自己的需求都说不清楚!”,这种抱怨的话总是在笔者耳边响起。实际上,软件项目失败率居高不下、需求问题层出不穷的现象并不仅仅是中国软件业的困扰,在大洋彼岸的美国软件业也未能幸免。
第三方机构Standish Group每隔几年都会对软件项目实践现状进行分析与统计,其显示的“成绩单”(CHAOS Report)十分令人担忧。正所谓“他山之石可以攻玉”,下面我们分别来看看几次报告中显示的数据,分析失败的原因,以便从中获得一些帮助我们改进工作的思路。
1.1.1 CHAOS Report 1994
1994年度发布的报告显示,美国每年的IT应用开发项目大约有175 000个,总投资高达2500亿美元,大型、中型、小型企业的软件开发项目的平均成本分别是232.2万美元、133.I万美元和43.4万美元。
而Standish Group的研究显示:高达31.1%的项目彻底失败,高达52.7%的项目进度超期或成本超支,被认为成功的项目仅有可怜的16.2%。
而导致进度超期、成本超支的项目中,最主要的原因之一是项目的重新启动,而每100个项目中就有94个曾经遇到这个问题,甚至在这94个项目中还有许多项目经历了多次的重新启动。
而不同的项目的进度超期、成本超支情况还是有所不同的,下面我们就通过CHAOS报告中总结的表格来了解一下,如表1.1所示。
在表1—2中可以看出,十大成功保证中有三个是直接与需求相关的(已加粗显示),累计权重达到37.1%;而十大败因中与需求直接相关的更是高达五个,累计权重高达51.6%,可见需求问题对项目影响程度之高。
而对于那些成本超支、进度超期的项目而言,报告也总结出了导致这一结果出现的十大因素:缺乏用户参与(12.8%)、不完整的需求(12.3%)、需求变更频繁(11.8%)、缺乏执行层的支持(7.5%)、技术能力缺乏(7.0%)、资源不足(6.4%)、不切实际的用户期望(5.9%)、没有清晰的愿景和目标(5.3%)、不切实际的时间限制(4.3%)、新技术风险(3.7%)、其他(23.0%)。
……
第1部分 原理、模型与误区
第1章 需求实践现状分析
1.1 软件项目失败的根源
1.1.1 CHAOS Report 1994
1.1.2 CHAOS Report后续版本
1.1.3 需求相关败因简要分析
1.1.4 一幅漫画带来的思考
1.2 透过表象,分析本质
1.2.1 需求变更频繁
1.2.2 上线阻力大
1.2.3 运行效果差
1.2.4 完全崩溃
1.3 方法论与需求工作
1.3.1 计算模式
1.3.2 软件工程方法论
1.3.3 开发思想
1.4 小结
第2章 不同软件项目的需求视图
2.1 信息系统的需求视图
2.1.1 信息系统的本质与分类
2.1.2 联机事务处理系统--流程电子化
2.1.3 管理信息系统--数据信息化
2.1.4 其他信息系统
2.1.5 信息系统的多维视图
2.2 嵌入式系统的需求视图
2.2.1 面向直接用户的嵌入式系统
2.2.2 面向特定设备的嵌入式系统
2.3 软件产品的需求视图
2.4 小结
第3章 软件需求与需求工程
3.1 什么是软件需求
3.1.1 需求的三个层次
3.1.2 需求的三种类型
3.1.3 优秀需求的标准
3.2 需求工程解析
3.2.1 需求工程的范畴
3.2.2 需求开发工作要点
3.2.3 需求管理工作要点
3.2.4 需求分析人员的技能组成
3.2.5 SERU模型概述
3.3 小结
第2部分 需求开发
第4章 需求定义最佳实践
4.1 需求定义任务概述
4.1.1 需求定义的时机
4.1.2 需求定义的理念与策略
4.2 问题分析的五步法
4.2.1 在问题定义上达成共识
4.2.2 分析问题背后的问题
4.2.3 确定相关人员和用户
4.2.4 定义解决方案的界限
4.2.5 确定加在解决方案上的约束
4.2.6 小结
4.3 需求定义的产物与要素
4.3.1 需求定义的产物
4.3.2 需求定义的要素
4.4 定义需求范围
4.4.1 案例说明
4.4.2 划分主题域
4.4.3 确定主题域范围
4.4.4 标识业务事件与报表
4.4.5 生成需求大纲
4.5 小结
第5章 需求捕获最佳实践
5.1 需求捕获的策略
5.1.1 需求捕获应该是主动的
5.1.2 需求捕获应该是聚焦的
5.1.3 破解需求的冰山模型
5.1.4 破解阻碍需求捕获的心理现象
5.1.5 不要忽视对变更可能的捕获
5.1.6 需求协商
5.2 需求捕获的主要方法
5.2.1 用户访谈
5.2.2 用户调查
5.2.3 文档考古
5.2.4 情节串联板
5.2.5 现场观摩
5.2.6 联合开发
5.3 需求捕获的记录工具
5.3.1 工具的选择与定义
5.3.2 任务卡片
5.3.3 场景说明
5.3.4 其他工具
5.4 小结
第6章 需求分析与建模最佳实践
6.1 需求分析与建模的要点与误区分析
6.1.1 需求分析到底做什么
6.1.2 建模的目标与要点
6.1.3 选择建模工具的要点
6.2 周期一:理清框架与脉络
6.2.1 业务流程分析
6.2.2 业务实体分析
6.2.3 角色与使用场景分析
6.2.4 周期一的产物
6.3 周期二:确定需求细节
6.3.1 确定行为需求的细节
6.3.2 确定结构需求的细节
6.3.3 周期二的产物
6.4 其他需求分析
6.4.1 接口需求
6.4.2 非功能需求的追踪
6.4.3 设计约束
6.5 小结
第7章 需求描述最佳实践
7.1 需求描述的风格与格式
7.1.1 常见的描述风格与选用标准
7.1.2 典型软件需求规格说明书模板解析
7.1.3 定义模板的技巧
7.1.4 用户需求说明与软件需求规格说明
7.2 写作策略与技巧
7.2.1 文字表达的先天不足
7.2.2 需求描述的两大原则
7.2.3 不要忽视陈述需求理由的重要性
7.2.4 注意措辞
7.3 小结
第8章 需求验证最佳实践
8.1 需求验证的主要手段
8.1.1 不同正式化程度的评审
8.1.2 审查过程概述
8.2 需求验证的主要误区与解决方案
8.2.1 需求验证的5大要点
8.2.2 需求验证常见的5大问题
8.3 小结
第3部分 需求管理
第9章 需求基线操作实务
9.1 需求基线的理念与策略
9.1.1 基线思想的起源
9.1.2 基线的策略
9.2 基线划定的基础:优先级评价
9.2.1 组织需求项
9.2.2 业务优先级评价
9.2.3 根据技术依赖性和项目风险调整优先级
9.3 基线划定的要素:工作量估算
9.3.1 估算的意义与要点
9.3.2 定义阶段的估算示例
9.3.3 分析一阶段的估算示例
9.4 基线划定与管理
9.4.1 划定基线
9.4.2 管理基线
9.5 小结
第10章 变更管理操作实务
10.1 变更管理的理念
10.2 变更管理要点一:统一渠道
10.2.1 CCB背后的道理
10.2.2 变更处理过程
10.3 变更管理要点二:统一平台
10.3.1 变更管理平台的选择
10.3.2 变更管理平台的应用要点
10.4 小结
第11章 需求跟踪操作实务
11.1 需求跟踪的基本概念
11.1.1 用户需求到软件需求的跟踪
11.1.2 软件需求到软件需求的跟踪
11.1.3 软件需求到下游工作产品的跟踪
11.2 需求跟踪的操作方法
11.2.1 表格法
11.2.2 链表法
11.3 小结
第4部分 总结
第12章 SERU过程框架总结
12.1 SERU过程框架要点概述
12.1.1 SERU过程框架的理论基础
12.1.2 SERU过程框架全景图
12.1.3 SERU过程框架导入建议
12.2 需求实作要点概述
12.3 结语
参考文献
SERU诫语目录
第1章 需求实践现状分析
第2章 不同软件项目的需求视图
第3章 软件需求与需求工程
第4章 需求定义最佳实践
第5章 需求捕获最佳实践
第6章 需求分析与建模最佳实践
第7章 需求描述最佳实践
第8章 需求验证最佳实践
第9章 需求基线操作实务
第10章 变更管理操作实务
第11章 需求跟踪操作实务
六年前,当我认识徐锋时,他就是软件需求领域的高手。潜心实践、研究,六年磨一剑,如今锋利出鞘。中国的软件产业并不缺乏软件工程理论,而是我们没有很好地运用这些理论。我给软件工程硕士讲授<需求工程>课程,使用过各种版本的教材,这些书籍的通病就是实践性不强。当我读到这本书稿时,倍感亲切,这不是一本软件需求的理论书,而是一本需求实践指导手册。
——张友生博士(希赛网首席架构师,著名计算机教育专家)
涵盖面广,实用性强,有理有据(例),亦庄亦谐,朴实无华又非常受用,在技术类书籍中当属不可多得的佳作。
——田俊国(用友大学执行校长,高级企业培训师)
(软件需求最佳实践>是一本足以令人拍案叫好的书。它经验密集,直击需求实践中各种问题,给出令人信服的问题解决思路。它实践体系完善,贯穿全书的SERLJ过程框架,详尽地覆盖了需求工作中各个环节的任务、要点及产物,脉络清晰,可操作性极强。最可贵的是,SERU过程框架漂亮地 “打通了”业务工程到传统需求的“鸿沟”,而众多企业需求实践中的最大困惑恰恰常在于此。故此,郑重推荐徐锋的这本佳作!
——温昱资深咨询顾问.软件架构高级培训讲师)