第1章 软件和软件工程 1
1.1 软件的特件 1
1.2 软件工程的概念 4
1.3 软件工一程一工程专业的一个分支 5
1.4 软件工程中的相关人员 6
1.5 软件质量 7
1.6 软件工程项目 9
1.7 软件项目中常见的活动 10
1.8 本书强调的八个主题 12
1.9 软件工程总体的困难与风险 15
小结 16
更多信息 16
第2章 面向对象概述 19
2.1 面向对象的概念 19
2.2 类和对象 21
2.3 实例变量 24
2.4 方法、操作与多态 25
2.5 将类组织为继承层次结构 26
2.6 继承层次结构对多态和变量声明的影响 30
2.7 定义面向对象的概念 36
2.8 详细例子:操作邮政编码的程序 37
2.9 详细例子:表示几何点的类 39
2.10 选择程序设计语言和面向对象程序设计中的困难与风险 41
更多信息 41
小结 42
第3章 基于重用技术进行软件开发 45
3.1 重用:在他人的工作与经验的基础上构建 45
3.2 将可重用性与重用引入软件工程 46
3.3 框架:可重用的子系统 48
3.4 客户机一服务器体系结构 51
3.5 构建客户机一服务器系统的必要技术 58
3.6 OCSF 60
3.7 OCSF的基本描述——客户端 61
3.8 OCSF的基本描述——服务器端 63
3.9 使用OCSF的一个即时消息应用程序 66
3.10 考虑可重用技术和客户机一服务器系统时的困难与风险 67
小结 68
更多信息 69
4.1 领域分析 73
第4章 需求工程 73
4.2 软件项目的起始点 76
4.3 定义问题和范围 76
4.4 什么是需求 79
4.5 需求的类型 79
4.6 需求收集与分析技术 84
4.7 需求文档的类型 89
4.8 需求评审 91
4.9 管理变化的需求 95
4.10 详细例子:基于GPS的汽车导航辅助系统(GANA) 96
4.11 详细例子:SimpleChatl即时消息程序的功能需求 98
4.12 领域和需求分析中的困难与风险 101
小结 102
更多信息 103
第5章 用类进行建模 105
5.1 UML的概述 105
5.2 UML类图的要素 107
5.3 关联与多重性 108
5.4 泛化 113
5.5 实例图 116
5.6 类图的高级特征 118
5.7 详细例子:有关族谱的类图 123
5.8 类图的开发过程 125
5.9 用Java实现类图 136
5.10 创建类图的困难与风险 138
小结 138
更多信息 138
6.1 模式简介 141
第6章 使用设计模式 141
6.2 抽象-发生模式 142
6.3 通用层次模式 144
6.4 玩家-角色模式 146
6.5 单件模式 147
6.6 观察者模式 148
6.7 委托模式 149
6.8 适配器模式 151
6.9 外观模式 152
6.11 只读接口模式 153
6.10 恒定模式 153
6.12 代理模式 154
6.13 详细例子:OCSF的可观察层 156
6.14 使用设计模式的困难与风险 159
小结 159
更多信息 160
第7章 关注用户及其任务 161
7.1 以用户为中心的设计 161
7.2 用户的特征 163
7.3 开发系统用例模型 164
7.4 用户界面设计基础 171
7.5 可用性原则 174
7.6 用户界面评估 180
7.7 用Java实现简单的GUI 182
7.8 用例建模型和用户界面设计的困难与风险 185
小结 186
更多信息 186
第8章 交互和行为建模 189
8.1 交互图 189
8.2 状态图 194
8.3 活动图 200
8.4 基于交互图和状态图实现类 201
8.5 交互和行为建模的困难与风险 204
小结 205
更多信息 205
第9章 软件架构与设计 207
9.1 设计过程 207
9.2 创建良好设计的原则 210
9.3 做出好的设计决策的技巧 224
9.4 软件体系结构 227
9.5 结构化模式 231
9.6 编写好的设计文档 238
9.7 详细例子:为SimpleChat即时消息应用程序没计一个功能 239
9.8 设计的困难与风险 240
小结 240
更多信息 241
第10章 测试与审查——高质量的保证 243
10.1 基本定义 243
10.2 有效与高效测试 244
10.3 常规算法中的缺陷 249
10.4 数值算法中的缺陷 254
10.5 定时与协作缺陷:死锁、活锁与临界竞争 255
10.6 处理压力与异常情况的缺陷 258
10.7 文档缺陷 260
10.8 编写正式的测试用例与测试计划 261
10.9 测试大型系统的策略 263
10.10 审查 268
10.11 质量保证概述 270
10.12 详细例子:SimpleChatl即时消息系统阶段2的测试用例 272
10.13 质量保证的困难与风险 275
小结 276
更多信息 276
第11章 软件过程管理 279
11.1 什么是项目管理 279
11.2 软件过程模型 280
11.3 成本估算 285
11.4 组建软件工程小组 290
11.5 项目进度安排和跟踪 293
11.6 项目计划的内容 295
11.7 项目管理的困难与风险 296
小结 297
参考信息 297
第12章 回顾 299
12.1 理解客户与用户 299
12.2 基于可靠的原则和可重用技术进行开发 299
12.4 使用UML进行可视化建模 302
12.3 面向对象 302
12.5 需求与没计中对各种选择方案的评估 303
12.6 迭代开发 303
12.7 利用文档有效地交流 303
12.8 软件工程活动的风险管理 304
12.9 结束语 305
附录A 本书所用的UML符号小结 307
附录B 本书建议的文档类型小结 311
附录C 系统描述 313
词汇表 317