《面向对象的软件工程 构建复杂且多变的系统》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Bernd Bruegge,(美)Allen H.Dutoit著;吴丹等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7302059381
  • 页数:461 页
图书介绍:

第1部分 开始 1

第1章 软件工程介绍 1

1.1 引言:软件工程故障 1

1.2 什么是软件工程 3

1.2.1 建模 4

1.2.2 问题求解 5

1.2.3 知识获取 6

1.2.4 基本原理管理 6

1.3 软件工程概念 7

1.3.2 系统和模型 8

1.3.1 参与者和角色 8

1.3.3 工作产品 9

1.3.4 活动、任务和资源 9

1.3.5 目标、需求和约束 9

1.3.6 符号、方法和方法学 10

1.4 软件工程开发活动 10

1.4.1 需求提出 11

1.4.2 分析 11

1.4.3 系统设计 12

1.5.1 交流 13

1.5 软件开发的管理 13

1.4.5 实现 13

1.4.4 对象设计 13

1.5.2 基本原理管理 14

1.5.3 测试 14

1.5.4 软件配置管理 14

1.5.5 项目管理 15

1.5.6 软件生命周期 15

1.6 习题 15

参考文献 16

2.1 介绍 18

第2章 用UML建模 18

2.2 UML概述 19

2.2.1 用例图 19

2.2.2 类图 19

2.2.3 顺序图 20

2.2.4 状态图 21

2.2.5 活动图 22

2.3 建模概念 22

2.3.1 系统、模型和视图 23

2.3.2 概念和现象 24

2.3.3 数据类型、抽象数据类型和实例 26

2.3.4 类、抽象类和对象 27

2.3.5 事件类、事件和消息 28

2.3.6 面向对象的建模 29

2.3.7 证伪和原型化 30

2.4 从更深层次看UML 31

2.4.1 用例图 31

2.4.2 类图 36

2.4.3 顺序图 41

2.4.4 状态图 42

2.4.5 活动图 44

2.4.6 图表组织 46

2.4.7 图表扩展 49

2.5 习题 50

参考文献 50

第3章 项目交流 52

3.1 引言:一个火箭的例子 52

3.2 项目交流纵览 53

3.3 交流模式 55

3.3.1 问题定义 56

3.3.2 客户评审 57

3.3.3 项目评审 58

3.3.4 检查和预排 59

3.3.5 状况检查 59

3.3.6 集体讨论 59

3.3.7 发布 60

3.3.8 事后讨论 60

3.3.9 需求阐明 61

3.3.10 需求变更 62

3.3.11 问题求解 62

3.3.12 讨论 63

3.4 交流机制 64

3.4.1 hallway交谈 65

3.4.2 调查问卷和有组织的访谈 65

3.4.3 会议 66

3.4.4 评审 69

3.4.5 实时异地群件 69

3.4.6 电子邮件 69

3.4.7 新闻组 70

3.4.8 万维网 71

3.4.9 Lotus Notes 71

3.5.1 确定交流需求 73

3.5 项目交流活动 73

3.4.10 讨论 73

3.5.2 建立基础构架 75

3.5.3 组织客户和项目评审 75

3.5.4 每周组织小组会议 76

3.5.5 转变问题回顾 78

3.6 习题 79

参考文献 79

第4章 需求提出 81

4.1 引言:可用性实例 81

第2部分 处理复杂性 81

4.2 需求提出概述 83

4.3 需求提出的概念 84

4.3.1 功能性需求 84

4.3.2 非功能性需求和伪需求 85

4.3.3 描述的层次 86

4.3.4 正确性、完整性、一致性、清晰性和现实性 87

4.3.5 可验证性和可追溯性 88

4.3.6 greenfield工程、再工程、界面工程 89

4.4 需求提出活动 89

4.4.1 确定执行者 90

4.4.2 确定场景 91

4.4.3 确定用例 93

4.4.4 改进用例 94

4.4.5 确定执行者和用例之间的关系 95

4.4.6 确定最初的分析对象 98

4.4.7 确定非功能性需求 100

4.5 管理需求提出 101

4.5.1 从用户提出信息:任务的知识分析 101

4.5.2 与客户协商系统说明:联合应用设计 102

