《软件工程 理论与实践》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:许家珆,白忠建,吴磊编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2009
  • ISBN:9787040280449;9787894692962
  • 页数:399 页
图书介绍:本书是普通高等教育“十一五”国家级规划教材,第一版为新世纪网络课程配套教材,全书共13章,内容包括软件工程概述、软件需求工程、软件设计等。

第1章 软件工程概述 1

1.1 软件工程的产生和发展 1

1.1.1 软件工程的发展过程 1

1.1.2 软件危机 2

1.1.3 软件工程的定义 3

1.1.4 软件工程研究的内容 3

1.1.5 软件工程的基本原则 5

1.2 软件与软件过程 5

1.2.1 软件的概念和特点 5

1.2.2 软件工程过程 7

1.3 软件过程模型 8

1.3.1 瀑布模型 8

1.3.2 增量模型 9

1.3.3 螺旋模型 9

1.3.4 喷泉模型 9

1.3.5 智能模型 11

1.4 软件开发方法 12

1.4.1 结构化开发方法 12

1.4.2 原型化开发方法 12

1.4.3 面向对象的开发方法 13

1.5 软件工具与软件开发环境 14

1.5.1 CASE发展的两个阶段 14

1.5.2 软件开发环境的分类 16

小结 16

习题一 17

第2章 软件需求工程 19

2.1 软件需求的基本概念 19

2.1.1 软件需求的任务 19

2.1.2 功能需求与非功能需求 20

2.2 需求工程过程 23

2.2.1 需求工程的基本活动 23

2.2.2 需求的获取和分析 24

2.2.3 需求的有效性验证 25

2.2.4 需求管理 25

2.3 软件需求获取技术 26

2.3.1 需求获取的困难 27

2.3.2 需求获取方法 27

2.4 需求分析与建模 29

2.4.1 需求分析方法 29

2.4.2 结构化分析方法 30

2.4.3 面向对象的分析方法 36

2.5 软件需求案例分析 37

2.5.1 案例1——医院病房监护系统 37

2.5.2 案例2——网上竞价拍卖系统 41

小结 43

习题二 43

第3章 软件设计 46

3.1 软件设计阶段的任务和目标 46

3.1.1 软件设计在开发阶段中的重要性 46

3.1.2 软件设计阶段的任务 47

3.2 软件体系结构设计 48

3.2.1 仓库模型 49

3.2.2 分布式结构 50

3.2.3 多处理器结构 51

3.2.4 客户-服务器模型 52

3.2.5 多层应用模型 54

3.2.6 分布式对象结构 55

3.2.7 中间件 57

3.2.8 其他体系结构 59

3.3 模块分解 60

3.3.1 模块分解的目的 60

3.3.2 模块间的关系 61

3.3.3 模块的独立性 62

3.3.4 信息隐蔽 65

3.4 详细设计描述工具 65

3.4.1 程序流程图 66

3.4.2 N-S图 66

3.4.3 PAD图 66

3.5 用户界面设计 67

3.5.1 用户界面设计的特性与设计任务 68

3.5.2 用户界面设计的基本原则 69

3.5.3 用户界面的基本类型 69

3.5.4 信息输入输出界面 71

3.5.5 MVC模式 78

小结 80

习题三 80

第4章 面向对象方法基础 83

4.1 面向对象方法概述 83

4.1.1 什么是面向对象方法 83

4.1.2 面向对象方法的主要特点 84

4.2 面向对象的基本概念 85

4.2.1 对象与类 85

4.2.2 继承 86

4.2.3 多态性 87

4.2.4 消息 87

4.3 面向对象的分析 88

4.3.1 需求分析中的问题 88

4.3.2 OOA的特点 89

4.3.3 OOA的基本任务和分析过程 90

4.4 面向对象的设计 91

4.4.1 面向对象设计的准则 91

4.4.2 面向对象设计的基本任务 92

4.5 典型的面向对象方法 93

4.5.1 Booch方法 94

4.5.2 Coad/Yourdon方法 96

4.5.3 对象模型技术 99

4.5.4 OOSE方法 104

小结 106

习题四 106

第5章 统一建模语言UML 109

5.1 UML概述 109

5.1.1 UML的形成 109

5.1.2 UML的特点 110

5.1.3 UML建模及其构成 111

5.1.4 UML的图形表示 112

5.1.5 通用模型元素 113

5.2 建立用例模型 115

5.2.1 需求分析与用例建模 115

5.2.2 确定执行者 116

5.2.3 确定用例 119

