《软件工程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:宋雨编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302277583
  • 页数:417 页
图书介绍:本书系统地介绍了软件工程的基本理论、最新研究与进展及实际应用。

第1章 概述 1

1.1计算机系统的开发过程 1

1.2软件及其分类 3

1.3软件工程的由来和发展 4

1.4软件的生命周期 6

1.5软件生存期模型 7

1.6小结 13

习题1 13

第2章 软件计划 15

2.1确定软件范围 15

2.2软件开发中的资源需求 15

2.3软件成本估算 17

2.3.1估算方法 17

2.3.2估算模型 20

2.3.3面向对象项目的估算 30

2.3.4自行开发或购买的决策 31

2.4软件开发进度的安排 32

2.4.1甘特图 32

2.4.2 PERT图 33

2.4.3两种图的结合 34

2.5小结 36

习题2 36

第3章 软件需求分析 41

3.1需求分析的任务 41

3.2需求规约说明书 42

3.3结构化需求分析方法 44

3.3.1数据流图 44

3.3.2数据词典 50

3.3.3功能说明 52

3.4原型化需求分析方法 55

3.4.1原型开发的分类 56

3.4.2快速原型技术 58

3.4.3用户界面开发 61

3.5面向对象方法 62

3.5.1 Coad/Yourdon方法 62

3.5.2 Booch方法 63

3.5.3 Rumbaugh的OMT方法 63

3.5.4 Jacobson方法 63

3.5.5 UML方法 64

3.6小结 67

习题3 68

第4章 软件设计 70

4.1软件设计的任务 70

4.1.1概要设计 70

4.1.2详细设计 71

4.1.3软件设计的目标和准则 71

4.2软件设计的概念和原则 71

4.2.1软件体系结构 71

4.2.2软件结构中的若干概念 72

4.2.3软件的模块化 73

4.3软件概要设计 76

4.3.1充分理解SRS,确定设计策略 76

4.3.2模块化准则 77

4.3.3模块设计中的具体方法 77

4.3.4概要设计文档 80

4.4软件详细设计 81

4.4.1图示工具 81

4.4.2表格工具 85

4.4.3语言工具 85

4.4.4工具的比较 85

4.4.5程序复杂性的度量 87

4.4.6详细设计文档 89

4.5结构化设计方法 91

4.5.1软件结构图 92

4.5.2从DFD导出软件结构图 92

4.5.3软件设计的评判 98

4.6面向数据结构的设计方法 100

4.6.1 Jackson方法 101

4.6.2 LCP方法 105

4.7面向对象的设计方法 107

4.7.1 OOD基本概念 108

4.7.2 OOD任务 110

4.7.3 Coad与Yourdon的OOD方法 113

4.7.4层次化OOD方法 114

4.8其他设计方法 116

4.8.1面向方面程序设计 116

4.8.2面向Agent的设计方法 117

4.8.3泛型程序设计 117

4.8.4面向构件的技术 118

4.8.5敏捷方法 118

4.8.6 Rational统一过程 118

4.8.7功能驱动开发模式 118

4.8.8极端编程 119

4.9小结 119

习题4 121

第5章 程序编码 124

5.1程序设计语言的分类 124

5.1.1第一代语言——机器语言时代 124

5.1.2第二代语言——汇编语言时代 124

5.1.3第三代语言——高级语言时代 124

5.1.4第四代语言——非过程语言时代 125

5.2编码风格 125

5.2.1语句结构 125

5.2.2源程序文档化 127

5.2.3数据说明 128

5.2.4输入和输出 129

5.3面向对象的编程语言 130

5.3.1 Smalltalk 130

5.3.2 Eiffel 130

5.3.3 SDL 130

5.3.4 C+++ 131

5.3.5面向对象的Pascal 131

5.3.6 Java 131

5.3.7 C 131

5.4小结 132

习题5 132

第6章 软件测试 133

6.1软件测试基础 133

6.1.1测试目标 133

6.1.2测试原则 133

6.1.3可测试性 134

6.2测试步骤和策略 134

6.2.1软件测试过程与开发过程的对应关系 134

6.2.2测试信息流 135

6.2.3单元测试 135

6.2.4集成测试 136

6.2.5确认测试 141

6.2.6系统测试 142

6.3测试用例设计 143

6.3.1概述 143

6.3.2逻辑覆盖 144

6.3.3等价类划分 147

6.3.4边界值分析 148

6.3.5划分测试与随机测试 148

6.3.6错误推测法 148

6.3.7因果图法 149

6.3.8人工测试 149

6.3.9调试 150

6.4软件可靠性 151

6.4.1可靠性和可用性 152

6.4.2影响软件可靠性的因素 152

6.4.3软件可靠性模型 153

6.4.4软件可靠性工程 155

6.5面向对象的测试 155

6.5.1 OO软件测试策略 155

6.5.2 OO类测试方法 156

