《实用软件工程》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(澳)Leszek A.Maciaszek,(澳)Brue Lee Liong著;胡长军,张晓明等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2007
  • ISBN:711120008x
  • 页数:614 页
图书介绍:本书涵盖统一建模语言、设计模式、组件技术、数据库设计、界面设计、重构技术、J2EE等知识。

第一部分 软件项目 3

第1章 软件开发生命周期 3

1.1 软件工程的精髓 4

1.1.1 软件系统比企业信息系统的范围小 4

1.1.2 软件过程是业务过程的一部分 5

1.1.3 软件工程不同于传统工程 6

1.1.4 软件工程不只是程序设计 7

1.1.5 软件工程需要建模 8

1.1.6 软件系统是复杂的 9

1.2 生命周期阶段 11

1.2.1 需求分析 11

1.2.2 系统设计 12

1.2.4 集成和部署 13

1.2.3 实现 13

1.2.5 运行和维护 15

1.3 生命周期模型 15

1.3.1 带反馈的瀑布式生命周期 16

1.3.2 迭代增量式的生命周期 17

小结 23

复习题 25

第2章 软件建模语言 26

2.1 结构化建模语言 27

2.1.1 数据流建模 27

2.1.2 实体-联系建模 29

2.2 面向对象建模语言 30

2.2.1 类图 31

2.2.2 用例图 34

2.2.3 交互图 35

2.2.4 状态图 38

2.2.5 活动图 40

2.2.6 实现图 41

小结 43

复习题 44

解答题 44

第3章 软件工程工具 46

3.1 项目管理工具 47

3.1.1 项目调度和控制 47

3.1.2 用战略眼光来安排项目和性能管理 48

3.1.3 项目管理与基于Web的协作及内容管理的统一 48

3.1.4 项目管理与基于Web的组合管理的统一 50

3.1.5 项目管理中的度量 51

3.1.6 项目管理中的风险管理 52

3.2 系统建模工具 54

3.2.1 需求管理 54

3.2.2 可视化UML建模 57

3.2.3 报表生成 59

3.2.4 数据库建模 59

3.3 集成开发环境 60

3.3.1 常规的编程任务 61

3.3.2 与软件建模集成 66

3.3.3 企业应用开发 67

3.3.4 与业务组件集成 68

3.3.5 与变更和配置管理集成 69

3.4 变更和配置管理工具 71

3.4.1 变更管理支持 71

3.4.2 版本管理支持 72

3.4.3 系统构建支持 74

3.4.4 再工程支持 75

小结 77

复习题 78

解答题 78

第4章 软件项目计划和跟踪 80

4.1 项目计划制定 80

4.2 项目进度安排 83

4.2.1 任务、里程碑和可交付成果 83

4.2.2 用条形图表示任务调度 84

4.2.3 资源和资源日历 86

4.2.4 用条形图表示人工量驱动的进度安排 87

4.2.5 资源分配不足和过度分配 88

4.3 项目预算估算 90

4.3.1 进度驱动的预算估算 91

4.3.2 算法预算估算 94

4.4 跟踪项目进展 98

4.4.1 跟踪进度 99

4.4.2 跟踪预算 101

小结 106

复习题 107

解答题 107

第5章 软件过程管理 110

5.1 人员管理 111

5.1.1 选拔和激励人员 111

5.1.2 项目沟通 113

5.2 风险管理 116

5.1.3 团队建设 116

5.2.1 风险识别 117

5.2.2 风险评估 118

5.2.3 风险处理 120

5.3 质量管理 121

5.3.1 软件质量 121

5.3.2 质量控制 123

5.3.3 质量保证 126

5.4 变更和配置管理 129

5.4.1 需求变更 130

5.4.2 工件的版本 131

5.4.3 缺陷和扩展 132

5.4.4 度量 134

小结 136

复习题 137

第二部分 从需求分析经由体系结构设计到软件发布 141

第6章 业务对象模型 141

6.1 广告费用评估——业务 141

6.2 业务环境图 142

6.3 业务用例模型 143

