《软件工程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:郑人杰,马素霞,麻志毅编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115210265
  • 页数:397 页
图书介绍:本书根据CC 2004对软件工程课程的要求,从软件的开发、维护和软件管理等方面阐述了软件工程的基本概念和常用方法。内容包括:软件工程基础、结构化软件开发方法、面向对象软件开发方法、软件生存期模型与软件体系结构、软件维护与管理。

第1部分 软件工程基础 1

第1章 软件及软件工程介绍 1

1.1软件与软件危机 1

1.1.1软件的作用 1

1.1.2软件的概念及特性 2

1.1.3软件危机 3

1.2软件工程及其基本原理 4

1.2.1软件工程的概念 4

1.2.2软件工程的目标 4

1.2.3软件工程的基本原理 5

1.3软件生命周期 6

1.4软件工程方法学 8

1.4.1结构化方法学 8

1.4.2面向对象方法 9

1.5软件工程知识体系及知识域介绍 9

1.6软件产业的形成与发展 12

1.6.1我国软件产业的形成 12

1.6.2全球软件产业的发展 13

1.6.3软件产业的发展模式 13

1.6.4软件工程在软件产业中的作用 15

小结 15

习题 16

第2章 软件需求获取与确认 17

2.1软件需求获取的任务 17

2.2软件需求的获取与确认过程 18

2.3快速原型化方法 19

2.4基于用况的方法 20

2.4.1系统边界 20

2.4.2参与者 21

2.4.3用况 22

2.4.4用况图 27

2.5需求管理 28

小结 29

习题 29

第2部分 结构化软件开发方法 31

第3章 结构化分析建模 31

3.1软件需求分析阶段的任务 31

3.2结构化分析方法简介 33

3.3功能建模 33

3.3.1数据流图的基本图形符号 33

3.3.2环境图 34

3.3.3数据流图的分层 35

3.3.4实例研究 36

3.4数据建模 38

3.4.1数据对象 38

3.4.2属性 39

3.4.3关系 39

3.5行为建模 41

3.5.1状态 41

3.5.2状态转换 41

3.5.3事件 42

3.6数据字典 43

3.6.1词条描述 43

3.6.2数据结构描述 44

3.7加工规格说明 46

3.7.1决策表 47

3.7.2决策树 48

3.8需求规格说明 49

3.8.1软件需求规格说明 49

3.8.2数据需求说明 50

小结 51

习题 51

第4章 总体设计 53

4.1软件设计的概念及目标 53

4.1.1软件设计的概念 53

4.1.2软件设计的目标 53

4.2软件设计的任务 56

4.2.1软件设计的阶段与任务 56

4.2.2结构化设计与结构化分析的关系 57

4.3模块结构与数据结构 57

4.3.1模块结构及表示 58

4.3.2数据结构及表示 61

4.4创建良好设计的原则 62

4.4.1分而治之和模块化 62

4.4.2模块独立性 63

4.4.3提高抽象层次 68

4.4.4复用性设计 69

4.4.5灵活性设计 69

4.4.6预防过期 69

4.4.7可移植性设计 70

4.4.8可测试性设计 70

4.4.9防御性设计 71

4.5面向数据流的设计方法 71

4.5.1设计过程 71

4.5.2典型的数据流类型和系统结构 72

4.5.3变换型映射方法 74

4.5.4事务型映射方法 76

4.5.5软件模块结构的改进方法 79

4.5.6实例研究 82

4.6接口设计 86

4.6.1接口设计概述 86

4.6.2人机交互界面 87

4.7数据设计 89

4.7.1文件设计 89

4.7.2数据库设计 90

4.8软件设计规格说明 90

小结 91

习题 92

第5章 详细设计与编码 93

5.1结构化程序设计 93

5.1.1结构化程序设计的概念与原则 93

5.1.2自顶向下、逐步细化的设计过程 94

5.2过程设计的工具 96

5.2.1程序流程图 96

5.2.2 N-S图 99

5.2.3 PAD图 100

5.2.4伪代码 101

5.3程序设计语言 103

5.3.1程序设计语言的性能 103

5.3.2程序设计语言的分类 104

5.3.3程序设计语言的选择 106

5.4程序设计风格 107

5.4.1源程序文档化 107

5.4.2数据说明标准化 109

