《软件工程与管理》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:覃征等编著
  • 出 版 社:清华大学出版社
  • 出版年份:2005
  • ISBN:7302109354
  • 页数:453 页
图书介绍:本书全面介绍了软件工程的基本概念、基本理论、基本方法及其应用技术。

目录 2

第1部分 软件工程基础 2

第1章 软件工程概述 2

1.1 软件的概念与特点 2

1.2 软件的分类 3

1.3 软件的发展和软件危机 5

1.4 软件过程及其模型 8

1.4.1 软件过程 8

1.4.2 软件过程模型 12

1.4.3 软件工程的目标和原则 25

1.5 软件开发工具 30

1.5.1 软件开发的分析工具 30

1.5.2 CASE工具 31

1.6 未来之路 34

1.7 小结 38

参考文献 39

第2章 软件项目分析 41

2.1 概述 41

2.2.1 代码行技术 44

2.2 软件项目规模估算 44

2.2.2 任务估算技术 45

2.2.3 Delphi法 46

2.2.4 类比法 47

2.2.5 功能点估计法 48

2.2.6 PERT估计法 50

2.3 成本估计与效益分析 52

2.3.1 成本估计 52

2.3.2 效益分析 58

2.4 现有系统分析 59

2.5 可行性研究报告 66

2.5.1 可行性研究 66

2.5.2 可行性研究报告 69

2.6 立项评审 74

2.6.1 立项检查 74

2.6.2 立项评审报告 74

2.7 小结 75

参考文献 75

第3章 需求分析 77

3.1 概述 77

3.1.1 需求的类型 78

3.1.2 需求分析目标 80

3.1.3 需求分析过程 81

3.2 需求获取 85

3.2.1 需求获取方法 86

3.2.2 分析人员与用户的合作关系 87

3.3 需求分析 90

3.3.1 软件需求分析 90

3.3.2 需求和系统模型之间的关系 94

3.4.1 结构化分析 95

3.4 结构化分析方法 95

3.4.2 使用PDL描述需求 106

3.4.3 接口描述 107

3.5 软件原型实现 107

3.5.1 原型的特征 108

3.5.2 原型的选择 108

3.5.3 原型实现方法和工具 109

3.6 需求描述与评审 110

3.6.1 分析建模 110

3.6.2 软件需求规约 111

3.7.1 需求有效性验证 114

3.7 需求验证与评审 114

3.7.2 需求评审 116

3.8 需求管理 117

3.8.1 需求跟踪表 118

3.8.2 需求变更管理 120

3.9 小结 120

参考文献 121

4.1 软件设计过程 123

4.1.1 软件设计的重要性 123

第4章 软件设计 123

4.1.2 总体设计 124

4.1.3 详细设计 124

4.2 结构化软件设计方法 124

4.2.1 功能分解 125

4.2.2 抽象 125

4.2.3 信息隐藏 126

4.2.4 模块化 126

4.2.5 软件设计原则 127

4.2.7 软件结构设计 128

4.2.6 数据设计 128

4.3 模块化设计 129

4.3.1 功能独立性 129

4.3.2 内聚性 129

4.2.8 过程设计 129

4.3.3 耦合度 131

4.4 软件设计工具 133

4.4.1 总体设计工具 133

4.4.2 详细设计工具 135

4.5.1 Jackson结构图 140

4.5 Jackson设计方法 140

4.5.2 Jackson设计方法 141

4.5.3 结构冲突 141

4.6 设计规格说明与评审 142

4.6.1 设计规格说明 142

4.6.2 软件设计评审 143

4.7 小结 144

参考文献 144

5.1.1 程序设计语言特性 145

5.1 程序设计语言 145

第5章 程序编码 145

5.1.2 程序设计语言的分类 147

5.1.3 程序设计语言的选择 148

5.2 程序设计过程 149

5.2.1 结构化程序设计的概念与标准结构 150

5.2.2 结构化编程 152

5.3 程序设计风格 154