6.3.1 业务用例和业务执行者 143

6.3.2 AEM业务用例模型 143

6.3.3 AEM可替换业务用例模型 144

6.4 业务术语表 145

6.5 业务类模型 146

6.5.1 业务实体 147

6.5.2 AEM业务类模型 147

6.5.3 AEM业务类模型的替换模型 148

案例题 149

讨论题 149

复习题 149

小结 149

解答题 150

案例分析 150

小案例——广告费用评估 150

练习 151

第7章 领域对象模型 152

7.1 联系人管理——领域 152

7.2 领域用例模型 153

7.2.1 用例和执行者 153

7.2.2 用例联系 153

7.2.3 联系人管理的用例模型 154

7.2.4 联系人管理的可替换用例模型 156

7.3 领域术语表 157

7.4 领域类模型 158

7.4.1 类和属性 159

7.4.2 类之间的联系 159

7.4.3 联系人管理的类模型 160

7.4.4 联系人管理的可替换类模型 161

小结 162

复习题 163

讨论题 163

案例题 163

解答题 163

案例分析 163

小案例——时间日志 164

练习 165

第8章 第1次迭代需求和对象模型 166

8.1 用例模型 167

8.2 用例文档 167

8.2.1 概要描述、前置条件和后置条件 168

8.2.2 基本流程 168

8.2.3 子流程 169

8.2.4 异常流程 171

8.3 概念类 171

8.4 补充规格说明 172

小结 174

复习题 174

讨论题 174

案例题 174

小案例——时间日志 175

案例分析 175

解答题 175

第9章 体系结构设计 176

9.1 体系结构层和依赖性管理 176

9.1.1 体系结构模块 177

9.1.2 包依赖性 178

9.1.3 层依赖性 179

9.1.4 类依赖性 180

9.1.5 继承依赖性 181

9.1.6 方法依赖性 184

9.1.7 接口 187

9.1.8 事件处理 190

9.1.9 相识 194

9.2 体系结构框架 197

9.2.1 模型-视图-控制器 197

9.2.2 表示-控制-中介者-实体-基础 199

9.3 体系结构模式 203

9.3.1 外观 203

9.3.2 抽象工厂 204

9.3.3 责任链 205

9.3.4 观察者模式 205

9.3.5 中介者 207

小结 208

复习题 209

解答题 209

案例分析 209

小案例——联系人信息管理 210

练习 213

10.1 从软件工程角度介绍关系数据库 214

第10章 数据库设计和编程 214

10.1.1 表 215

10.1.2 引用完整性 216

10.1.3 概念和逻辑数据库模型 218

10.1.4 实现业务规则 219

10.1.5 数据库应用逻辑程序设计 220

10.1.6 索引 222

10.2 将临时对象映射成持久记录 225

10.2.1 对象数据库、SQL:1999和阻抗不匹配 225

10.2.2 对象-关系映射 226

10.3 用于电子邮件管理的数据库设计和创建 230

10.3.1 数据库模型 231

10.3.2 创建数据库模式 232

10.3.3 示例数据库内容 233

讨论题 234

复习题 234

小结 234

案例分析题 235

解答题 235

案例分析 235

小案例——联系人信息管理 235

第11章 类设计和交互设计 236

11.1 从用例需求中寻找类 237

11.1.1 从电子邮件管理系统的用例需求中寻找类 237

11.1.2 电子邮件管理系统的初始类设计 240

11.2 类设计的体系结构细化 241

11.2.1 电子邮件管理系统类设计的体系结构细化 244

11.2.2 体系结构细化后电子邮件管理系统的类设计 245

11.3 交互 246

11.2.3 类的实例化 246

11.3.1 序列图 247

11.3.2 通信图 249

11.3.3 交互概述图 249

11.4 电子邮件管理系统中的交互 251

11.4.1 “登录”交互 251

11.4.2 “退出”交互 252

11.4.3 “查看待发邮件”交互 253

11.4.4 “显示邮件文本”交互 254

11.4.5 “发送邮件”交互 254

11.4.6 “错误的用户名和密码”交互 255

