《现代软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:张晓龙主编;顾进广,刘茂福副主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:7302261391
  • 页数:264 页
图书介绍:

第1章 现代软件工程概述 1

1.1 软件 1

1.1.1 软件的概念 1

1.1.2 软件的特点 1

1.1.3 软件的分类 2

1.2 软件危机 3

1.2.1 软件危机的出现 3

1.2.2 产生软件危机的原因 4

1.2.3 消除软件危机的途径 5

1.3 软件工程 6

1.3.1 软件工程的定义 6

1.3.2 软件工程的基本原理 7

1.3.3 软件工程的框架 8

1.3.4 软件工程方法学 8

1.4 软件的生命周期 11

1.4.1 软件生命周期及其各个阶段 11

1.4.2 软件生命周期模型 14

1.5 软件工程的目标和原则 21

1.5.1 软件工程的基本目标 21

1.5.2 软件工程的原则 22

1.6 本章小结 23

习题1 23

第2章 面向对象软件开发方法 24

2.1 面向对象基本思想 24

2.2 面向对象基本概念 25

2.3 面向对象方法 29

2.3.1 面向对象方法简介 29

2.3.2 几种典型的面向对象方法 30

2.3.3 面向对象方法主要优点 32

2.4 面向对象开发统一过程 34

2.4.1 统一过程简介 34

2.4.2 统一过程开发阶段 35

2.4.3 统一过程成分 36

2.5 本章小结 37

习题2 37

第3章 面向对象分析与设计技术 39

3.1 面向对象分析技术 39

3.1.1 OOA简介 39

3.1.2 OOA模型 40

3.1.3 OOA过程 41

3.2 面向对象设计技术 44

3.2.1 OOD简介 44

3.2.2 OOD准则 44

3.2.3 OOD模型 46

3.2.4 OOD过程 48

3.3 OOA与OOD的关系 53

3.4 本章小结 54

习题3 54

第4章 UML建模技术 55

4.1 面向对象建模及UML简介 55

4.1.1 面向对象建模 55

4.1.2 UML简介 56

4.2 用例视图 57

4.3 动态模型图 61

4.3.1 活动图 61

4.3.2 顺序图 64

4.3.3 协作图 67

4.3.4 状态图 69

4.4 静态模型图 72

4.4.1 类图 72

4.4.2 组件图 75

4.4.3 配置图 76

4.5 本章小结 77

习题4 77

第5章 软件复用基础 78

5.1 软件复用概述 78

5.1.1 软件复用的基本概念 78

5.1.2 可供复用的软件要素 80

5.2 支持软件复用的软件工程 81

5.2.1 支持复用的软件工程要素 81

5.2.2 面向软件复用的软件工程 86

5.2.3 基于构件的软件开发 86

5.2.4 软件复用实例 89

5.3 本章小结 90

习题5 90

第6章 基于组件与Web Service的软件开发技术 92

6.1 CORBA组件系统 92

6.1.1 什么是CORBA 92

6.1.2 CORBA体系结构 94

6.2 COM+组件系统 98

6.3 J2EE组件系统 100

6.4 Web Service基础 101

6.5 本章小结 104

习题6 104

第7章 软件设计模式 105

7.1 软件设计模式基础 105

7.1.1 什么是设计模式 105

7.1.2 设计模式的作用 106

7.1.3 设计模式的描述 106

7.1.4 如何使用设计模式 107

7.2 设计模式的分类 107

7.2.1 GOF设计模式分类 107

7.2.2 POSA模式分类 108

7.3 创建型(Creational)设计模式 109

7.3.1 Factory Method(工厂方法)模式 109

7.3.2 Abstract Factory(抽象工厂)模式 109

7.3.3 Builder(生成器)模式 110

7.3.4 Prototype(原型)模式 110

7.3.5 Singleton(单件)模式 111

7.4 结构型(Structural)设计模式 111

7.4.1 Adapter(适配器对象)模式 111

7.4.2 Bridge(桥接)模式 112

7.4.3 Composite(组合)模式 112

7.4.4 Decorator(装饰)模式 113

7.4.5 Facade(外观)模式 113

7.4.6 Flyweight(享元)模式 114

7.4.7 Proxy(代理)模式 115

7.5 行为型(Behavioral)设计模式 115

7.5.1 Template Method(模板方法)模式 116

7.5.2 Interpreter(解释器)模式 116

7.5.3 Chain of Responsibility(职责链)模式 117

7.5.4 Command(命令)模式 117

7.5.5 Iterator(迭代器)模式 118

7.5.6 Mediator(中介者)模式 118

7.5.7 Memento(备忘录)模式 119

7.5.8 Observer(观察者)模式 119

7.5.9 State(状态)模式 120

7.5.10 Strategy(策略)模式 120

7.5.11 Visitor(访问者)模式 121

7.6 DrawCLI中设计模式的应用 122

7.6.1 DrawCLI基础 122

7.6.2 DrawCLI中的设计模式 122

7.6.3 Prototype(原型)模式 123

7.6.4 Observer(观察者) 123

7.6.5 Chain of Responsibility(职责链)模式 124

7.7 本章小结 125

习题7 125

第8章 软件体系结构 127

8.1 软件体系结构基础 127

8.1.1 软件体系结构的定义 127

8.1.2 研究软件体系结构的目的 128

8.1.3 软件体系结构的研究角度 128

8.1.4 软件体系结构的研究热点 129

