《软件工程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:陆惠恩主编
  • 出 版 社:上海:上海交通大学出版社
  • 出版年份:2016
  • ISBN:9787313145208
  • 页数:424 页
图书介绍:本书全面系统地讲述了软件工程的概念、原理和典型的方法学,并介绍了软件项目的管理技术。本书正文共13章,第1章是概述,第2章至第8章顺序讲述软件生命周期各阶段的任务、过程、结构化方法和工具,第9章至第12章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,第13章介绍软件项目管理。正文后面有两个附录,分别讲述了用面向对象方法和结构化方法开发两个软件的过程,对读者深入理解软件工程学很有帮助,也是上机实习的好材料。本书可作为高等院校“软件工程”课程的教材或教学参考书,也可供有一定实际经验的软件工作人员和需要开发应用软件的广大计算机用户阅读参考。

第1章 概述 1

1.1 软件工程的产生 2

1.1.1 软件工程的发展史 2

1.1.2 软件危机 5

1.2 软件工程学 6

1.2.1 什么是软件 6

1.2.2 什么是软件工程 10

1.2.3 软件工程学的内容 10

1.2.4 软件过程 14

1.2.5 软件工程的基本原理 14

1.3 软件生存周期 15

1.3.1 软件生存周期的概念 15

1.3.2 软件生存周期各阶段的任务 16

1.4 软件开发模型 17

1.4.1 瀑布模型 17

1.4.2 快速原型模型 18

1.4.3 增量模型 20

1.4.4 喷泉模型 21

1.4.5 螺旋模型 22

1.4.6 统一过程 24

本章小结 25

习题1 26

第2章 软件计划 29

2.1 软件问题定义及可行性研究 30

2.1.1 软件问题定义 30

2.1.2 可行性研究 31

2.1.3 制订项目开发计划 32

2.2 需求分析 33

2.2.1 需求分析方法 34

2.2.2 需求分析步骤 36

2.3 需求分析图形工具 41

2.3.1 实体—关系图 41

2.3.2 数据流图 43

2.3.3 状态转换图 48

2.3.4 层次图 50

2.3.5 Warnier图 51

2.3.6 IPO图 51

2.4 数据字典 52

2.4.1 数据字典的内容 52

2.4.2 数据字典使用的符号 53

2.4.3 数据字典与图形工具 55

2.5 软件计划阶段文档 55

2.5.1 软件计划阶段文档的编写步骤 55

2.5.2 软件计划实例 56

本章小结 62

习题2 62

第3章 结构化设计 65

3.1 软件设计步骤 66

3.1.1 概要设计的一般步骤 66

3.1.2 详细设计的基本任务 69

3.2 软件结构设计 70

3.2.1 软件结构设计的基本原理 70

3.2.2 模块化 72

3.2.3 模块独立性 74

3.2.4 模块设计启发规则 78

3.3 软件结构设计的图形工具 79

3.3.1 层次图和HIPO图 79

3.3.2 结构图 80

3.4 面向数据流的设计方法 82

3.4.1 变换型 83

3.4.2 事务型 83

3.5 过程设计工具 84

3.5.1 流程图 85

3.5.2 盒图(N-S图) 89

3.5.3 问题分析图(PAD图) 91

3.5.4 判定表 93

3.5.5 判定树 94

3.5.6 过程设计语言(PDL) 95

3.6 用户界面设计 95

3.6.1 用户界面设计问题 95

3.6.2 用户界面设计过程和设计标准 97

3.6.3 用户界面设计指南 97

3.7 数据代码设计 99

3.7.1 代码的功能和性质 99

3.7.2 代码的设计原则 100

3.7.3 代码的种类 100

3.7.4 代码的设计方法 103

3.8 面向数据结构的设计方法 104

3.9 软件设计文档 108

3.9.1 概要设计说明书 108

3.9.2 数据库设计说明书 110

3.9.3 详细设计说明书 110

3.9.4 操作手册编写提示 111