11.4.7 “错误的选项”交互 256

11.4.8 “邮件过多”交互 257

11.4.9 “不能发送邮件”交互 257

小结 257

讨论题 258

复习题 258

案例分析题 259

解答题 259

案例分析练习 259

小案例——时间日志系统 259

小案例——联系人信息管理系统 260

第12章 编程和测试 261

12.1 基于软件工程的Java快速指南 261

12.1.1 类 261

12.1.2 类的关联与集合 264

12.1.3 Java中的数据库访问 270

12.2 测试驱动开发 276

12.2.1 JUnit框架 277

12.2.2 邮件管理系统测试驱动开发 279

12.3 验收测试和回归测试 283

12.3.1 电子邮件管理系统的测试脚本 285

12.3.2 测试输入、输出和电子邮件管理系统的回归测试 286

12.3.3 电子邮件管理系统中测试脚本的实现 288

12.4 第1次迭代运行时的截图 291

小结 294

复习题 295

解答题 296

指南和案例分析练习 296

小案例——时间日志系统 297

小案例——联系人信息管理系统 297

第13章 第1次迭代代码评注 298

13.1 代码概览 298

13.2.2 IAEmployee接口 300

13.2.1 IAConstants接口 300

13.2 acquaintance包 300

13.2.3 IAContact接口 301

13.2.4 IAOutMessage接口 302

13.3 presentation包 303

13.3.1 PMain类 303

13.3.2 PConsole类 304

13.4 control包 310

13.5 entity包 315

13.5.1 IEDataSupplier接口 315

13.5.2 EEmployee类 317

13.5.3 EContact类 318

13.5.4 EOutMessage类 320

13.6 mediator包 322

13.7.1 FConnection类 329

13.7 foundation包 329

13.7.2 FReader类 331

13.7.3 FWriter类 331

小结 332

第1次迭代问题和练习 332

第三部分 软件重构与用户界面设计 334

第14章 第2次迭代需求与对象模型 334

14.1 用例模型 334

14.2 用例文档 335

14.2.1 概要描述、前置条件和后置条件 335

14.2.2 基本流程 336

14.2.3 子流程 337

14.2.4 异常流程 340

14.3 概念类和关系表 341

14.4 补充规格说明 342

小结 343

复习题 343

第15章 体系结构重构 344

15.1 重构的目标代码 344

15.2 重构方法 345

15.2.1 提取类 345

15.2.2 方法归类 346

15.2.3 提取接口 347

15.3 重构模式 349

15.3.1 标识映射模式 349

15.3.2 数据映射器 350

15.3.3 可替换的数据映射器策略 353

15.3.4 延迟加载 355

15.3.5 工作单元 362

15.4 重构后的类模型 363

小结 365

复习题 365

讨论题 365

案例分析题 366

解答题 366

第16章 用户界面设计与编程 367

16.1 用户界面设计准则 367

16.1.1 用户控制 368

16.1.2 界面一致性 369

16.1.3 界面容错性 369

16.1.4 界面可适应性 370

16.2 用户界面组件 370

16.2.1 容器 371

16.2.2 菜单 375

16.2.3 控件 376

16.3 用户界面事件处理 378

16.4 模式与用户界面 381

16.4.1 观察者模式 381

16.4.2 装饰模式 383

16.4.3 责任链模式 383

16.4.4 命令模式 384

16.5 邮件管理的用户界面 385

小结 388

复习题 389

解答题 390

第17章 基于Web的用户界面的设计与编程 391

17.1.1 基本HTML 392

17.1 Web客户端层可用的技术 392

17.1.2 脚本语言 394

17.1.3 applet:轻量级和重量级 395

17.2 Web服务器层可用的技术 399

17.2.1 servlet 399

17.2.2 JSP 401

17.3 无状态因特网系统上的事务 404

17.4 模式与Web 406

17.4.1 观察者模式 407

17.4.2 组合模式 407

17.4.3 工厂方法模式 408

17.4.4 策略模式 408

17.4.5 装饰模式 409

