《现代软件工程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:孙涌等编著
  • 出 版 社:北京:北京希望电子出版社
  • 出版年份:2002
  • ISBN:7900101705
  • 页数:426 页
图书介绍:

1.1 软件工程的基本概念、特点、分类 1

1.1.1 软件的概念、特点 1

第1章 软件工程概述 1

1.1.2 软件的分类 2

1.1.3 软件工程概述 4

1.2 软件发展和软件危机 6

1.2.1 软件的发展 6

1.2.2 软件危机过程 7

1.3 软件模型 10

1.4 软件工程的基本目标 14

习题1 15

1.5 小结 15

第2章 软件需求分析 16

2.1 需求分析的任务 16

2.1.1 基本原理 16

2.1.2 需求的层次 16

2.1.3 需求的开发与管理 17

2.2 需求获取的技术 19

2.2.1 需求分析人员的组成 19

2.2.2 需求的类型 19

2.3.1 需求说明的目的 20

2.3.2 需求说明的方法 20

2.3 需求规格说明书 20

2.2.3 获取需求的途径 20

2.3.3 数据流图 21

2.3.4 数据词典和加工说明 22

2.3.5 需求规格说明书格式 23

2.4 需求分析的过程 23

2.4.1 抽取现实问题的本质 23

2.4.2 改进和优化 24

2.4.3 需求分析的验证 25

2.5 结构化需求分析方法 26

2.5.1 画分层数据流图 26

2.5.2 确定数据定义和加工策略 28

2.5.3 需求分析的复审 29

2.6 原型化需求分析方法 30

2.7 小结 30

习题2 31

第3章 软件设计原理 33

3.1 软件设计的任务 33

3.1.1 基本原理 33

3.1.2 实际工作的误区 34

3.2 软件设计的步骤 34

3.2.1 两种设计思路 34

3.2.2 概要设计 35

3.2.3 详细设计 35

3.3.1 模块化 36

3.2.4 设计复审 36

3.3 软件设计的模块化思想 36

3.3.2 分解 38

3.3.3 信息隐藏和局部化 38

3.3.4 模块独立性(modular independence) 38

3.4 软件设计的原则 46

3.4.1 提高模块独立性 46

3.4.2 调整模块的大小 47

3.4.3 适当的模块深度、宽度、扇出和扇入 47

3.4.4 模块的作用范围应在控制范围之内 48

习题3 49

3.5 小结 49

3.4.5 简化模块接口的复杂程度 49

第4章 软件设计方法 51

4.1 软件设计常用工具 51

4.1.1 概要设计工具 51

4.1.2 详细设计工具 53

4.2 结构化软件设计方法 55

4.2.1 概念 56

4.2.2 变换分析 58

4.2.3 事务分析 60

4.2.4 设计的后处理 61

4.3.2 表示数据结构的Jackson图 62

4.3.1 面向数据结构的设计 62

4.3 Jackson设计方法 62

4.3.3 表示程序结构的Jackson图 65

4.3.4 Jackson伪代码 65

4.4.5 Jackson设计方法步骤 66

4.4 面向对象软件设计方法概述 67

4.4.1 什么是面向对象的软件设计方法 67

4.4.2 面向对象分析OOA 67

4.4.3 面向对象设计OOD 68

4.5 小结 68

习题 4 68

5.1 程序设计语言分类 70

第5章 编码设计 70

5.2 程序设计语言的特点 71

5.3 编码的目的 73

5.4 写程序的风格 74

5.5 程序设计方法论 77

5.6 面向对象编程概念 77

5.7 面向对象编程语言 81

5.8 小结 86

习题5 86

第6章 面向对象技术 87

6.1 面向对象的概念 87

6.1.1 面向对象方法概述 87

6.1.2 面向对象的软件工程 88

6.1.3 面向对象的基本概念 90

6.2 对象的本质及表示 97

6.3 面向对象软件的开发过程 99

6.3.1 应用生存期 99

6.3.2 类生存期 100

6.3.3 面向对象软件的开发过程 104

6.3.4 系统体系结构 105

6.4 面向对象软件项目的管理 106

6.5 统一建模语言UML简介(一) 108

6.5.1 发展历史 108

6.5.2 UML简介 109

6.5.3 UML视图简介 110

6.5.4 视图 111

6.5.5 UML类、构件、部署和协作图中的图标 112

6.5.6 扩展组件 112

6.5.7 各种视图间的关系 113

6.6 小结 114

习题6 114

第7章 面向对象分析 115

7.1 面向对象分析(OOA)基本内容 115

7.1.1 OOA的基本原则和任务 116

7.1.2 常用的OOA方法 116

7.1.3 OOA概述 118

7.2.1 论域分析介绍 119

7.2 论域分析 119

7.2.2 论域分析过程 122

7.3 系统分析过程 123

7.3.1 使用实例 123