6.5.3继承层次的测试 158

6.6小结 160

习题6 161

第7章 软件维护 163

7.1软件维护的概念 163

7.1.1改正性维护 164

7.1.2适应性维护 164

7.1.3完善性维护 164

7.1.4预防性维护 164

7.2软件的可维护性 164

7.2.1可理解性 165

7.2.2可测试性 165

7.2.3可修改性 165

7.2.4可靠性 166

7.2.5可移植性 166

7.2.6可使用性 166

7.2.7效率 166

7.3提高可维护性的方法 166

7.3.1提供完整和一致的文档 167

7.3.2建立明确的软件质量目标和优先级 167

7.3.3使用现代化的开发技术和工具 168

7.3.4进行明确的质量保证审查 168

7.3.5选择可维护性好的程序设计语言 169

7.3.6采用软件维护的新方法 169

7.4软件再工程 170

7.4.1业务过程再工程 170

7.4.2软件再工程过程模型 171

7.4.3逆向工程 172

7.4.4软件重构 173

7.4.5正向工程 174

7.4.6再工程经济学 174

7.5小结 175

习题7 175

第8章 软件复用 177

8.1软件复用概念 177

8.1.1软件复用的类型 177

8.1.2软件复用的粒度 178

8.1.3软件复用机会的识别 179

8.2领域工程 181

8.2.1领域分析 181

8.2.2领域特征 182

8.3可复用构件的建造及复用 183

8.3.1构件应具有的特征 183

8.3.2领域构件的设计框架 184

8.3.3几种流行的构件技术 184

8.3.4建立可复用的构件库 186

8.3.5软件构件的复用 187

8.3.6基于Agent的软件复用 188

8.3.7基于复用的数据挖掘系统 189

8.4面向对象的软件复用技术 190

8.4.1复用技术对OO方法的支持 190

8.4.2 OO软件复用技术 191

8.5小结 192

习题8 193

第9章 面向对象的软件工程 194

9.1面向对象的基本概念 194

9.1.1对象 195

9.1.2类 196

9.1.3消息、方法和变量 197

9.1.4面向对象的基本特征 198

9.2面向对象建模及统一建模语言UML 203

9.2.1面向对象建模 203

9.2.2统一建模语言UML 204

9.2.3 UML模型 208

9.2.4 UML的扩展机制 216

9.2.5 UMI建模工具 219

9.3面向对象的软件需求分析及设计 220

9.3.1常用的面向对象软件工程方法 220

9.3.2基于UML的软件分析与设计 222

9.4面向对象的软件需求分析方法及其在图书馆系统的应用 223

9.4.1系统需求 224

9.4.2用面向对象方法进行系统需求分析 224

9.5基于UML的网络管理平台的分析与设计 228

9.5.1系统开发过程 228

9.5.2系统的实现 231

9.6小结 232

习题9 233

第10章 软件质量保证 235

10.1软件质量的概念 235

10.2软件质量保证 236

10.2.1 SQA活动 236

10.2.2软件可靠性与软件质量保证 237

10.2.3软件质量检验与软件质量保证 238

10.3软件复审 238

10.3.1软件错误的危害性 238

10.3.2软件复审与审核计划 239

10.3.3正式技术复审 239

10.4统计质量保证 240

10.5 ISO9000质量标准 242

10.5.1 ISO9000简介 242

10.5.2 ISO9000认证标准 243

10.5.3我国对ISO9000标准的使用 246

10.6软件质量预测模型及应用 247

10.6.1软件质量度量和质量预测模型的关系 247

10.6.2广义回归神经网络结构及特点 248

10.6.3软件质量预测模型的应用 249

10.7小结 250

习题10 251

第11章 软件的技术度量 252

11.1软件技术度量概述 252

11.1.1软件技术度量要解决的问题 252

11.1.2软件技术度量考虑的软件质量因素 252

11.1.3软件技术度量的原则 256

11.2软件分析模型的度量 256

11.2.1基于功能点的度量 256

11.2.2基于原语的度量——Bang度量 258

11.2.3 SRS质量的度量 259

11.3软件设计模型的度量 259

11.3.1体系结构设计度量 259

11.3.2构件级度量 262

11.3.3界面设计度量 265

11.4源代码度量 266

11.4.1 Halstead度量方法 266

11.4.2 Thayer复杂性度量 266

11.5软件测试的度量 267

11.5.1测试过程S曲线 267

11.5.2缺陷追踪和管理 268

11.5.3外包软件验收测试中的度量 268

11.6软件维护的度量 269

11.6.1 UKSMA和NESMA标准 269

11.6.2软件维护的度量 269

11.7面向对象的度量 270

11.7.1面向对象度量方法 270

11.7.2面向对象系统中考虑结构因素的类的内聚度量 274

11.8小结 276

习题11 276

第12章 软件开发工具与环境 279

12.1软件开发工具 279

