《软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:方木云主编;杭婷婷,刘辉,周兵副主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302413790
  • 页数:343 页
图书介绍:以软件工程的目标(研究如何提高软件生产效率和质量、降低生产成本是该学科的目标)来组织和选材,也就是以软件形态、开发方法、开发工具、管理、实践这5个方面来组织教材,选取了近10年来软件工程领域的最新发展。教材脉络清楚、内容新颖、理论和实践并重是本书的特色。

基本概念篇 3

第1章 基本概念 3

1.1 软件 3

1.1.1 软件定义 3

1.1.2 软件分类 4

1.2 软件危机 5

1.3 软件工程 7

1.4 计算模型 8

1.4.1 单机计算模型 8

1.4.2 分布计算模型 8

1.4.3 并行计算模型 9

1.4.4 网格计算模型 9

1.4.5 普适计算模型 10

1.4.6 云计算模型 10

1.5 计算服务 11

思考题 11

软件方法篇·基于软件过程的方法 15

第2章 瀑布型方法 15

2.1 软件过程 15

2.1.1 软件过程的提出 15

2.1.2 软件过程的含义 15

2.1.3 软件过程的规范 16

2.1.4 软件工程的评估与改进 17

2.2 瀑布型方法 18

思考题 20

第3章 快速原型方法 21

3.1 快速原型方法的产生 21

3.2 快速原型方法 22

3.2.1 进化式原型开发 24

3.2.2 抛弃式原型开发 25

3.3 快速原型方法案例 27

思考题 28

第4章 其他方法 29

4.1 增量方法 29

4.1.1 增量方法的产生 29

4.1.2 增量方法 29

4.1.3 增量方法案例 31

4.2 螺旋方法 33

4.3 敏捷方法 34

4.3.1 敏捷方法的产生 34

4.3.2 敏捷方法 36

4.3.3 敏捷方法案例 37

4.4 面向复用的方法 40

4.5 形式化方法 41

4.6 净室方法 42

思考题 43

第5章 需求分析 44

5.1 需求分析的概念 44

5.1.1 软件需求定义 44

5.1.2 软件需求分析 45

5.1.3 需求分析的要求 46

5.1.4 需求分析的重要性 46

5.2 需求分析的任务 47

5.2.1 需求分析的过程 47

5.2.2 需求分析的内容 48

5.2.3 需求分析的任务 49

5.3 需求分析的方法 50

5.4 需求描述工具 53

5.4.1 数据流图 53

5.4.2 数据字典 54

5.4.3 结构化语言 55

5.4.4 判定表 56

5.4.5 判定树 57

5.5 需求分析文档 58

5.5.1 需求文档完成的目标 58

5.5.2 需求文档的特点 59

5.5.3 需求文档编写的一般原则 59

5.5.4 需求文档编写格式 60

5.6 进行需求评审 60

5.6.1 需求评审的方法 60

5.6.2 需求评审的内容 61

5.6.3 需求评审的测试 62

思考题 62

第6章 概要设计 63

6.1 概要设计概论 63

6.2 概要设计原理 64

6.2.1 模块化 64

6.2.2 抽象化 65

6.2.3 逐步求精 66

6.2.4 信息隐藏和局部化 67

6.2.5 模块独立性 67

6.2.6 模块层次化 69

6.2.7 启发式规则 70

6.3 概要设计方法总结 71

6.4 概要设计文档 71

思考题 72

第7章 界面设计 73

7.1 用户界面设计 73

7.2 用户界面设计原则 74

7.3 信息输入方式 76

7.4 信息输出方式 77

7.5 帮助系统 80

7.5.1 错误消息 81

7.5.2 用户文档 83

7.6 界面评价 83

思考题 85

第8章 详细设计 86

8.1 详细设计的作用 86

8.2 详细设计的工具 87

思考题 88

第9章 测试 89

9.1 软件测试定义 89

9.1.1 测试的目的 89

9.1.2 测试的基本原则 90

9.2 软件测试模型 90

9.3 软件测试方法 93

9.3.1 黑盒测试方法 93

9.3.2 白盒测试方法 95

9.3.3 灰盒测试方法 97

9.4 测试过程与测试文档 98

思考题 99

第10章 维护和演化 100

10.1 软件维护 100

10.2 软件演化的产生 101

10.3 软件演化理论 102

10.3.1 演化与维护的关系 102

10.3.2 软件演化的分类 103

思考题 103

软件方法篇·基于构造粒度的方法 107

第11章 面向对象方法 107

11.1 UML概述 107

11.1.1 UML产生的背景 107

11.1.2 UML定义 108

11.2 UML的研究内容 109

11.2.1 UML语言的定义 109

11.2.2 UML的图形表示法 110

11.3 UML建模过程 113

11.3.1 UML建模过程 114

11.3.2 UML在RUP中的应用 114

思考题 115

第12章 面向构件方法 116

12.1 软件体系结构的形成 116

12.1.1 无体系结构阶段 116

12.1.2 萌芽阶段 116

12.1.3 初级阶段 117

12.1.4 高级阶段 117

12.2 软件体系结构的概念 118

12.3 软件体系结构的要素 119

12.3.1 构件 119

12.3.2 连接件 121

12.3.3 约束(配置) 122

12.4 软件体系结构的作用 123

12.5 基于体系结构的软件开发过程 124

思考题 131

第13章 面向Agent方法 132

13.1 面向Agent的技术 132

13.1.1 Agent的基本概念 133

13.1.2 Agent的体系架构 134

13.1.3 Agent的组织类型 135

13.1.4 Agent与组件的对比 136

13.1.5 语义复用的Agent和组件 138