5.4.3语句结构简单化 109

5.4.4输入/输出规范化 112

5.5程序复杂程度度量 113

5.5.1 McCabe方法 113

5.5.2 Halstead方法 115

小结 116

习题 116

第6章 软件测试 118

6.1软件测试的基本概念 118

6.1.1什么是软件测试 118

6.1.2软件测试的目的和原则 119

6.1.3软件测试的对象 120

6.1.4测试信息流 121

6.1.5测试与软件开发各阶段的关系 122

6.1.6白盒测试与黑盒测试 122

6.2白盒测试的测试用例设计 124

6.2.1逻辑覆盖 124

6.2.2语句覆盖 125

6.2.3判定覆盖 125

6.2.4条件覆盖 125

6.2.5判定—条件覆盖 126

6.2.6条件组合覆盖 126

6.2.7路径测试 127

6.3基本路径测试 128

6.4黑盒测试的测试用例设计 131

6.4.1等价类划分 131

6.4.2边界值分析 134

6.5软件测试的策略 136

6.5.1单元测试 137

6.5.2组装测试 139

6.5.3确认测试 142

6.5.4系统测试 144

6.5.5测试的类型 144

6.6人工测试 147

6.6.1静态分析 147

6.6.2人工测试的几种形式 148

6.7调试 149

小结 150

习题 150

第3部分 面向对象软件开发方法 153

第7章 面向对象方法概述 153

7.1面向对象的基本思想 153

7.2面向对象的主要概念及基本原则 154

7.2.1面向对象的主要概念 154

7.2.2面向对象的基本原则 156

7.3面向对象方法的发展史及现状简介 157

7.4关于统一建模语言 158

小结 160

习题 160

第8章 面向对象分析 161

8.1什么是面向对象分析 161

8.2建立基本模型——类图 164

8.2.1对象与类 164

8.2.2定义属性与操作 168

8.2.3建立关系 173

8.3建立行为模型 187

8.3.1顺序图 187

8.3.2活动图 191

8.3.3状态机图 195

8.4建立组织模型——包图 202

8.4.1概念与表示法 202

8.4.2如何划分与组织包 204

小结 205

习题 205

第9章 面向对象设计与测试 207

9.1什么是面向对象设计 207

9.2问题域部分的设计 208

9.2.1为复用类而增加结构 208

9.2.2提高性能 209

9.2.3增加一般类以建立共同协议 210

9.2.4按编程语言调整继承 211

9.2.5对复杂关联的转化并决定关联的实现方式 213

9.2.6调整与完善属性 214

9.2.7构造及优化算法 215

9.2.8决定对象间的可访问性 215

9.2.9定义对象 216

9.3人机交互部分的设计 216

9.3.1什么是人机交互部分 216

9.3.2如何分析人机交互部分 217

9.3.3如何设计人机交互部分 218

9.4控制驱动部分的设计 222

9.4.1什么是控制驱动部分 223

9.4.2控制流 223

9.4.3如何设计控制驱动部分 223

9.5数据管理部分的设计 227

9.5.1什么是数据管理部分 228

9.5.2数据库和数据库管理系统 228

9.5.3如何设计数据管理部分 229

9.6面向对象测试的概念 235

9.6.1面向对象软件测试的问题 235

9.6.2面向对象软件测试的参考过程模型 236

9.7面向对象测试方法 237

9.7.1面向对象的分析与设计测试 237

9.7.2面向对象的程序测试 237

9.7.3面向对象的系统测试 239

小结 239

习题 239

第4部分 软件生存期模型与软件体系结构 241

第10章 软件生存期模型 241

10.1软件过程框架 241

10.1.1软件过程框架的内容 241

10.1.2通用过程框架 241

10.1.3典型的普适性活动 243

10.2传统软件过程模型 243

10.2.1瀑布模型 243

10.2.2快速原型模型 245

10.2.3增量模型 245

10.2.4螺旋模型 247

10.2.5喷泉模型 248

10.3现代软件过程模型 249

10.3.1基于构件的开发模型 249

10.3.2形式化方法模型 250

10.3.3面向方面的软件开发 251

10.3.4统一过程 251

10.3.5敏捷过程模型 253

小结 255

习题 256

第11章 软件体系结构 257

11.1软件体系结构的基本概念 257