5.2.4 确定用例之间的关系 121

5.2.5 用例建模实例 122

5.3 建立静态模型 126

5.3.1 类与类图 126

5.3.2 确定类之间的关系 131

5.3.3 类图应用举例 137

5.3.4 包图 139

5.4 建立动态模型 142

5.4.1 消息 142

5.4.2 状态图 142

5.4.3 顺序图 145

5.4.4 协作图 148

5.4.5 活动图 151

5.4.6 动态建模应用举例 153

5.5 建立实现模型 155

5.5.1 构件图 155

5.5.2 配置图 157

5.6 UML 2.0 159

5.6.1 UML 2.0简介 159

5.6.2 UML 2.0的可视化图 161

5.6.3 UML 2.0的顺序图 163

5.7 RUP统一过程及其应用 165

5.7.1 UML与RUP统一过程 165

5.7.2 RUP的特点 166

5.7.3 RUP的二维开发模型 167

5.7.4 RUP的迭代开发模式 170

小结 171

习题五 171

第6章 软件实现 174

6.1 程序设计语言的选择 174

6.1.1 程序设计语言的分类 174

6.1.2 程序设计语言的基本组成 175

6.1.3 程序设计语言选择准则 176

6.2 结构化程序设计 181

6.2.1 结构化程序设计概念和特点 181

6.2.2 结构化程序设计的基本原理 182

6.2.3 优化设计 182

6.3 程序设计风格 183

6.3.1 源程序文件 183

6.3.2 语句构造方法 185

6.3.3 数据说明方法 185

6.3.4 输入/输出技术 186

6.4 算法与程序效率 186

6.4.1 算法转换过程中的指导原则 186

6.4.2 影响效率的因素 188

6.5 软件代码审查 190

小结 191

习题六 191

第7章 软件复用与构件技术 193

7.1 软件复用概述 193

7.1.1 软件复用的基本概念 193

7.1.2 软件复用的级别 194

7.1.3 软件复用的形式 195

7.2 软件复用的实施与过程 196

7.2.1 软件复用技术的实施 196

7.2.2 基于复用的软件开发过程 197

7.3 可复用构件与构件工程 198

7.3.1 可复用构件 198

7.3.2 基于构件的软件工程 199

7.4 领域工程分析和基于构件的开发 199

7.4.1 领域分析 199

7.4.2 构件的开发与构件库 200

7.4.3 基于构件的开发 202

7.5 基于构件的软件开发特点 203

7.5.1 软件开发的质量 203

7.5.2 软件开发的效率 203

7.5.3 软件开发的成本 204

7.6 软件构件技术的技术规范 204

7.6.1 OMG的CORBA 204

7.6.2 微软的COM 206

7.6.3 Sun的EJB 208

7.6.4 Web服务 210

小结 212

习题七 213

第8章 软件测试 214

8.1 软件测试的基本概念 214

8.1.1 软件测试的重要性和目的 214

8.1.2 软件测试的特点和基本原则 216

8.1.3 软件测试过程 219

8.1.4 静态分析与动态测试 222

8.2 白盒法测试 224

8.2.1 逻辑覆盖 224

8.2.2 语句覆盖 224

8.2.3 判定覆盖 225

8.2.4 条件覆盖 226

8.2.5 判定-条件覆盖 227

8.2.6 条件组合覆盖 227

8.3 黑盒法测试 229

8.3.1 等价分类法 229

8.3.2 边界值分析法 230

8.3.3 错误推测法 231

8.3.4 因果图法 231

8.4 软件测试的策略 234

8.4.1 单元测试 234

8.4.2 集成测试 237

8.4.3 确认测试 240

8.4.4 系统测试 241

8.4.5 α测试和β测试 242

8.4.6 验收测试 242

8.4.7 综合测试策略 243

8.5 软件调试 243

8.5.1 软件调试过程 243

8.5.2 软件调试策略 244

8.6 面向对象的测试 246

8.6.1 面向对象测试的特点 247

8.6.2 面向对象测试的类型 247

8.6.3 分析模型测试 250

8.6.4 类的测试 253

8.6.5 类模型测试 254

8.6.6 面向对象的测试用例 255

小结 255

习题八 256

第9章 软件维护 258

9.1 软件维护的基本概念 258

9.1.1 软件维护的目的 258

9.1.2 软件维护的类型 258

9.1.3 软件维护的特性 260

9.1.4 软件维护的代价 261

9.2 软件维护的过程 262

9.2.1 维护组织 262

9.2.2 维护工作的流程 263