5.3.4 适当使用注释 155

5.3.3 坚持按一定的缩进规则书写和录入程序 155

5.3.2 选择有实际含义的标识符作为变量名 155

5.3.1 选用合适的常量标识符 155

5.4 程序效率 157

5.4.1 讨论效率的准则 157

5.4.2 算法对效率的影响 157

5.4.3 影响存储效率的因素 158

5.4.4 影响输入/输出的因素 158

5.5 程序编码优化 158

5.5.1 程序优化的内容与原则 158

5.5.2 程序结构优化的基本方法 160

5.5.3 程序代码优化的基本方法 161

参考文献 165

5.6 小结 165

第6章 软件测试 167

6.1 测试基础 167

6.1.1 软件测试 168

6.1.2 验证和确认 172

6.1.3 测试流程 173

6.2 测试方法 176

6.2.1 测试设计中的系统分析方法 176

6.1.4 测试的组织 176

6.2.2 测试技术的分类 177

6.2.3 逻辑覆盖 183

6.2.4 基本路径测试 184

6.2.5 控制结构测试 188

6.3 测试过程 190

6.3.1 单元测试 191

6.3.2 集成测试 193

6.3.3 确认测试 196

6.3.4 系统测试 197

6.4 调试方法 198

6.3.5 停止测试的时机 198

6.4.1 调试步骤 199

6.4.2 几种主要调试方法 199

6.4.3 调试原则 200

6.5 自动测试工具 201

6.5.1 常用自动测试工具 201

6.5.2 工具对测试工作的影响 202

6.5.3 测试工具的开发 203

6.6 软件可靠性 205

6.5.4 软件质量评测及其工具 205

6.6.1 基本概念 206

6.6.2 软件可靠性与硬件可靠性 209

6.6.3 软件可靠性参数和模型 211

6.6.4 软件可靠性的衡量方法 212

6.6.5 软件的可靠性测试过程 215

6.6.6 提高软件可靠性的方法和技术 216

6.7 小结 219

参考文献 220

7.1.1 软件维护的定义 223

第7章 软件维护 223

7.1 软件维护的概念 223

7.1.2 软件维护的工作量 224

7.1.3 软件维护的代价 224

7.1.4 影响维护的因素 225

7.2 软件维护活动 226

7.2.1 维护机构 226

7.2.2 编写报告 227

7.2.3 软件维护工作流程 227

7.2.4 维护评价 228

7.3 程序修改的副作用 229

7.3.1 修改代码的副作用 229

7.3.2 修改数据的副作用 229

7.3.3 文档的副作用 230

7.4 软件可维护性 230

7.4.1 软件可维护性的定义 230

7.4.2 可维护性的度量 231

7.4.3 评审 231

7.5.2 使用提高软件质量的技术和工具 232

7.5.1 明确软件质量管理目标 232

7.5 提高可维护性的方法 232

7.5.3 选择可维护的程序设计语言 233

7.5.4 改进程序的文档 233

7.5.5 进行明确的质量保证审查 234

7.6 软件再工程 234

7.6.1 再工程的基本概念 234

7.6.2 再工程的相关软件技术 236

7.6.3 再工程应用实例 237

7.7 小结 237

参考文献 238

第2部分 新技术、新方法 243

第8章 软件体系结构 243

8.1 体系结构的概念及描述 243

8.1.1 体系结构的概念 243

8.1.2 体系结构的描述 244

8.1.3 体系结构的生命周期模型 246

8.2 体系结构风格 248

8.2.1 管道过滤模式 248

8.2.2 面向对象模式 250

8.2.3 事件驱动模式 251

8.2.4 分层模式 256

8.2.5 知识库模式 258

8.2.6 解释器模式 260

8.2.7 过程控制环模式 260

8.3 基于体系结构的软件开发 266

8.3.1 体系结构驱动的软件分析设计 266

8.3.2 体系结构评估 270

8.4 多层软件体系结构实例 273