7.3.2 类—责任—协作者建模 125

7.3.3 定义结构和层次 127

7.3.4 定义主题和子系统 128

7.4 OOA的Yourdon方法 130

7.4.1 面向对象分析的考虑 130

7.4.2 标识类和对象 131

7.4.3 细化类和对象 133

7.4.4 标识属性 134

7.4.5 标识服务 136

7.4.6 标识结构 138

7.4.7 标识主题 139

7.5 统一建模语言UML简介(二) 140

7.5.1 静态视图 140

7.5.2 用例图 141

7.5.3 交互视图 142

7.5.4 状态图 144

7.5.5 活动视图 145

7.5.6 物理视图 146

习题7 148

7.6 小结 148

7.5.7 模型管理视图 148

第8章 面向对象设计 150

8.1 面向对象设计(OOD)概述 150

8.1.1 高层设计 150

8.1.2 类设计的目标和方针 153

8.1.3 通过复用设计类 154

8.1.4 类设计方法 156

8.1.5 类设计的例子 158

8.2 系统设计过程 162

8.2.1 划分分析模型 162

8.2.3 任务管理构件 163

8.2.2 并发性和子系统分配 163

8.2.4 数据管理构件 164

8.2.5 资源管理构件 164

8.2.6 人机界面构件 164

8.2.7 子系统间通信 164

8.3 OOD的Yourdon方法 165

8.3.1 问题论域部分(PDC,Problem Domain Component)的设计 166

8.3.2 用户界面部分的设计 168

8.3.3 任务管理部分的设计 170

8.3.4 数据管理部分的设计 171

8.3.5 程序设计语言的影响 172

8.4 Booch的方法 172

8.4.2 Booch方法的基本的模型 173

8.4.1 Booch方法的设计过程 173

8.5 统一建模语言UML简介(三) 177

8.5.1 项目概述 178

8.5.2 静态分析和设计 178

8.5.3 持久对象设计 180

8.5.4 动态对象设计 181

8.5.5 通用界面设计 183

8.5.6 体系结构设计 186

8.6 小结 189

习题8 189

9.1.1 软件测试目标 190

9.1 软件测试概述 190

第9章 软件测试 190

9.1.2 软件测试原则 191

9.1.3 软件测试方法 192

9.1.4 软件测试与软件开发各阶段的关系 192

9.1.5 测试信息流 193

9.1.6 错误分类 193

9.2 软件测试过程与策略 195

9.2.1 单元测试 195

9.2.2 集成测试 197

9.2.3 确认测试 199

9.3 设计测试方案 201

9.2.4 平行运行 201

9.3.1 逻辑覆盖 202

9.3.2 等价划分 206

9.3.3 边界值分析 208

9.3.4 错误推测 209

9.3.5 实用测试策略 210

9.4 对OOA和OOD模型的测试 213

9.4.1 扩大测试的视角 213

9.4.2 测试OOA和OOD模型 214

9.5 面向对象的测试策略 215

9.5.3 在OO语境中的有效性测试 216

9.6 OO软件的测试用例设计 216

9.5.2 在OO语境中的集成测试 216

9.5.1 在OO语境中的单元测试 216

9.6.1 OO概念的测试用例设计的含义 217

9.6.2 传统测试用例设计方法的可用性 217

9.6.3 基于故障的测试 217

9.6.4 OO编程对测试的影响 218

9.6.5 测试用例和类层次 219

9.6.6 基于场景的测试设计 219

9.6.7 测试表层结构和深层结构 220

9.7 其他专门环境要求的测试 221

9.7.1 GUI测试 221

9.7.2 测试文档和帮助设施 222

9.7.3 实时系统测试 223

9.8 小结 223

习题9 224

第10章 软件的技术度量 226

10.1 软件质量 226

10.1.1 McCall的质量因素 227

10.1.2 FURPS 229

10.2 软件技术度量框架 230

10.2.1 技术度量的挑战 230

10.2.2 测度原则 230

10.3.1 基于功能的度量 231

10.3 分析模型的度量 231

10.2.3 有效软件度量的属性 231

10.3.2 “撞击值”度量 233

10.3.3 规约质量的度量 234

10.4 设计模型的度量 235

10.4.1 高层设计度量 235

10.4.2 构件级设计度量 237

10.4.3 界面设计度量 239

10.4.4 源代码度量 239

10.4.5 对测试的度量 241

10.4.6 对维护的度量 242

10.6.1 局部化 243

10.6 度量特征 243

10.6.2 封装 243

10.5.1 面向对象度量的目的 243

10.5.2 区别性的特征 243

10.5 面向对象度量概述 243

10.6.3 信息隐蔽 244

10.6.4 继承 244

10.6.5 抽象 244

10.7 对OO设计模型的度量 244

10.8 对类设计的度量 244

10.8.1 CK度量套件 245

10.8.2 Lorenz和Kidd建议的度量 246