9.2.3 维护工作的组织管理 263

9.3 软件维护技术 264

9.3.1 面向维护的技术 264

9.3.2 维护支援技术 265

9.3.3 维护档案记录 265

9.3.4 维护工作评价 265

9.4 软件可维护性 266

9.4.1 软件可维护性的定义 266

9.4.2 提高可维护性的方法 268

9.5 逆向工程和再工程 272

9.5.1 逆向工程 272

9.5.2 软件重构 273

9.5.3 再工程的成本/效益分析 273

9.5.4 再工程的风险分析 274

小结 274

习题九 274

第10章 软件工具与集成化环境 276

10.1 软件工具 276

10.1.1 软件开发工具 276

10.1.2 软件维护工具 278

10.1.3 软件管理与支持工具 280

10.2 集成化CASE环境 281

10.2.1 概述 281

10.2.2 集成化的CASE开发环境的体系结构 283

10.3 软件开发工具Rational Rose 286

10.3.1 Rose工具简介 286

10.3.2 业务用例图 287

10.3.3 用例图 288

10.3.4 类图 290

10.3.5 协作图与顺序图 292

10.3.6 活动图 294

10.3.7 状态图 295

10.3.8 构件图和部署图 297

10.4 软件开发工具Power-Designer 298

10.4.1 PowerDesigner工具简介 298

10.4.2 PowerDesigner的6个模块 299

10.4.3 PowerDesigner与Rose建模工具的对比 300

小结 301

习题十 301

第11章 软件项目管理 303

11.1 软件项目管理概述 303

11.1.1 软件项目管理的特点 303

11.1.2 软件项目管理的主要活动 304

11.1.3 软件项目风险管理 305

11.2 软件项目可行性研究 308

11.2.1 可行性研究的任务 309

11.2.2 系统的描述 309

11.2.3 可行性研究报告 310

11.3 软件项目成本估算技术 311

11.3.1 影响成本估算的因素 311

11.3.2 成本估算模型 312

11.3.3 专家估算模型 313

11.3.4 IBM估算模型 313

11.3.5 Putnam估算模型 314

11.3.6 COCOMO模型 314

11.3.7 成本/效益分析 316

11.4 软件项目组织与人员管理 317

11.4.1 软件开发进度计划 317

11.4.2 人员配备与组织 319

11.4.3 软件开发小组与软件生产率 320

11.5 软件质量保证 321

11.5.1 软件质量因素的定义 321

11.5.2 软件质量保证工作 322

11.5.3 软件项目的跟踪与控制 322

11.6 企业资源规划ERP 323

11.6.1 资源管理发展过程 323

11.6.2 ERP系统的管理思想 324

11.6.3 应用ERP与企业的关系 325

11.6.4 ERP的风险及其预防 326

11.6.5 ERP应用成功的标志 326

11.6.6 SAP ERP简介 327

小结 329

习题十一 329

第12章 软件能力成熟度模型CMM 331

12.1 CMM概述 331

12.1.1 CMM发展历史与主要用途 331

12.1.2 软件过程成熟度的基本概念 332

12.1.3 软件过程的成熟度等级 333

12.2 CMM的内部结构 335

12.2.1 关键过程域 335

12.2.2 关键实践 337

12.2.3 共同特性 337

12.3 CMM的应用 337

12.3.1 软件过程评估与软件能力评价 337

12.3.2 软件过程改进 339

12.4 CMM的实施与评估 339

12.4.1 软件过程评估的必要性 340

12.4.2 软件过程评估参考模型 341

12.4.3 CMM评估的执行步骤 343

12.4.4 软件企业如何实施CMM 346

12.4.5 CMM与ISO 9000标准 349

12.5 软件能力成熟度模型集成CMMI 350

12.5.1 CMMI的产生与发展 350

12.5.2 CMMI的基本思想 351

12.5.3 CMMI的基本内容 352

小结 354

习题十二 354

第13章 软件工程课程设计 356

13.1 课程设计目的和要求 356

13.1.1 目的和要求 356

13.1.2 命题原则 356

13.2 课程设计步骤安排 357

13.2.1 确定课题 357

13.2.2 需求分析 357

13.2.3 软件设计 357

13.2.4 编码与测试 358

13.2.5 验收测试 358

13.3 案例分析 359

13.3.1 案例一:ATM系统 359

13.3.2 案例二:网上拍卖系统 366

13.3.3 案例三:会议管理系统 373

13.3.4 案例四:仓库信息管理系统 388

参考文献 398

参考网站 400