基础篇 3
第1章 操作系统 3
1.1 操作系统的概念 3
1.1.1 操作系统在软件中的地位 3
1.1.2 操作系统的形成 5
1.1.3 操作系统的类型 6
1.2 操作系统的用户接口 10
1.2.1 操作系统的作业管理 10
1.2.2 操作系统的命令接口 11
1.2.3 操作系统的程序接口 12
1.3 操作系统的管理功能 13
1.3.1 进程管理 13
1.3.2 存储管理 19
1.3.3 设备管理 23
1.3.4 文件管理 27
1.4 常见的几种操作系统 31
1.4.1 DOS操作系统 31
1.4.2 Windows操作系统 32
1.4.3 UNIX操作系统 33
1.4.4 Linux操作系统 33
小结 34
习题 35
第2章 数据的线性结构 36
2.1 数据的逻辑关系和存储表示 36
2.1.1 基本概念和术语 36
2.1.2 数据的逻辑结构 38
2.1.3 数据的存储方式 39
2.2 线性表的基本概念 41
2.2.1 线性表的定义 41
2.2.2 线性表的基本运算 41
2.3 线性表的顺序存储 42
2.3.1 顺序表的表示方法 42
2.3.2 顺序表上基本运算的实现 43
2.4 线性表的链式存储 46
2.4.1 单链表 46
2.4.2 单链表上基本运算的实现 48
2.4.3 线性表的其他链式存储 51
2.5 栈 53
2.5.1 栈的定义和基本运算 53
2.5.2 栈的存储结构和运算的实现 54
2.6 队列 57
2.6.1 队列的定义和基本运算 58
2.6.2 队列的存储结构和运算的实现 58
小结 61
习题 62
第3章 查找与排序 64
3.1 查找 64
3.1.1 查找的基本概念 64
3.1.2 静态查找表 65
3.1.3 散列表 69
3.2 排序 72
3.2.1 排序的基本概念与基本方法 72
3.2.2 插入排序 74
3.2.3 交换排序 77
3.2.4 选择排序 80
小结 82
习题 82
应用篇 85
第4章 软件工程概述 85
4.1 软件与软件工程 85
4.1.1 软件 85
4.1.2 软件工程 88
4.2 软件工程的研究内容 90
4.2.1 软件开发过程 90
4.2.2 软件开发方法 92
4.2.3 软件开发工具 93
4.3 软件开发模型 96
4.3.1 线性模型 96
4.3.2 快速原型模型 99
4.3.3 演化模型 100
4.3.4 基于构件的模型 102
4.3.5 形式化模型 103
小结 104
习题 105
第5章 软件开发活动 107
5.1 软件开发的基本活动 107
5.1.1 需求分析 107
5.1.2 软件设计 110
5.1.3 编码 112
5.1.4 软件测试 115
5.2 软件开发方法的变迁 116
5.2.1 程序设计的两次革命 116
5.2.2 软件开发的常见问题 117
5.3 软件开发的最佳实践 119
5.4 新一代软件开发方法 126
5.4.1 对象技术的优势 127
5.4.2 对象技术的主要特征 127
5.4.3 模型驱动的软件开发 128
小结 132
习题 132
第6章 面向对象方法 133
6.1 面向对象概述 133
6.1.1 面向对象与结构化 133
6.1.2 面向对象的概念 134
6.1.3 面向对象软件开发的优点 139
6.1.4 面向对象软件开发范型 140
6.2 面向对象软件开发 141
6.2.1 Coad & Yourdon方法 142
6.2.2 OMT方法 143
6.2.3 Booch方法 147
6.2.4 OOSE方法 148
小结 149
习题 149
第7章 统一建模语言 151
7.1 建模技术 151
7.1.1 什么是模型 151
7.1.2 建模的基本原理 152
7.2 UML概述 152
7.2.1 UML的发展历史 153
7.2.2 UML的主要特点 153
7.2.3 UML的结构 154
7.3 UML的图 159
7.3.1 用例图 159
7.3.2 类图和对象图 160
7.3.3 交互图 164
7.3.4 状态图 166
7.3.5 活动图 167
7.3.6 构件图 169
7.3.7 部署图 169
7.4 UML的应用 170
7.4.1 UML与软件开发 170
7.4.2 UML建模工具 171
7.4.3 统一过程RUP 171
小结 173
习题 173
第8章 面向对象分析和设计 175
8.1 面向对象分析 175
8.1.1 OOA的概念 176
8.1.2 OOA的过程简述 176
8.1.3 需求分析 176
8.1.4 定义类和对象 181
8.1.5 对象-关系模型 185
8.1.6 对象-行为模型 186
8.2 面向对象设计 187
8.2.1 OOD的概念 188
8.2.2 OOD的原则 188
8.2.3 OOD的过程简述 189
8.2.4 系统设计 191
8.2.5 对象设计 194
8.3 小型网络学习系统的分析和设计 196
8.3.1 面向对象的分析 196
8.3.2 面向对象的设计 201
小结 204
习题 205
第9章 面向对象的测试 206
9.1 软件测试的概念 206
9.1.1 测试的目的和指导原则 206
9.1.2 软件测试的特性 207
9.1.3 软件测试的种类及测试的文档 207
9.2 黑盒测试 208
9.2.1 等价分类法 208
9.2.2 边界值分析法 209
9.2.3 错误猜测法 210
9.3 白盒测试 211
9.3.1 逻辑覆盖测试法 211
9.3.2 路径测试法 212
9.4 多模块程序的测试 214
9.4.1 单元测试 215
9.4.2 集成测试 215
9.4.3 确认测试 216
9.4.4 系统测试 217
9.4.5 终止测试的标准 217
9.5 面向对象的测试方法 217
9.5.1 面向对象软件的测试 217
9.5.2 面向对象软件测试用例设计 219
小结 220
习题 220
第10章 软件项目管理 222
10.1 软件的度量 222
10.1.1 项目度量的内容 222
10.1.2 过程度量 224
10.2 软件估算模型 224
10.3 软件成本估计 226
10.4 人员的分配与组织 227
10.5 项目进度安排 229
小结 232
习题 232
实践篇 235
实验1 Windows XP安装及资源管理应用 235
实验2 线性表及其应用 243
实验3 栈和队列及其应用 254
实验4 Rational Rose的使用 262
实验5 建立用例模型 264
实验6 建立活动图 267
实验7 “在线选修课程管理系统”分析与设计 270
实验8 “图书馆管理系统”分析与设计 285
参考文献 286