本章小结 113

习题3 113

第4章 软件编码和软件测试 117

4.1 结构化程序设计 118

4.1.1 程序设计语言的选择 118

4.1.2 程序设计风格 120

4.2 软件测试目标 122

4.3 软件测试方法 123

4.3.1 静态分析与动态测试 123

4.3.2 黑盒法与白盒法 124

4.4 软件测试步骤 124

4.4.1 模块测试 125

4.4.2 集成测试 125

4.4.3 程序审查会和人工运行 126

4.4.4 确认测试 127

4.4.5 平行运行 128

4.5 设计软件测试方案 128

4.5.1 等价类划分法 129

4.5.2 边界值分析法 129

4.5.3 错误推测法 130

4.5.4 逻辑覆盖法 130

4.5.5 程序环形复杂程度的度量 134

4.5.6 因果图法 137

4.5.7 用基本路径覆盖法设计测试用例 140

4.6 软件测试原则和策略 143

4.6.1 软件测试原则 143

4.6.2 实用测试策略 144

4.7 软件调试、验证与确认 144

4.7.1 软件调试方法和技术 144

4.7.2 软件验证 145

4.7.3 软件确认 146

4.8 软件测试文档 147

本章小结 148

习题4 148

第5章 软件维护和软件重用 153

5.1 软件维护 154

5.1.1 软件维护的种类 154

5.1.2 软件维护的特点 155

5.1.3 软件维护过程 157

5.1.4 提高软件的可维护性 161

5.2 软件重用和再工程 164

5.2.1 软件的重用 164

5.2.2 软件重用过程模型 165

5.2.3 开发可重用的软件构件 167

5.2.4 软件逆向工程 169

5.2.5 软件再工程 170

本章小结 171

习题5 172

第6章 面向对象方法学与UML 175

6.1 面向对象方法概述 176

6.1.1 面向对象方法的要素和优点 177

6.1.2 面向对象方法的概念 179

6.2 UML概述 182

6.2.1 UML的发展 182

6.2.2 UML的内容 182

6.3 UML图 185

6.3.1 用例图 185

6.3.2 类图和包 187

6.3.3 对象图 192

6.3.4 状态图 193

6.3.5 顺序图 194

6.3.6 活动图 195

6.3.7 协作图 196

6.3.8 构件图 197

6.3.9 部署图 198

6.4 UML的应用 199

6.4.1 UML模型 200

6.4.2 UML视图 201

6.4.3 UML使用准则 203

6.4.4 UML的扩展机制 204

6.4.5 UML的应用领域 205

本章小结 206

习题6 206

第7章 面向对象软件设计与实现 209

7.1 面向对象分析 210

7.1.1 面向对象分析过程 210

7.1.2 面向对象分析原则 211

7.1.3 建立对象模型 212

7.1.4 建立动态模型 220

7.1.5 建立功能模型 224

7.2 软件架构设计和对象设计 226

7.2.1 软件架构设计 226

7.2.2 软件架构风格 228

7.2.3 移动互联系统的软件架构 234

7.2.4 对象设计 236

7.2.5 面向对象设计的准则和启发式规则 237

7.3 面向对象系统的实现 238

7.3.1 选择程序设计语言 238

7.3.2 面向对象程序设计风格 239

7.3.3 面向对象实现的人员分工 241

7.4 面向对象系统的测试 242

7.4.1 面向对象测试策略 242

7.4.2 面向对象的测试步骤 244

7.5 面向对象方法实例 249

7.5.1 面向对象分析实例 249

7.5.2 面向对象设计实例 255

本章小结 262

习题7 262

第8章 Web软件工程 265

8.1 Web软件的特性 266

8.2 Web的层次结构 268

8.2.1 二层C/S结构 268

8.2.2 三层C/S结构 270

8.2.3 四层C/S结构 272

8.2.4 B/S结构 273

8.3 客户端层可用的技术 274

8.3.1 基本HTML 275