12.2软件开发环境 280

12.2.1软件开发环境的组成 280

12.2.2软件开发环境的分类 281

12.3计算机辅助软件工程 282

12.3.1 CASE环境 283

12.3.2软件开发CASE工具简介 283

12.4小结 289

习题12 289

第13章 软件工程管理 290

13.1软件工程文化 290

13.1.1软件文化概念 290

13.1.2软件项目的五要素 291

13.1.3肯定开发者的成就 292

13.1.4不断学习新知识 292

13.1.5寻找卓越的需求 293

13.1.6质量文化 293

13.1.7方法、测量和工具 294

13.2现代人件 295

13.2.1团队开发 295

13.2.2程序员个人对软件系统的影响 296

13.2.3工作组织 297

13.3软件工程36计 302

13.3.1方法篇 302

13.3.2设计篇 305

13.3.3实现篇 306

13.3.4管理篇 308

13.4软件风险分析与管理 309

13.4.1软件风险及分类 309

13.4.2风险预测 310

13.4.3风险的缓解、监控和管理 312

13.5软件配置管理 314

13.5.1软件配置 314

13.5.2配置标识 315

13.5.3里程碑与变更控制 315

13.5.4配置状态登录 316

13.5.5配置审查 316

13.6软件工程标准化 317

13.6.1软件工程标准化的意义 317

13.6.2软件工程标准化的研究内容 317

13.6.3软件工程国家标准 318

13.7软件的知识产权保护 319

13.7.1软件知识产权的法律保护 319

13.7.2计算机软件是著作权法保护的客体 320

13.7.3软件著作权人享有的专有权利 321

13.7.4软件著作权的登记 323

13.8小结 323

习题13 324

第14章 软件过程管理 326

14.1软件能力成熟度模型 326

14.1.1 CMM的必要性 326

14.1.2 CMM的提出与发展 327

14.1.3 CMM的作用 328

14.2 CMM的主要内容 329

14.2.1 CMM的专业术语 329

14.2.2 CMM的内容 330

14.2.3 CMM的内部结构 332

14.3 CMM各级之间的关系 336

14.3.1评估软件企业的CMM级别 337

14.3.2从初始级向可重复级过渡 337

14.3.3从可重复级向已定义级过渡 338

14.3.4向可管理级和优化级过渡 338

14.4 CMM实施的人员构成和组织机构的划分 339

14.4.1人员的构成 339

14.4.2组织机构的划分 340

14.5个体软件过程 342

14.5.1 PSP概述 342

14.5.2 PSP的设计原则 343

14.5.3 PSP进化的框架 343

14.5.4 PSP的应用 345

14.5.5 PSP的扩展——团队软件过程 347

14.6小结 349

习题14 349

第15章 基于构件的软件工程 351

15.1基本概念 351

15.1.1 GBSE过程 351

15.1.2领域工程 352

15.1.3基于构件的开发 352

15.1.4 CBSE经济学 354

15.1.5软构件的可测试性 355

15.2可复用构件的分类与查询 357

15.2.1主要的分类方法 357

15.2.2基于刻面的检索 358

15.3基于构件的软件重用成熟度 359

15.3.1重用成熟度 359

15.3.2构件重用与软件成熟度的关系 360

15.4构件技术应用 361

15.4.1 CORBA构件模型CCM 361

15.4.2基于构件技术的移动通信监控系统 362

15.4.3构件技术在电力信息化中的应用 363

15.4.4基于演化构件的软件开发 364

15.4.5基于复用技术的仿真系统软件 364

15.5小结 367

习题15 368

第16章 应用Web工程 369

16.1 Web工程 369

16.1.1基于Web的系统及应用的特点 369

16.1.2 WebApp工程的层次 371

16.1.3 Web工程过程 371

16.1.4 Web工程的最佳实践 373

16.2 WebApp项目计划 374

16.2.1表述WebApp项目 374

16.2.2制定WebApp项目计划 376

16.2.3组建Web工程团队 377

16.2.4 Web工程的项目管理 378

16.3 WebApp分析 382

16.3.1 WebApp的需求分析 382

16.3.2 WebApp的分析模型 385

16.3.3内容模型 385

16.3.4交互模型 387

16.3.5功能模型 388

16.3.6配置模型 389

16.3.7关系导航分析 390

16.4 WebApp设计 392

16.4.1 Web工程设计 392

16.4.2 WebApp界面设计 395

16.4.3美学设计 399

16.4.4内容设计 400

16.4.5体系结构设计 400

16.4.6导航设计 403

16.4.7构件级设计 404

16.4.8超媒体设计模式 404

16.4.9面向对象的超媒体设计方法 405

16.5 WebApp测试 406

16.5.1 WebApp测试概念 406

16.5.2 WebApp测试过程 408

16.5.3 WebApp测试策略 409

16.6小结 411

习题16 413

参考文献 415