8.2 基本的软件体系结构风格 130

8.2.1 管道和过滤器 130

8.2.2 数据抽象和面向对象组织 131

8.2.3 基于事件的隐式调用 131

8.2.4 分层系统 132

8.2.5 仓库系统 133

8.3 基于软件体系结构的开发模式 133

8.4 软件体系结构应用实例 134

8.5 本章小结 135

习题8 135

第9章 敏捷软件过程 137

9.1 敏捷实践 137

9.1.1 敏捷联盟 137

9.1.2 开发原则 138

9.2 敏捷开发方法 139

9.3 XP——极限编程 140

9.3.1 XP的基础——实践 140

9.3.2 XP方法的价值和规则 140

9.3.3 XP方法的12个核心实践 141

9.3.4 XP案例分析 146

9.4 Scrum 151

9.4.1 Scrum简史 151

9.4.2 Scrum的生产测度 152

9.4.3 Scrum的开发方式 152

9.4.4 Scrum实践 153

9.4.5 监测进展 155

9.4.6 Scrum方法的实践效果和发展方向 155

9.4.7 Scrum案例分析 156

9.4.8 小结 159

9.5 DSDM——动态系统开发方法 159

9.5.1 DSDM原理 159

9.5.2 DSDM过程 160

9.6 Crystal方法 161

9.6.1 Crystal应用(7大体系特征) 162

9.6.2 Crystal框架流程 164

9.7 FDD特性驱动开发 164

9.7.1 FDD过程模型 164

9.7.2 FDD与其他方法的相似和区别 165

9.8 ASD自适应软件开发 166

9.8.1 面向变化的生命周期 166

9.8.2 基本自适应软件开发生命周期 167

9.9 本章小结 169

习题9 170

第10章 软件测试技术与工具 172

10.1 常用的软件测试方法 172

10.1.1 黑盒测试 172

10.1.2 白盒测试 172

10.1.3 基于风险的测试 173

10.1.4 基于模型的测试 174

10.2 常见的软件测试类型 174

10.2.1 BVT 174

10.2.2 Scenario Tests(基于用户实际应用场景的测试) 175

10.2.3 Smoke Test 175

10.2.4 测试实例 175

10.3 软件测试技术 178

10.3.1 自动化测试和手工测试 178

10.3.2 探索性测试 179

10.3.3 单元测试 180

10.3.4 单元级别性能测试 181

10.3.5 数据库性能测试 184

10.3.6 压力测试 184

10.3.7 软件的安全性测试 184

10.3.8 软件安装/卸载测试 185

10.3.9 环境测试 186

10.4 自动化测试 187

10.4.1 自动化测试标准 187

10.4.2 自动化测试体系结构 188

10.4.3 自动化测试原理和方法 188

10.4.4 自动化测试实例 190

10.5 手工测试与自动化测试的应用比较 193

10.5.1 自动化测试优缺点 193

10.5.2 手工测试与自动化测试的应用比较 194

10.6 常用的软件测试工具 194

10.6.1 白盒测试工具 194

10.6.2 黑盒测试工具 195

10.6.3 性能测试工具 195

10.6.4 测试管理工具 195

10.6.5 测试案例 195

10.7 本章小结 197

习题10 197

第11章 软件项目管理 198

11.1 软件项目管理定义及特点 198

11.2 软件项目计划 199

11.2.1 软件规模估算 199

11.2.2 软件工作量估算 205

11.2.3 软件进度计划 208

11.3 软件项目风险管理 211

11.3.1 软件项目风险管理模型 212

11.3.2 软件项目风险管理过程 213

11.3.3 软件项目风险管理实施 215

11.4 软件质量管理 216

11.4.1 软件质量评价体系 216

11.4.2 软件质量管理的基础活动 217

11.5 软件配置管理(Software Configuration Management,SCM) 220

11.5.1 配置管理活动 220

11.5.2 软件配置管理工具 223

11.6 人员的组织与管理 224

11.6.1 民主制程序员组 224

11.6.2 主程序员组 225

11.6.3 现代程序员组 226

11.6.4 软件项目组 227

11.7 本章小结 228

习题11 229

第12章 软件成熟度模型与软件过程 230

12.1 能力成熟度模型 230

12.1.1 CMM的诞生 231

12.1.2 CMM的发展 231

12.1.3 CMM体系结构 232

12.1.4 实施CMM的必要性 239

12.1.5 CMM在中国的现状 240

12.1.6 CMM实施的思考 240

12.2 能力成熟度模型集成 241

12.2.1 CMMI的背景 242

12.2.2 CMMI内容 242

12.2.3 CMMI的实施 243

12.2.4 CMMI与CMM差别 244

12.3 个人软件过程 244

12.3.1 PSP概述 245

12.3.2 PSP的基本原理 245

12.3.3 PSP的结构 246

12.3.4 PSP的过程 247

12.3.5 PSP的现状和发展趋势 252

12.4 团队软件过程 253

12.4.1 TSP概述 253

12.4.2 TSP团队创建 254

12.4.3 TSP团队启动 255

12.4.4 TSP的基本原理 256

12.4.5 TSP框架结构与流程 257

12.4.6 TSP度量元素 260

12.4.7 实施TSP的条件 260

12.5 能力成熟度模型与软件过程之间的关系 261

12.5.1 TSP、PSP对CMM的支持 261

12.5.2 CMM、TSP、PSP的有机结合 262

12.6 本章小结 263

习题12 263