8.3.2 脚本语言 275

8.3.3 Applet 276

8.3.4 AJAX 277

8.4 Web服务器层使用的技术 278

8.4.1 Servlet 278

8.4 2 JSP 280

8.5 Web软件设计模式 281

8.5.1 观察者模式 281

8.5.2 组合模式 283

8.5.3 工厂方法模式和策略模式 284

8.5.4 模型—视图—控制器模式 285

8.5.5 装饰者模式 287

8.6 WebApp设计 288

8.6.1 WebApp的特点及应用类型 288

8.6.2 WebApp的需求工程 289

8.6.3 WebApp需求分析 293

8.6.4 WebApp设计过程 296

8.6.5 WebApp体系结构设计 300

8.6.6 导航设计 303

8.7 WebApp测试 304

8.7.1 测试过程概述 305

8.7.2 内容测试 305

8.7.3 界面测试 306

8.7.4 导航测试 307

8.7.5 配置测试 308

8.7.6 安全性测试 308

8.7.7 性能测试 309

本章小结 310

习题8 311

第9章 移动互联网与软件工程 313

9.1 移动互联网简介 314

9.2 移动互联网应用技术 319

9.2.1 移动互联网的参考模型 320

9.2.2 移动互联终端技术 320

9.2.3 网络接入技术 323

9.2.4 移动应用服务技术 324

9.2.5 移动互联网的三要素 326

9.3 移动互联网应用安全技术 327

本章小结 329

习题9 329

第10章 软件工程管理 331

10.1 软件工程管理概述 332

10.2 软件规模估算 333

10.2.1 软件开发成本估算方法 333

10.2.2 代码行技术 334

10.2.3 功能点技术 335

10.2.4 COCOMO2模型 337

10.3 进度计划 338

10.3.1 Gantt图 339

10.3.2 工程网络技术 340

10.4 人员组织 343

10.5 软件配置管理 346

10.6 软件质量保证 349

10.6.1 软件质量的特性 349

10.6.2 软件质量保证措施 350

10.7 软件开发风险管理 351

10.7.1 软件开发风险标识 351

10.7.2 软件开发风险估算 354

10.7.3 软件开发风险管理 356

10.8 软件工程标准与软件文档 358

10.8.1 软件工程标准 358

10.8.2 软件文档的编写 360

本章小结 361

习题10 362

第11章 软件工程技术的发展 365

11.1 敏捷开发与极限编程技术 366

11.1.1 敏捷开发的含义 366

11.1.2 极限编程 368

11.2 净室软件工程 370

11.2.1 净室软件工程的概念 370

11.2.2 净室软件工程技术 371

11.3 面向服务的架构技术 373

11.3.1 面向服务架构的产生 373

11.3.2 面向服务架构的概念 375

11.3.3 基于SOA架构的软件开发方法 376

11.4 云计算与软件开发 377

11.4.1 云计算概述 377

11.4.2 云计算的关键技术 379

11.4.3 云计算平台与软件开发 381

11.4.4 云计算与物联网 382

11.5 网构软件 383

11.5.1 网构软件的概念 384

11.5.2 网构软件模型特点 385

11.5.3 网构软件开发方法 386

本章小结 388

习题11 388

第12章 实例——网上商品竞拍系统 389

12.1 问题定义和可行性研究 390

12.1.1 问题定义 390

12.1.2 可行性研究 390

12.2 需求分析和概要设计 391

12.2.1 系统角色的功能设计 391

12.2.2 数据库设计 393

12.2.3 系统结构设计 395

12.2.4 网络结构设计方案 396

12.2.5 网络设计方案 397

12.3 模块设计 397

12.3.1 注册登录模块设计 397

12.3.2 用户信息管理模块设计 399

12.3.3 拍卖商品管理模块设计 400

12.3.4 拍卖业务管理模块设计 400

12.4 软件测试 401

本章小结 403

习题12 403

附录部分习题参考答案 405

参考文献 423