第1章 概论 1
1.1什么是软件 2
1.2软件的发展 3
1.3软件的版本 4
1.4软件的设计开发 5
第2章 软件与程序 6
2.1什么是程序 6
2.2软件与程序关系 9
第3章 软件与软件工程 10
3.1软件生命周期 10
3.1.1软件生命周期概述 10
3.1.2软件生命周期模型 12
3.2软件危机 14
3.2.1软件危机的主要表现 15
3.2.2软件危机的原因 16
3.2.3软件危机的解决途径 18
3.2.4相关因素 19
3.2.5软件危机的具体表现 20
3.3软件工程 21
3.3.1什么是软件工程 22
3.3.2软件工程的原理和目标 23
3.3.3软件工程的原则 23
3.3.4软件工程项目管理的任务 24
3.4面向对象软件设计开发 25
3.4.1面向对象的基本概念 26
3.4.2面向对象的基本特征 26
3.4.3面向对象的软件设计开发 30
3.5软件测试 34
3.5.1单元测试 35
3.5.2集成测试 36
3.5.3确认测试 44
3.5.4系统测试 45
3.5.5验收测试 46
3.6软件测试的现状与前景 56
3.7软件测试的相关问题 59
第4章 软件设计经验与技巧 64
4.1软件工程过程中经验与技巧 64
4.2程序设计经验与技巧 75
4.3个人与团队是软件开发永远的核心 80
4.4用最少代码降低安全风险 84
4.5程序员必须注意的十大安全技巧 87
第5章 软件设计策略 98
5.1软件架构 98
5.2软件架构设计理解 112
5.3软件项目计划与管理 115
5.3.1软件项目的计划 117
5.3.2软件项目的控制 118
5.3.3软件项目管理的组织模式 119
5.3.4软件项目管理的内容 120
5.3.5编写软件项目计划书 120
5.3.6软件配置管理 121
5.3.7人员组织与管理 121
5.3.8软件过程能力评估 124
5.3.9为什么要有项目管理 125
5.3.10为什么要有专职的项目经理 126
5.3.11项目组的范围界限在哪里 126
5.3.12怎样才能算是一个成功的项目 127
5.3.13软件项目管理的成功原则 127
5.3.14软件项目管理在管理思维中的空白 131
5.4软件项目管理总体流程设计 134
5.5项目计划书的编写 137
5.5.1引言 137
5.5.2项目概述 140
5.5.3项目团队组织 143
5.5.4实施计划 144
5.5.5支持条件 148
5.5.6预算 149
5.5.7关键问题 150
5.5.8专题计划要点 150
5.6软件项目管理中十个误区 150
第6章 软件质量保证 154
6.1软件质量保证的基本目标 154
6.2软件质量 155
6.2.1软件质量的由来 155
6.2.2软件质量的现在 156
6.2.3软件质量的未来 156
6.3软件质量的理论探索 157
6.3.1过程的认识 157
6.3.2生产线的隐喻 158
6.3.3 SQA和其他工作的组合 158
6.3.4 QA和QC 159
6.3.5 QA和SEPG 160
6.3.6 QA和组织级的监督管理 161
6.4 SQA的工作内容和工作方法 161
6.4.1计划 161
6.4.2审计/证实 162
6.4.3问题跟踪 162
6.5 SQA的素质 162
6.6 SQA活动 162
6.7正式技术评审 163
6.7.1目标 164
6.7.2评审会议 164
6.7.3评审总结报告 164
6.7.4评审指导原则 164
6.8质量保证与检验 165
第7章 软件保护 166
7.1软件的许可分类 166
7.2保护软件知识产权 168
7.3软件获得法律保护的条件 169
7.4软件著作权的归属 169
7.5软件的技术保护 171
第8章 后记 173
8.1我国软件产业的发展现状 173
8.2我国发展软件产业存在的问题 174
8.3中国发展软件产业的对策建议 175
附录 计算机软件保护条例 178