13.2 面向Agent的软件工程 140

13.2.1 面向Agent的研究内容 140

13.2.2 面向Agent的开发过程 142

13.3 面向Agent的经典开发方法 144

13.3.1 Gaia方法 144

13.3.2 Tropos方法 145

13.3.3 MASE方法 146

思考题 149

第14章 面向SOA方法 150

14.1 面向服务体系架构的产生 150

14.1.1 传统的软件体系结构 150

14.1.2 基于组件的软件体系结构 151

14.1.3 面向服务体系阶段 152

14.2 SOA的基本概念 153

14.2.1 SOA的定义 153

14.2.2 SOA的架构 154

14.2.3 SOA的优点 156

14.3 支持SOA的Web Service技术 157

14.3.1 SOA的基本原则 157

14.3.2 基于SOA的解决方案 158

14.3.3 Web Service技术 160

14.3.4 SOA架构的不足 162

14.4 适于SOA的建模方法 164

14.4.1 MDA 164

14.4.2 敏捷方法 164

14.4.3 SOA的五视图法 165

14.5 基于SOA架构的软件开发方法 166

14.5.1 面向服务的架构 167

14.5.2 基于SOA架构技术的优势 167

14.5.3 SOA应用的构建步骤 169

14.5.4 SOAD与传统软件开发的区别 170

思考题 171

第15章 面向云计算方法 172

15.1 云计算的基本概念和主要特征 172

15.1.1 云计算的基本概念 172

15.1.2 云计算的主要特征 174

15.1.3 云计算的分类 176

15.1.4 云计算与网格计算 177

15.1.5 云计算的现状和发展趋势 179

15.2 云计算的原理与关键技术 182

15.2.1 云计算的原理 182

15.2.2 云计算的实现机制 182

15.2.3 Google云计算技术 183

思考题 207

软件工具篇 211

第16章 CASE工具 211

16.1 CASE工具概念 211

16.1.1 CASE定义 211

16.1.2 CASE相关概念 211

16.1.3 CASE开发环境 212

16.1.4 CASE工具组成 212

16.2 CASE优势 213

16.3 CASE工具实例 213

16.3.1 CASE工具的产生 213

16.3.2 常见CASE的工具 213

16.4 CASE发展趋势 217

思考题 219

软件管理篇 223

第17章 软件项目 223

17.1 项目立项 223

17.1.1 项目基本概念 223

17.1.2 软件项目的特点 224

17.1.3 软件项目的立项 225

17.1.4 软件立项文档 227

17.2 项目招投标 227

17.2.1 项目招标与投标的概念 228

17.2.2 项目招标与投标的过程 229

17.2.3 招标书与投标书的编写 230

17.3 项目合同签署 231

17.3.1 合同的概念 232

17.3.2 签订合同 232

思考题 233

第18章 人员管理 234

18.1 软件开发人员构成 234

18.2 人思维的局限性 236

18.2.1 记忆结构 236

18.2.2 问题的解决 238

18.2.3 工作动力 238

18.3 小组协作 240

18.3.1 小组的构成 240

18.3.2 小组的凝聚力 241

18.3.3 小组的沟通 242

18.4 选择和留住职员 243

18.5 激励制度 244

思考题 245

第19章 进度管理 246

19.1 项目进度 246

19.2 条形图和活动网络图 247

思考题 250

第20章 成本管理 251

20.1 软件成本和报价 251

20.2 软件生产率 252

20.3 成本估算技术 255

20.4 成本估算模型 257

思考题 258

第21章 质量管理 259

21.1 软件质量定义 259

21.2 软件质量模型 259

21.3 软件质量保证 261

21.3.1 质量标准 261

21.3.2 质量规划 263

21.3.3 质量控制 264

21.3.4 质量评估 265

思考题 268

第22章 风险管理 269

22.1 风险识别 270

22.2 风险分析 271

22.3 风险规划 272

22.4 风险监控 273

22.5 常见风险及其处理 274

思考题 275

软件实践篇 279

第23章 基于软件过程方法的实验 279

23.1 需求分析 279

23.1.1 数据流图 279

23.1.2 数据字典 280

23.2 概要设计 281

23.3 软件界面设计 282

23.3.1 菜单设计 282

23.3.2 窗体设计 283

23.4 详细设计 283

23.5 软件编码 284

23.6 软件测试 284

第24章 基于构造粒度方法的实验 286

24.1 类制作 286

24.1.1 窗体设计 286

24.1.2 DBHelper类制作 287

24.1.3 DBHelper类使用 291

24.2 构件制作 293

24.2.1 DLL的简单介绍 294

24.2.2 用VB做一个DLL文件 294

24.2.3 对ActiveX DLL的测试 295

24.2.4 OCX控件的介绍 296

24.2.5 用VB做一个OCX控件 297

24.2.6 对OCX控件的测试 298

24.3 SOA实现 300

24.3.1 SOA的定义 300

24.3.2 SOA的实现 301

24.4 云平台体验 306

24.4.1 云平台介绍 306

24.4.2 云平台实例 306

第25章 CASE工具制作 308

25.1 CASE工具介绍 308

25.2 CASE工具制作 308

软件文档篇 315

附录 软件工程项目文档模板 315

附录A 可行性研究报告(ISO标准) 315

附录B 需求分析文档[需求规格说明书(ISO标准版)] 319

附录C 项目计划书 321

附录D 数据要求说明书 324

附录E 概要设计文档 325

附录F 详细设计文档 328

附录G 模块开发说明 330

附录H 软件测试报告 331

附录I 软件维护报告 333

附录J 软件使用手册 334

附录K 开发招标书 337

附录L 开发合同样本 338

参考文献 342