4.5.3 确定需求:可用性测试 104

4.5.4 记者需求的提出 106

4.6 习题 108

参考文献 109

第5章 分析 111

5.1 引言:幻觉 111

5.2 分析概述 112

5.3 分析的概念 113

5.3.1 实体对象、边界对象和控制对象 114

5.3.2 回顾关系重数 114

5.3.3 受限关系 116

5.3.4 归纳 117

5.4.1 标识实体对象 118

5.4 分析活动:从用例到对象 118

5.4.2 标识边界对象 121

5.4.3 标识控制对象 122

5.4.4 对对象之间的交互进行建模:顺序图 123

5.4.5 标识关系 126

5.4.6 标识属性 128

5.4.7 对单个对象的重要行为进行建模 129

5.4.8 对对象间的归纳关系建模 130

5.4.9 检查分析模型 130

5.4.10 分析总结 131

5.5.1 记录分析 133

5.5 管理分析 133

5.5.2 分配责任 134

5.5.3 对分析的交流 135

5.5.4 分析模型的循环 136

5.5.5 客户签字认可 137

5.6 习题 139

参考文献 140

第6章 系统设计 142

6.1 介绍:一个楼层设计的例子 142

6.2 系统设计概况 145

6.3.1 子系统和类 147

6.3 系统设计的概念 147

6.3.2 服务和子系统接口 148

6.3.3 耦合度与相关性 148

6.3.4 分层和分区 151

6.3.5 软件体系结构 155

6.3.6 UML配置图 160

6.4 系统设计活动:从对象到子系统 162

6.4.1 起点:路线设计系统的分析模型 162

6.4.2 确定设计目标 164

6.4.3 确定子系统 167

6.4.4 将子系统映射到处理器和组件 169

6.4.5 定义连续数据的存储 173

6.4.6 定义访问控制 176

6.4.7 设计全局控制流 180

6.4.8 确定边界条件 183

6.4.9 预期变化 185

6.4.10 系统设计综述 187

6.5 系统设计的管理 188

6.5.1 记录系统设计 188

6.5.2 分配任务 190

6.5.3 与系统设计相关的交流 191

6.5.4 系统设计的不断反复 192

6.6 习题 193

参考文献 194

第7章 对象设计 196

7.1 介绍:电影示例 196

7.2 对象设计概况 198

7.3 对象设计概念 201

7.3.1 应用域对象和解决域对象回顾 201

7.3.2 类型、声明和可见性回顾 201

7.3.3 合约:不变量、前提条件和后续条件 202

7.3.4 UML对象约束语言 204

7.4 对象设计活动 205

7.4.1 确定遗漏的属性和操作 209

7.4.2 指定类型、声明和可见性 212

7.4.3 指定约束条件 213

7.4.4 指定异常情况 215

7.4.5 确定并调整类库 216

7.4.6 确定并调整应用程序框架 218

7.4.7 框架的例子:Web对象 219

7.4.8 实现关系 221

7.4.9 提高可复用性 227

7.4.10 消除实现的依赖性 228

7.4.11 回顾访问路径 231

7.4.12 退化对象:将对象转变成属性 232

7.4.13 存储高开销计算的结果 233

7.4.14 推迟离开销计算 233

7.5 对象设计的管理 233

7.5.1 用文档记录对象设计 234

7.5.2 分配职责 239

7.6 习题 240

参考文献 241

第8章 基本原理管理 244

第3部分 管理变化 244

8.1 介绍:火腿的例子 245

8.2 基本原理概况 246

8.3 基本原理概念 248

8.3.1 集中交通管制 248

8.3.2 定义难题(Problem):问题 249

8.3.3 研究求解空间:提议 250

8.3.4 评估求解空间:标准和讨论 251

8.3.5 破解求解空间:解决方案 253

8.3.7 基于问题的模型和系统的例子 255

8.3.6 解决方案的实现:活动项 255

8.4.1 CTC系统设计 258

8.4 基本原理活动:从问题到决策 258

8.4.2 记录会议中的基本原理 259

8.4.3 异步记录基本原理 266

8.4.4 记录讨论变化时的基本原理 268

8.4.5 重组基本原理 271

8.5 管理基本原理 273