17.4.6 模型-视图-控制器模式 409

17.4.8 JSP标签复用 410

17.4.7 前端控制器 410

17.4.9 控制解耦:Struts 414

17.5 电子邮件管理系统的servlet实现 415

小结 420

复习题 421

解答题 421

第18章 第2次迭代代码评注 422

18.1 代码概览 422

18.2 acquaintance包 423

18.3 presentation包 424

18.3.1 PWindow类 425

18.3.2 PMessageDetailWindow类 430

18.3.3 PMessageTableModel类 432

18.3.4 PDisplayList类 435

18.3.5 PDisplayList.Filter类 437

18.4 control包 438

18.4.1 CAdmin类 438

18.4.2 CMsgSeeker类 439

18.5 entity包 440

18.6 mediator包 443

18.6.1 MModerator类 443

18.6.2 MDataMapper类 444

18.7 表示层:applet版本 449

18.8 表示层:Servlet版本 451

18.8.1 PEMS类 451

18.8.2 PEMSEdit类 457

小结 458

第2次迭代的问题与练习 459

19.1 用例模型 465

第四部分 数据工程与业务组件 465

第19章 第3次迭代需求与对象模型 465

19.2 用例文档 466

19.2.1 概要描述、前置条件和后置条件 466

19.2.2 基本流程 467

19.2.3 子流程 468

19.2.4 异常流程 474

19.3 概念类和关系表 475

19.4 补充规格说明 477

19.5 数据库规格说明 478

小结 479

复习题 480

第20章 安全性与完整性 481

20.1 安全性设计 481

20.1.1 自主授权 482

20.1.2 强制授权 489

20.1.3 企业级授权 490

20.2 设计完整性 492

20.2.1 空值与默认值约束 493

20.2.2 域与check约束 493

20.2.3 唯一键与主键 494

20.2.4 外键 495

20.2.5 触发器 496

20.3 电子邮件管理系统的安全性与完整性 500

20.3.1 电子邮件管理系统的安全性 500

20.3.2 电子邮件管理系统的完整性 507

小结 509

复习题 509

解答题 510

第21章 事务与并发 511

21.1 系统事务的并发性 512

21.1.1 ACID特性 512

21.1.2 隔离级别 513

21.1.3 锁模式和级别 514

21.1.4 事务模型 515

21.1.5 并发控制模式 517

21.2 业务事务中的并发性 519

21.2.1 业务事务执行语境 519

21.2.2 业务事务和组件技术 520

21.2.3 跨层的事务服务 520

21.2.4 离线并发模式 524

21.3.1 单层事务模型 527

21.3 电子邮件管理系统中的事务和并发 527

21.3.2 工作单元和事务支持 528

小结 529

复习题 530

解答题 531

第22章 业务组件 532

22.1 企业级JavaBean 532

22.1.1 EJB基础 534

22.1.2 实体Bean 536

22.1.3 会话Bean 540

22.2 Java业务组件 541

22.2.1 创建实体组件 541

22.2.2 创建视图组件 544

22.2.3 创建一个应用模块 545

小结 546

复习题 547

第23章 第3次迭代代码评注 548

23.1 代码概览 548

23.2 acquaintance包 548

23.3 presentation包 550

23.3.1 PWindow类 550

23.3.2 PTableWindow类 561

23.4 control包 564

23.5 entity包 565

23.6 mediator包 568

23.6.1 MModerator类 568

23.6.2 MDataMapper类 572

23.6.3 MUnitOfWork类 577

23.7.1 FConnection中的事务 582

23.7 foundation包 582

23.7.2 执行FWriter中的语句 583

23.7.3 在FReader中查询数据库 584

23.8 数据库代码 585

23.8.1 Ref Cursor结果集 585

23.8.2 检索邮件 585

23.8.3 检索部门的邮件 586

23.8.4 删除一个邮件 587

23.8.5 创建一个邮件 588

23.8.6 报表生成 589

23.8.7 OutMessage表上的触发器 591

小结 592

第3次迭代的问题和练习 593

参考文献 594

索引 598