11.1.1什么是体系结构 257

11.1.2体系结构模式、风格和框架的概念 258

11.1.3体系结构的重要作用 259

11.2典型的体系结构风格 259

11.2.1数据流风格 259

11.2.2调用—返回风格 260

11.2.3仓库风格 262

11.3特定领域的软件体系结构 264

11.3.1类属模型 264

11.3.2参考模型 265

11.4分布式系统结构 266

11.4.1多处理器体系结构 266

11.4.2客户机/服务器体系结构 267

11.4.3分布式对象体系结构 271

11.4.4代理 272

11.5体系结构框架 272

11.5.1模型—视图—控制器 272

11.5.2 J2EE体系结构框架 273

11.5.3 PCMEF与PCBMER框架 274

11.6体系结构建模 276

11.6.1类及其依赖性 277

11.6.2接口及其依赖性 279

11.6.3包及其依赖性 281

11.6.4构件及其依赖性 282

11.6.5结点与部署图 284

小结 285

习题 285

第5部分 软件维护与软件管理 287

第12章 软件维护 287

12.1软件维护的概念 287

12.1.1软件维护的定义 287

12.1.2影响维护工作量的因素 288

12.1.3软件维护的策略 288

12.2软件维护活动 289

12.2.1软件维护申请报告 289

12.2.2软件维护工作流程 290

12.2.3维护档案记录 291

12.2.4维护评价 291

12.3程序修改的步骤及修改的副作用 291

12.3.1分析和理解程序 291

12.3.2修改程序 292

12.3.3修改程序的副作用及其控制 293

12.3.4重新验证程序 294

12.4软件的可维护性 295

12.4.1软件可维护性的定义 295

12.4.2可维护性的度量 296

12.5提高可维护性的方法 298

12.5.1建立明确的软件质量目标和优先级 298

12.5.2使用提高软件质量的技术和工具 298

12.5.3质量保证审查 298

12.5.4改进文档 300

小结 301

习题 301

第13章 软件项目管理 302

13.1软件项目管理概述 302

13.1.1软件项目管理的目标 302

13.1.2软件项目管理涉及的几个方面 302

13.2项目估算 304

13.2.1项目策划与项目估算 304

13.2.2软件规模估算的功能点方法 305

13.2.3软件开发成本估算 310

13.3风险管理 316

13.3.1什么是软件风险 316

13.3.2风险管理的任务 318

13.3.3风险评估 319

13.3.4风险控制 322

13.3.5做好风险管理的建议 325

13.4进度管理 325

13.4.1进度控制问题 325

13.4.2甘特图 328

13.4.3时标网状图 329

13.4.4 PERT图 329

13.5需求管理 331

13.5.1系统需求与软件需求 331

13.5.2需求工程 333

13.5.3需求变更 335

13.5.4需求变更控制 337

13.5.5可追溯性管理 340

13.6配置管理 341

13.6.1什么是软件配置管理 342

13.6.2软件配置标识 342

13.6.3变更管理 344

13.6.4版本控制 348

13.6.5系统建立 349

13.6.6配置审核 350

13.6.7配置状态报告 351

小结 351

习题 352

第14章 软件工程标准及软件文档 353

14.1标准的概念 353

14.2软件标准化的意义 354

14.3标准的分类与分级 355

14.4软件工程标准的制定与实施 358

14.5软件组织内的标准化工作 359

14.6软件文档的作用和分类 360

14.7软件基本文档的内容要求 362

14.8对文档编制的质量要求 366

14.9文档的管理和维护 368

小结 369

习题 369

第15章 软件过程与软件过程改进 371

15.1软件过程概述 371

15.2软件生存期过程国际标准 373

15.3软件过程成熟度 377

15.3.1什么是软件过程成熟度 377

15.3.2过程制度化 379

15.4软件能力成熟度模型(CMM/CMMI) 381

15.4.1 CMM与SEI 381

15.4.2 CMM的演化 382

15.4.3 CMM族和CMMI 382

15.4.4 CMMI 1.2简介 383

15.4.5 CMMI评估 391

15.5软件过程改进 392

15.5.1软件过程改进的IDEAL模型 392

15.5.2软件过程改进框架 393

15.5.3有效的软件过程 394

小结 395

习题 396

参考文献 397