《软件工程 高级》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:郑人杰主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1999
  • ISBN:7302035342
  • 页数:392 页
图书介绍:内容简介本书是中国计算机软件专业技术水平考试指定用书之一。本书是软件工程的高级读物,全书分为三个部分,即软件工程技术、软件质量管理与质量保证及软件工程管理。主要内容包括:软件生存期过程和软件工程,软件需求分析,软件复用技术,软件测试,软件维护与软件再工程,软件工具与软件开发环境,软件质量保证,软件工程标准化和软件文档,软件过程能力评估,软件工程项目管理,软件度量,软件配置管理,软件人员组织与管理,软件知识产权保护等。本书是“中国计算机软件专业技术软件工程(高级)”水平考试的必读教材,也可作为相应培训班的教材,通过该级考试的考生具有软件工程高级工程师的相应水平。

第1篇 软件工程技术 1

第1章 软件生存期过程和软件工程 1

1.1 软件生存期及其模型 1

1.1.1 软件生存期 1

1.1.2 软件生存期模型 2

1.2 软件生存期过程 6

1.3 软件工程的基本目标 9

1.3.1 软件工程的定义 9

1.3.2 软件工程项目的基本目标 10

第2章 软件需求分析 12

2.1 软件需求分析的任务 12

2.2 需求分析的过程 13

2.3 软件需求分析的原则 17

2.4 分析员和用户的责任 19

2.5 软件需求分析方法 19

2.6 软件需求分析工具 21

2.6.1 SADT 22

2.6.2 PSL/PSA 23

2.7 面对确定需求的困难应采取的对策 24

2.7.1 需求工程和确定需求的困难 24

2.7.2 软件开发人员面对确定需求的困难应采取的对策 25

第3章 软件复用技术 26

3.1 软件复用的概述 26

3.1.1 软件复用的宗旨 26

3.1.2 软件复用的实际效益 27

3.1.3 软件复用技术的发展概况 27

3.2 软件开发过程 28

3.2.1 以往的软件开发技术不能满足复用的需要 28

3.2.2 软件复用需要改变软件开发过程 29

3.2.3 领域工程和应用系统工程 31

3.3 构件技术 33

3.3.1 应用系统和应用系统族 33

3.3.2 应用系统与构件 33

3.3.3 构件系统 34

3.3.4 构件系统的门面 35

3.3.5 可变性和专门化 36

3.3.6 打包和编写文档 37

3.4 分层式体系结构 37

3.4.1 软件体系结构 37

3.4.2 良好的软件体系结构的重要作用 37

3.4.3 分层式的体系结构 38

3.5 渐进地实施复用和复用单位的组织结构 40

3.5.1 软件复用需要改变开发单位的组织结构 40

3.5.2 渐进地系统地采用复用技术 41

3.5.3 充分利用可共享复用成果 46

3.5.4 实施系统复用需要遵循的原则 46

第4章 软件测试 48

4.1 软件测试基础 48

4.1.1 什么是软件测试 48

4.1.2 软件测试的目的和原则 48

4.1.3 软件测试的对象 50

4.1.4 测试信息流 51

4.1.5 测试与软件开发各阶段的关系 52

4.2 两种类型的测试 53

4.2.1 黑盒测试 53

4.2.2 白盒测试 54

4.3 白盒测试的测试用例设计 55

4.3.1 逻辑覆盖 55

4.3.2 基本路径测试 59

4.4 黑盒测试的测试用例设计 65

4.4.1 等价类划分 65

4.4.2 边界值分析 68

4.4.3 错误推测法 71

4.4.4 因果图 72

4.4.5 功能图 75

4.5 软件测试的策略 79

4.5.1 单元测试 80

4.5.2 组装测试 82

4.5.3 确认测试 87

4.5.4 系统测试 89

4.5.5 测试的步骤及相应的测试种类 89

4.6 程序的静态分析方法 93

4.6.1 对程序的静态分析 93

4.6.2 人工测试 95

4.7 软件测试工具 97

4.7.1 静态分析工具 97

4.7.2 动态测试工具 98

4.7.3 测试数据自动生成工具 100

4.7.4 模块测试台 101

4.7.5 测试合成环境 102

第5章 软件维护与软件再工程 105

5.1 软件维护的概念 105

5.1.1 软件维护的定义 105

5.1.2 影响维护工作量的因素 107

5.1.3 软件维护的策略 108

5.1.4 维护成本 108

5.2 软件维护活动 109

5.2.1 维护机构 109

5.2.2 软件维护申请报告 110

5.2.3 软件维护工作流程 110

5.2.4 维护档案记录 111

5.2.5 维护评价 112

5.3 软件维护的实施 112

5.3.1 分析和理解程序 112

5.3.2 修改程序 113

5.3.3 重新验证程序 115

5.4 软件可维护性 117

5.4.1 软件可维护性的定义 117

5.4.2 可维护性的度量 118

5.5 提高可维护性的方法 119

