第1章 新视野:企业—产品—人
1.1 软件危机新理解
1.2 企业—产品—人
1.3 企业的根本目标
1.3.1 观点和论断
1.3.2 案例与评论
1.3.3 推论
1.4 产品开发之道
1.4.1 开发正确的产品
1.4.2 正确地开发产品
1.5 用人之道
1.5.1 如何组建软件开发团队
1.5.2 如何管理软件开发团队
1.6 漫谈软件白领
1.6.1 软件白领的概念
1.6.2 软件白领的生活现状
1.6.3 软件白领的前途
1.7 如何成为优秀的软件人才
1.7.1 学习强势知识
1.7.2 提高表达能力
1.7.3 提高管理能力
1.7.4 提升人格魅力
1.8 小结
思考与练习
第2章 立项管理和结项管理
2.1 什么是立项管理
2.2 立项建议
2.2.1 规程介绍
2.2.2 产品构思
2.2.3 立项调查
2.2.4 如何撰写立项建议书
2.3 可行性分析
2.3.1 为什么要进行可行性分析
2.3.2 市场可行性分析
2.3.3 政策可行性分析
2.3.4 技术可行性分析
2.3.5 成本收益分析
2.3.6 SWOT分析
2.4 立项评审
2.4.1 角色职责
2.4.2 如何评审
2.5 项目筹备
2.6 结项管理
2.6.1 什么是结项管理
2.6.2 结项管理的流程
2.7 小结
思考与练习
第3章 项目规划与项目监控
3.1 项目规划的概念
3.2 如何进行项目估计
3.2.1 数学模型真的好用吗
3.2.2 简单直观的估计方法
3.3 制定项目计划
3.4 项目计划审批
3.5 项目计划变更控制
3.6 Future项目规划工具介绍
3.7 如何有效地监控项目
3.7.1 为什么要进行项目监控
3.7.2 任务进度监控
3.7.3 项目开支监控
3.7.4 人员业绩记录
3.7.5 软硬件资源监控
3.7.6 风险管理
3.7.7 项目进展报告
3.8 Future项目监控工具介绍
3.9 小结
思考与练习
第4章 需求开发与需求管理
4.1 什么是需求
4.1.1 基本概念
4.1.2 需求案例
4.2 了解用户
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.4.6 开发人员写不好需求文档
4.4.7 用户经常变更需求
4.5 如何开展需求调查
4.5.1 需求调查规程
4.5.2 准备调查
4.5.3 调查与记录
4.5.4 撰写用户需求说明书
4.6 如何进行需求分析
4.6.1 问答分析法
4.6.2 建模分析法
4.6.3 做出决策
4.7 什么是好的产品需求规格说明书
4.7.1 正确
4.7.2 清楚
4.7.3 无二义性
4.7.4 一致
4.7.5 必要
4.7.6 完备
4.7.7 可实现
4.7.8 可验证
4.7.9 确定优先级
4.7.10 阐述“做什么”而不是“怎么做”
4.8 如何定义产品需求
4.8.1 规程
4.8.2 软件需求规格说明书的模板
4.9 需求确认
4.9.1 规程
4.9.2 需求评审
4.9.3 需求承诺
4.10 需求跟踪
4.11 需求变更控制
4.12 Future需求管理工具介绍
4.13 小结
思考与练习
第5章 软件系统设计
5.1 软件系统设计的核心内容
5.2 漫谈设计模式
5.3 体系结构设计
5.3.1 体系结构设计原则
5.3.2 体系结构设计的规程与模板
5.3.3 谈谈层次结构
5.4 用户界面设计
5.4.1 什么是好的用户界面
5.4.2 用户界面设计原则
5.4.3 用户界面设计的规程与模板
5.4.4 示例及详细的设计规则
5.5 数据库设计
5.5.1 数据库设计的主要困难与对策
5.5.2 数据库设计的规程与模板
5.6 模块设计
5.6.1 何为“模块”与“模块化”
5.6.2 模块设计原则
5.6.3 模块设计的规程与模板
5.7 数据结构与算法设计理念
5.8 小结
思考与练习
第6章 软件实现
6.1 软件实现的流程
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.3.4 源代码的版本管理
6.3.5 正常作息
6.4 代码审查
6.5 开发小组内部测试
6.6 调试改错的方法
6.7 完善性工作
6.8 小结
思考与练习
第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.2.5 集成测试
7.2.6 系统测试
7.2.7 验收测试
7.2.8 回归测试
7.3 测试人员的组织
7.3.1 Microsoft公司的经验教训
7.3.2 测试心理学
7.3.3 如何组织测试人员
7.3.4 避免开发人员与测试人员产生矛盾
7.4 企业的测试策略
7.4.1 一些指导方针
7.4.2 如何合理地减少测试工作量
7.4.3 测试何时结束
7.4.4 需求经常变更怎么办
7.4.5 奖励机制
7.5 测试规范
7.5.1 流程图
7.5.2 测试的“启动准则”和“完成准则”
7.5.3 测试计划
7.5.4 测试用例
7.5.5 测试报告
7.6 软件系统的主要测试内容及技术
7.6.1 接口与路径测试
7.6.2 功能测试
7.6.3 健壮性测试
7.6.4 性能测试
7.6.5 用户界面测试和评估
7.6.6 信息安全性测试
7.6.7 压力测试
7.6.8 可靠性测试
7.6.9 安装/反安装测试
7.7 小结
思考与练习
第8章 软件维护
8.1 什么是软件维护
8.2 影响软件维护代价的主要因素
8.3 怎样进行软件维护
8.4 再生工程
8.4.1 什么是再生工程
8.4.2 重构
8.4.3 逆向工程
8.4.4 前向工程
8.5 小结
思考与练习
第9章 软件质量管理
9.1 软件的质量属性和质量要素
9.2 商业目标决定质量目标
9.3 质量保证能够保证质量吗
9.4 质量人员的状况
9.4.1 郁闷的质量人员
9.4.2 路在何方
9.4.3 赞美诗
9.5 全面软件质量管理
9.5.1 模型
9.5.2 质量人员的职责
9.5.3 质量管理计划
9.5.4 技术评审
9.5.5 软件测试
9.5.6 过程检查
9.5.7 缺陷跟踪工具
9.6 Future质量管理工具介绍
9.7 小结
思考与练习
第10章 软件配置管理
10.1 什么是软件配置管理
10.2 为什么需要软件配置管理
10.3 人的问题
10.4 软件配置管理规范
10.4.1 概念与流程
10.4.2 配置管理计划
10.4.3 版本控制规则
10.4.4 变更控制规则
10.4.5 配置库操作
10.4.6 配置审计
10.5 常用配置管理工具
10.5.1 SourceSafe
10.5.2 CVS
10.5.3 ClearCase
10.5.4 Future配置管理工具介绍
10.6 小结
思考与练习
第11章 软件外包管理
11.1 软件外包管理流程
11.2 选择承包商
11.3 签订外包合同
11.4 监控外包开发过程
11.5 成果验收
11.6 Future合同管理工具介绍
11.7 小结
思考与练习
参考文献