8.4.1 J2EE概述 273

8.4.2 JBoss应用服务器 275

8.5 小结 279

参考文献 279

第9章 面向对象方法 280

9.1 OO基本原理 280

9.1.1 OO基本概念 280

9.1.2 OO的特征 282

9.1.3 OO的要素 283

9.2 OO开发方法 284

9.2.1 Booch方法 284

9.2.2 Coad方法 288

9.2.3 OMT方法 292

9.3 UML技术 304

9.3.1 UML概述 304

9.3.2 UML表示法 305

9.3.3 UML建模实例 312

9.4 小结 317

参考文献 317

10.1 软件复用 318

10.1.1 软件复用概念 318

第10章 软件开发新方法 318

10.1.2 领域工程 321

10.1.3 基于构件的软件开发 323

10.1.4 软件生产线 326

10.2 净室软件工程 327

10.2.1 净室基础 328

10.2.2 净室小组的工作 329

10.2.3 净室技术 330

10.2.4 净室过程 333

10.2.5 净室与其他软件工程实践的关系 334

10.3 敏捷软件工程 336

10.3.1 敏捷方法学 337

10.3.2 敏捷建模 338

10.3.3 敏捷方法 341

10.4 小结 344

参考文献 345

11.1 软件工程标准概述 348

11.1.1 软件工程标准化的意义 348

第11章 软件工程标准 348

第3部分 软件工程管理标准、规范 348

11.1.2 软件工程标准的制订与推行 351

11.1.3 软件工程标准的层次 352

11.1.4 中国的软件标准化工作 353

11.2 软件能力成熟度模型简介 354

11.2.1 CMM概述 354

11.2.2 CMM级别 356

11.2.3 CMM与管理 359

11.2.4 软件过程评估 360

11.2.5 软件过程评估方法 360

11.2.6 从CMM到CMMI 361

11.3.1 ISO9000的管理思想 365

11.3 软件工程国际标准 365

11.3.2 ISO9000族标准构成 366

11.3.3 ISO9000-3实施 369

11.3.4 ISO/IEC15504简介 370

11.3.5 其他软件工程标准 373

11.4 小结 373

参考文献 374

12.1.1 PSP概述 375

第12章 软件工程规范 375

12.1 PSP方法 375

12.1.2 PSP的演化 376

12.1.3 PSP过程实施 377

12.2 TSP方法 379

12.2.1 TSP概述 379

12.2.2 TSP的结构 381

12.2.3 实现TSP的条件 382

12.2.4 TSP实施方法 382

12.3.1 RUP概述 384

12.3 RUP方法 384

12.3.2 RUP应用 385

12.3.3 RUP的核心工作流 386

12.3.4 RUP管理实施 388

12.4 小结 388

参考文献 389

13.1.1 管理目标 390

13.1.2 基本原则 390

13.1 软件管理的目标与基本原则 390

第13章 软件工程管理 390

13.1.3 专题原则 394

13.2 风险管理 396

13.2.1 风险的分类 396

13.2.2 风险的识别 397

13.2.3 风险评估 397

13.2.4 风险的驾驭和监控 398

13.3 组织管理 399

13.3.1 民主制程序员组 399

13.3.2 主程序员组 401

13.3.3 现代程序员组 402

13.3.4 软件项目组 404

13.3.5 IT组织管理 406

13.4 质量管理 408

13.4.1 软件质量概述 409

13.4.2 软件质量因素 411

13.4.3 质量认证 411

13.4.4 测试管理 423

13.5 配置管理 427

13.5.1 配置管理的意义 427

13.5.2 配置管理的实施过程 428

13.5.3 配置控制 431

13.5.4 配置管理计划 435

13.5.5 配置管理报表 439

13.6 软件项目管理 442

13.6.1 软件项目产品的特点 442

13.6.2 软件项目失控的原因 443

13.6.3 软件项目管理的内容 447

13.7 小结 448

参考文献 448

附录A 主要英文缩写 450