5.5.1 建立明确的软件质量目标和优先级 120

5.5.2 使用提高软件质量的技术和工具 120

5.5.3 进行明确的质量保证审查 121

5.5.4 选择可维护的程序设计语言 124

5.5.5 改进程序的文档 124

5.5.6 开发软件时考虑到维护 125

5.6 软件再工程 126

5.6.1 什么是软件再工程 126

5.6.2 为什么要实施软件再工程 129

5.6.3 软件再工程技术 131

5.6.4 软件再工程的风险 134

第6章 软件工具与软件开发环境 136

6.1 软件工具 136

6.1.1 概述 136

6.1.2 软件开发工具 138

6.1.3 软件维护工具 143

6.1.4 软件管理和软件支持工具 144

6.1.5 软件开发工具的评价和选择 145

6.2 软件开发环境 146

6.2.1 概述 146

6.2.2 集成型软件开发环境 147

6.2.3 ECMA/NIST集成型软件开发环境参考模型 150

6.2.4 PCTE:可移植公共工具环境 153

6.2.5 青鸟系统 153

第2篇 软件质量管理与质量保证 153

第7章 软件质量 153

7.1 软件危机尚未过去 153

7.1.1 软件发展远远落后于硬件 153

7.1.2 软件质量问题提出的挑战 156

7.1.3 有银弹吗? 157

7.2 软件质量问题的根源 158

7.2.1 软件不同于硬件或其他产品 158

7.2.2 影响软件质量的因素 159

7.3 什么是软件质量 161

7.3.1 通常的理解 161

7.3.2 McCall的质量特性 162

7.3.3 国际标准和国家标准规定的质量特性 163

7.4 产品质量与过程质量 166

第8章 软件质量保证 169

8.1 软件质量保证概述 169

8.1.1 质量保证的概念 169

8.1.2 软件质量保证的主要任务 170

8.1.3 质量保证与检验 171

8.2 软件质量保证体系 172

8.3 质量保证的实施 176

8.3.1 质量目标与度量 176

8.3.2 质量度量方法 176

8.3.3 软件质量管理小组 179

8.4 软件的质量设计 179

8.4.1 质量特性转换为软件的内部结构 180

8.4.2 软件的质量展开 183

8.5 技术评审 186

8.5.1 设计质量的评审 186

8.5.2 程序质量的评审 191

8.6 软件可靠性 195

8.6.1 软件生存期与软件寿命的关系 195

8.6.2 软件可靠性的定义 197

8.6.3 软件可靠性的主要指标 198

8.7 测试中的可靠性分析 198

8.7.1 推测错误的产生频度 198

8.7.2 估算软件中错误总数ET的方法 200

8.7.3 测试精确度和测试覆盖度的评价 201

8.7.4 测试开始时的预测模型 203

8.8 软件容错技术 205

8.8.1 什么是容错软件 206

8.8.2 容错的一般方法 206

8.8.3 容错软件的设计过程 209

8.8.4 软件的容错系统结构 209

8.9 软件过程改进 212

8.9.1 软件过程改进的含意和现有的方案 212

8.9.2 软件过程改进模式 213

第9章 软件工程标准化和软件文档 215

9.1 什么是软件工程标准 215

9.2 软件工程标准化的意义 217

9.3 软件工程标准的制订与推行 218

9.4 软件工程标准的层次 219

9.5 软件工程国家标准 220

9.6 在开发机构中推行软件工程标准 225

9.7 软件文档 225

9.7.1 软件文档作用和分类 225

9.7.2 对文档编制的质量要求 228

9.7.3 文档的管理和维护 232

第10章 在软件开发机构中贯彻ISO9000国际标准 234

10.1 质量管理、质量认证与质量审核 234

10.1.1 质量管理 234

10.1.2 质量认证与审核 236

10.2 ISO9000国际标准简介 237

10.2.1 ISO9000标准概述 237

10.2.2 ISO9000标准的特点 238

10.2.3 ISO9000标准的科学依据 239

10.3 ISO9000族标准的构成 241

10.4 质量体系 243

10.5 ISO9001标准的主要内容 245

10.6 ISO9000-3标准简介 249

10.6.1 理解标准与指南的关系 249

10.6.2 理解ISO9000-3对20个质量体系要素的解释 250

10.6.3 理解ISO9000-3与ISO/IEC12207两个标准之间的关系 253

10.7 软件开发机构为什么要按ISO9000标准建立并实施质量保证体系 255

10.7.1 软件质量缺陷不可能完全避免 255

10.7.2 技术上解决软件质量问题的局限性 257

10.7.3 为什么软件开发机构要加强质量管理 258

10.7.4 为什么软件开发机构要开展ISO9000质量体系认证工作 259

10.8 软件开发机构实施ISO9000标准应做的工作 260

10.9 若干认识问题 262

第11章 软件过程能力评估 264

11.1 软件过程评估的意义 264