10.9 对操作的度量 247

10.10 对面向对象测试的度量 248

10.11 对面向对象项目的度量 248

10.12 小结 249

习题10 249

第11章 软件维护 251

11.1 系统的变化 251

11.1.1 系统的类型 252

11.1.2 系统生命周期中的变化 253

11.1.3 系统的生命范围 254

11.1.4 开发时间和维护时间 254

11.2.1 决定软件可维护性的因素 256

11.2 软件的可维护性 256

11.2.2 文档 257

11.2.3 可维护性复审 258

11.2.4 提高可维护性的方法 258

11.3 软件维护的任务及过程 260

11.3.1 维护机构 260

11.3.2 编写报告 261

11.3.3 维护流程 261

11.3.4 记录保存 263

11.3.5 评价 264

11.4.2 修改数据的副作用 265

11.4.1 修改代码的副作用 265

11.4 软件维护的副作用 265

11.4.3 修改文档的副作用 266

11.5 反推工程和再生工程 266

11.6 预防性维护 267

11.7 小结 267

习题11 268

第12章 软件质量保证 269

12.1 软件质量概述 269

12.1.1 软件质量的定义 269

12.1.2 软件质量评价 270

12.1.3 软件开发中的质量控制 270

12.2 软件质量保证 271

12.2.1 SQA计划 272

12.2.2 软件质量代价 273

12.2.3 软件工程与软件质量保证 274

12.3 软件质量度量模型 275

12.3.1 有关定义 275

12.3.2 质量度量模型 275

12.3.3 3种度量模型的比较 277

12.4 软件可靠性 278

12.4.1 基本概念 279

12.4.2 影响软件可靠性的原因 279

12.4.3 软件可靠性模型 280

12.4.4 软件可靠性工程 282

12.5 质量体系的建立和实施 282

12.5.1 ISO9000标准的产生 282

12.5.2 ISO9000系列标准的内容 283

12.5.3 ISO9000:2000版的特点 284

12.6 CMM:软件能力成熟度模型 285

12.6.1 CMM的发展 285

12.6.2 基本概念 286

12.6.3 SW-CMM的用途 287

12.6.4 CMM的五个等级 287

12.6.5 CMM的内部结构 290

12.6.6 软件过程改进 292

12.7 程序正确性证明 294

12.8 小结 294

习题12 295

第13章 软件项目管理与计划 296

13.1 项目管理的概念 296

13.1.1 项目管理过程 296

13.1.2 项目管理的范围 297

13.2 软件过程和项目的度量 297

13.2.1 测度、度量和指标 298

13.2.2 过程和项目领域中的度量 298

13.2.3 软件度量 301

13.2.4 调和不同的度量方法 305

13.2.5 软件质量的度量 305

13.2.6 在软件过程中集成度量 306

13.3 可行性研究 307

13.3.1 可行性研究的任务及过程 307

13.3.2 技术可行性研究 307

13.3.3 经济可行性研究 309

13.3.4 运行可行性研究 311

13.4 软件项目估算 312

13.4.1 对估算的考虑 312

13.4.2 项目计划目标 312

13.4.4 资源 313

13.4.3 软件的范围 313

13.4.5 分解技术 315

13.5 软件开发成本估算 317

13.5.1 软件开发成本估算方法 317

13.5.2 专家判定技术 318

13.5.3 软件开发成本估算的早期经验模型 319

13.6 软件风险管理 321

13.6.1 风险识别 321

13.6.2 风险估计 323

13.6.3 风险评价 324

13.6.4 风险驾驭和监控 325

13.7.1 软件开发小组人数与软件生产率 326

13.7 进度安排 326

13.7.2 任务的确定与并行性 327

13.7.3 制定开发进度计划 327

13.7.4 项目的追踪和控制 329

13.8 软件项目的组织与计划 329

13.8.1 软件项目管理的特点 329

13.8.2 制定计划 330

13.8.3 软件项目组织的建立 331

13.8.4 人员配备 332

13.9 小结 333

习题13 333

14.1.1 客户/服务器系统的结构 335

第14章 软件工程新技术概述 335

14.1 客户/服务器软件工程 335

14.1.2 对C/S系统的软件工程 338

14.1.3 分析建模问题 338

14.1.4 对C/S系统的设计 338

14.1.5 测试问题 341

14.2 构件接口技术 343

14.2.1 概述 343

14.2.2 EJB/J2EE技术 344

14.2.3 COM+技术 352

14.2.4 CORBA 362

14.3 软件复用 373

14.3.1 管理问题 374

14.3.2 复用过程 376

14.3.3 领域工程 378

14.3.4 建造可复用构件 381

14.3.5 分类和检索构件 383

14.3.6 软件复用经济学 386

14.3.7 复用实例研究 387

14.4 小结 389

习题14 390

附录1 391

附录2 407

参考文献 425