8.5.1 建立基本原理文档 273

8.5.2 分配任务 275

8.5.4 问题建模和协商 276

8.5.3 有关基本原理交流的试探法 276

8.5.5 冲突解决策略 277

8.6 习题 278

参考文献 279

第9章 测试 281

9.1 介绍 281

9.2 测试概况 283

9.2.1 质量控制技术 284

9.2.2 错误避免技术 284

9.2.3 检错技术 286

9.2.4 容错技术 288

9.3 测试概念 288

9.3.1 错误(fault)、误差(error)和故障(failure) 289

9.3.2 测试实例 292

9.3.3 测试存根和驱动程序 294

9.3.4 改正 294

9.4 测试活动 295

9.4.1 检查组件 295

9.4.2 单元测试 296

9.4.3 集成测试 303

9.4.4 系统测试 307

9.5 测试的管理 312

9.5.1 规划测试 312

9.5.2 记录测试 313

9.5.3 分配职责 316

9.6 习题 316

参考文献 317

第10章 软件配置管理 319

10.1 介绍:飞机的例子 319

10.2 配置管理概述 321

10.3 配置管理概念 322

10.3.1 配置项和CM聚集 323

10.3.2 版本和配置 324

10.3.3 变化请求 325

10.3.4 宣传版本和发布版本 325

10.3.5 仓库和工作区 326

10.3.6 版本识别方案 326

10.3.7 变化和变化集合 328

10.3.8 配置管理工具 330

10.4 配置管理活动 330

10.4.1 配置项和CM聚集确认 332

10.4.2 宣传版本管理 333

10.4.3 发布版本管理 336

10.4.4 分支管理 337

10.4.5 不同版本管理 341

10.4.6 变化管理 343

10.5 管理配置管理 345

10.5.1 记录配置管理 345

10.5.2 分配配置管理任务 346

10.5.3 计划配置管理活动 346

10.6 习题 347

参考文献 348

11.1 介绍:STS-SIL发射决定 349

第11章 项目管理 349

11.2 项目管理概述 351

11.3 管理的概念 354

11.3.1 小组 355

11.3.2 角色 360

11.3.3 工作产品 362

11.3.4 任务 362

11.3.5 进度表 363

11.4.1 智能办公建筑 366

11.4 项目管理活动 366

11.4.2 项目启动 367

11.4.3 项目监督 378

11.4.4 风险管理 379

11.4.5 项目协议 382

11.4.6 用户验收测试 382

11.4.7 安装 383

11.4.8 事后总结 383

11.5 项目管理模型和活动的管理 383

11.5.1 记录项目管理 383

11.5.2 分配职责 385

11.5.3 交流项目管理 386

11.6 习题 387

参考文献 388

第4部分 尾声 390

第12章 软件生命周期 390

12.1 引言 390

12.2 IEEE1074:开发生命周期过程的标准 393

12.2.1 过程和活动 393

12.2.3 项目管理 394

12.2.2 生命周期建模 394

12.2.4 前期开发 396

12.2.5 开发 397

12.2.6 后期开发 398

12.2.7 整体过程(交叉开发) 399

12.3 评价软件生命周期模型的成熟度 400

12.4 生命周期模型 402

12.4.1 瀑布模型 404

12.4.2 V模型 406

12.4.3 Boehm的螺旋模型 406

12.4.4 锯齿模型 408

12.4.5 鲨齿模型 410

12.4.6 统一软件开发过程 411

12.4.7 基于问题的生命周期模型 413

12.5 管理活动和产品 415

12.5.1 例1:历时4个月在一个地点进行的项目 415

12.5.2 例2:历时8个月在两个地点进行的项目 418

12.6 习题 420

参考文献 421

第5部分 附录 422

附录A 设计模式 422

A.1 抽象Factory:封装平台 422

A.2 Adapter:包装遗留代码 423

A.3 Bridge:允许备选实现 424

A.4 Command:封装控制 425

A.5 Composite:表示递归的层次结构 426

A.6 Facade:封装子系统 427

A.7 Observer:将实体与视图分离 428

A.8 Proxy:封装昂贵的对象 429

A.9 Strategy: 封装算法 430

参考文献 430

附录B 术语表 432

附录C 参考文献 452