11.1.1 软件过程改进的需要 264

11.1.2 降低软件风险的需要 265

11.2 软件过程评估方法的产生 265

11.3 软件能力成熟度模型CMM简介 266

11.3.1 模型概要 266

11.3.2 模型的产生和原理 268

11.3.3 不成熟和成熟软件组织的比较 268

11.3.4 软件过程成熟度的5个等级 269

11.3.5 跳越成熟度等级 272

11.3.6 关键过程域 273

11.3.7 关键实践 275

11.3.8 CMM的应用 277

11.3.9 软件过程成熟度提问单 279

11.3.10 对CMM1.1的几点考虑 280

11.4 软件过程评估的国际标准概述 284

11.4.1 软件过程评估国际标准的制定 284

11.4.2 软件过程评估标准的组成 285

11.4.3 参考模型 286

11.4.4 评估框架 290

11.4.5 软件过程评估标准的特点 292

第3篇 软件工程管理 296

第12章 软件工程项目管理 296

12.1 软件工程项目管理的任务 296

12.2 软件项目估算 298

12.2.1 针对估算的考虑 298

12.2.2 软件项目计划的目标 299

12.2.3 软件的范围 299

12.2.4 软件开发中的资源 300

12.2.5 软件项目估算 303

12.2.6 分解技术 303

12.3 软件开发成本估算 307

12.3.1 软件开发成本估算方法 307

12.3.2 专家判定技术 308

12.3.3 软件开发成本估算的经验模型 309

12.3.4 自动估算工具 314

12.4 风险分析 316

12.4.1 风险识别 316

12.4.2 风险估计 317

12.4.3 风险评价 318

12.4.4 风险驾驭和监控 318

12.5 进度安排 320

12.5.1 软件开发小组人数与软件生产率 321

12.5.2 任务的确定与并行性 322

12.5.3 制定开发进度计划 322

12.5.4 进度安排的图形方法 324

12.5.5 项目的追踪和控制 326

12.6 软件项目的组织与计划 327

12.6.1 软件项目管理的特点 327

12.6.2 制定计划 328

第13章 软件度量 331

13.1 软件度量的概念 331

13.2 功能点方法计算软件的大小 332

13.3 程序环路复杂度计算 335

13.4 霍尔斯特德(Halstead)程序工作量计算 336

13.5 程序风格度量 337

第14章 软件配置管理 339

14.1 什么是软件配置管理 339

14.1.1 软件配置管理的几种定义 339

14.1.2 什么是软件配置项 340

14.1.3 软件配置管理的任务 340

14.2 软件配置标识 341

14.3 变更管理 343

14.4 版本控制 347

14.4.1 版本管理和发行管理 347

14.4.2 版本标识 347

14.4.3 发行管理 348

14.5 系统建立 349

14.6 配置审核 350

14.7 配置状态报告 350

第15章 软件人员组织与管理 352

15.1 软件项目的人员组织与管理 352

15.1.1 项目组的组织结构 352

15.1.2 人员配备 355

15.1.3 指导与检验 357

15.2 软件人员能力成熟度模型 358

15.2.1 引入软件人员能力成熟度模型的必要性 358

15.2.2 软件人员能力成熟度模型的发展溯源 359

15.2.3 软件人员能力成熟度模型简介 359

15.2.4 软件人员能力成熟度模型的结构 360

15.2.5 成熟度级别和关键过程域 361

15.2.6 主题 365

15.2.7 关键过程域的目标 366

15.2.8 软件人员能力成熟度模型的应用 368

15.3 软件工程师道德和职业活动规范 370

15.3.1 引言 370

15.3.2 软件开发项目的特点、影响及其与人的关系 370

15.3.3 规范的内容 372

15.3.4 职业道德教育的作用及其重要性 376

第16章 软件知识产权保护 377

16.1 软件知识产权的保护必须依法实施 377

16.1.1 知识产权的法律框架 377

16.1.2 我国保护计算机软件的法律制度 378

16.2 计算机软件著作权 379

16.2.1 计算机软件著作权的主体 379

16.2.2 计算机软件著作权的客体 379

16.2.3 算机软件著作权的权利内容 380

16.2.4 计算机软件著作权归属 381

16.2.5 软件著作权的行使 381

16.2.6 软件专有权利的限制 382

16.3 计算机软件著作权登记管理 383

16.3.1 计算机软件著作权登记制度的法律功能和作用 383

16.3.2 计算机软件著作权登记的几种主要形式 384

16.4 计算机软件著作权侵权与法律保护 384

16.4.1 软件著作权侵权行为类型 384

16.4.2 侵犯软件著作权的法律责任 385

16.4.3 法定的例外情况 385

16.5 计算机软件的商业秘密与反不正当竞争 386

16.5.1 商业秘密的法律特征 386

16.5.2 计算机软件与商业秘密 387

16.5.3 侵害计算机软件商业秘密的不正当行为与法律责任 388

参考文献 391