第1章 软件开发项目的前期准备 1
1.1 计算机软件概述 1
1.1.1 计算机软件概念 1
1.1.2 软件的分类 3
1.1.3 软件工程的历史及发展 4
1.2 软件的生存周期 7
1.2.1 软件生存周期及各阶段的工作 7
1.2.2 软件生存周期各阶段的文档编制 12
1.3 软件开发常用模型 15
1.3.1 瀑布模型 15
1.3.2 增量模型 16
1.3.3 螺旋模型 17
1.3.4 变换模型 18
1.3.5 喷泉模型 19
1.3.6 智能模型 20
1.3.7 WINWIN模型 20
1.3.8 原型实现模型 21
1.3.9 RAD模型 22
1.3.10 并发开发模型 23
1.3.11 软件开发常用模型小结 24
1.4 软件开发方法和软件开发工具 25
1.4.1 软件开发环境 25
1.4.2 软件开发方法综述 26
1.4.3 软件开发工具 28
本章小结 28
习题1 29
课后实训题 29
第2章 可行性分析 31
2.1 可行性分析的任务 31
2.2 可行性分析的要素 32
2.2.1 技术可行性分析 32
2.2.2 经济可行性分析 33
2.2.3 社会可行性分析 34
2.2.4 法律方面的可行性 34
2.3 可行性分析的步骤 34
2.4 可行性分析报告 35
2.4.1 可行性分析报告的格式 35
2.4.2 可行性分析报告范例 39
本章小结 46
习题2 46
课后实训题 46
第3章 需求分析 48
3.1 需求分析的任务 48
3.1.1 需求分析的基本概念 48
3.1.2 需求分析的重要性 49
3.1.3 需求分析的任务 50
3.2 需求分析的过程 51
3.2.1 需求分析的过程 51
3.2.2 需求分析的注意事项 53
3.2.3 需求风险 56
3.3 数据流程图 57
3.3.1 数据流程图相关图示 57
3.3.2 数据流程图的设计 59
3.3.3 分层数据流图 60
3.4 数据字典 61
3.5 需求规格说明书 63
本章小结 74
习题3 76
课后实训题 76
第4章 概要设计 77
4.1 软件概要设计的任务 77
4.2 软件概要设计的实施 79
4.2.1 面向对象设计 79
4.2.2 数据库设计 84
4.2.3 用户界面设计 92
4.2.4 代码设计 94
4.3 概要设计说明书 95
4.3.1 引言 95
4.3.2 任务概述 96
4.3.3 总体设计 97
4.3.4 数据结构设计 97
4.3.5 运行设计 100
4.3.6 出错处理设计 100
4.3.7 安全保密设计 100
4.3.8 维护设计 100
本章小结 100
习题4 101
课后实训题 101
第5章 详细设计 102
5.1 软件详细设计的任务 102
5.1.1 软件详细设计的基本任务 102
5.1.2 软件详细设计的原则 103
5.2 图书馆书目查询管理系统的设计 105
5.2.1 系统功能模块结构 105
5.2.2 系统详细设计 107
本章小结 124
习题5 125
课后实训题 125
第6章 编码 126
6.1 建立编码风格 126
6.2 编码方法 133
6.2.1 传统(结构化)编程方法 133
6.2.2 面向对象的程序设计方法 136
6.3 调试过程和方法 138
本章小结 141
习题6 142
课后实训题 142
第7章 软件测试 143
7.1 软件测试概述 143
7.2 软件测试与软件开发流程的关系 144
7.3 软件测试方法划分 145
7.4 黑盒测试的相关方法 149
7.5 白盒测试的相关方法 151
7.6 软件测试流程的相关方法 152
7.7 测试用例设计 160
本章小结 181
习题7 182
课后实训题 182
第8章 软件实施 183
8.1 系统实施概述 183
8.2 系统实施过程 184
8.3 系统实施原则 187
本章小结 189
习题8 191
课后实训题 191
第9章 软件维护 192
9.1 软件维护基础理论 192
9.2 软件维护活动的内容 195
本章小结 202
习题9 203
课后实训题 203
附录A Visual Studio 2008的安装 204
附录B IIS的安装与配置 209
参考文献 212