当前位置:首页 > 工业技术
软件工程
软件工程

软件工程PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:齐治昌等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2004
  • ISBN:7040146282
  • 页数:458 页
图书介绍:本书是面向21世纪课程教材,第二版覆盖CC2001对软件工程课程的基本要求。内容包括:软件开发模型、软件项目管理、需求分析、软件设计、软件编码与测试、软件维护、配置管理、软件工程管理,软件工程工具和环境。结合目前软件工程教学的需要,特别介绍了统一建模语言(UML),并以此为基础讨论面向对象的需求分析与软件设计方法。介绍集成化CASE环境,Java与Internet环境下的软件开发技术。介绍支持软件过程改进的“软件能力成熟度模型”(CMM)。书中含有丰富的例题与习题,便于教学和自学。本书强调软件工程的理论与实践相结合、技术与管理相结合、方法与CASE工具相结合。教材思路清晰、语言简练,具有实用性和可操作性,可作为高等学校计算机专业或信息类有关专业高年级本科生或研究生教材,也可作为软件开发人员的参考书。
上一篇:化工原理 下下一篇:游戏情感设计
《软件工程》目录

第一章 软件与软件工程 1

1.1 软件 1

1.1.1 软件与软件的组成 1

目录 1

1.1.2 软件的特点 2

1.1.3 软件的分类 3

1.1.4 软件的发展 5

1.1.5 软件危机 6

1.2 软件工程的概念 8

1.2.1 软件工程的定义 9

1.2.2 软件工程的目标 9

1.2.3 软件工程的原则 11

1.3.1 软件定义 12

1.3 软件生存周期 12

1.3.2 软件开发 14

1.3.3 软件使用、维护和退役 15

1.4 软件开发模型 16

1.4.1 瀑布模型 17

1.4.2 原型模型 18

1.4.3 螺旋模型 19

1.4.4 基于四代技术的模型 21

1.4.5 变换模型 21

1.4.6 组合模型 22

1.5 CASE工具及环境 23

1.5.1 计算机辅助软件工程 24

1.5.2 CASE工具 24

1.5.3 集成化的CASE环境 25

习题 27

小结 27

第二章 软件项目管理 28

2.1 软件度量 28

2.1.1 度量、测量和估算 29

2.1.2 面向规模的度量 30

2.1.3 面向功能的度量 31

2.1.4 代码行度量与功能点度量 34

的比较 34

2.2 软件项目估算 34

2.2.1 代码行、功能点和工作 35

量估算 35

CoCoMo模型 37

2.2.2 经验估算模型之一: 37

2.2.3 经验估算模型之二: 39

Putnam模型 39

2.3 软件质量度量 41

2.3.1 软件质量定义及三层次度量 41

模型 41

2.3.2 软件质量要素 43

2.3.3 软件质量要素评价准则 44

2.4 软件复杂性度量 48

2.4.1 软件复杂性及度量原则 48

2.4.2 控制结构的复杂性度量 49

2.4.3 文本复杂性度量 50

2.5.1 软件可靠性的概念 51

2.5 软件可靠性度量 51

2.5.2 软件修复和软件有效性 53

2.5.3 软件可靠性估算 54

2.6 软件开发过程的管理 57

2.6.1 风险分析 57

2.6.2 进度安排 60

2.6.3 软件开发标准 63

2.6.4 软件质量保证 65

2.6.5 软件开发人员的组织与分工 67

2.6.6 软件项目的开发过程管理 68

2.7 软件过程及软件成熟度 69

模型CMM 69

2.7.1 引言 69

2.7.2 CMM的基本概念 70

2.7.3 能力成熟度模型CMM 71

2.7.4 能力成熟度模型集成CMMI 77

2.7.5 CMM和CMMI的选择和 82

应用 82

2.8 软件项目管理中的 83

CASE工具 83

小结 84

习题 84

第三章 计算机系统工程 86

3.1 计算机系统工程 87

3.1.1 硬件和硬件工程 87

3.1.2 软件和软件工程 88

3.1.3 人机工程 91

3.1.4 数据库工程 92

3.2 可行性研究 93

3.2.1 引言 93

3.2.2 经济可行性 94

3.2.3 技术可行性 96

3.2.4 方案选择 97

3.3 系统模型与模拟 99

3.3.1 系统模型 99

3.3.2 系统建模和模拟 101

3.4 系统规格说明及评审 103

3.4.1 系统规格说明 103

小结 104

3.4.2 系统规格说明评审 104

习题 105

第四章 需求分析基础 106

4.1 分析的任务与原则 106

4.2 初步需求获取技术 107

4.2.1 访谈与会议 108

4.2.2 观察用户工作流程 108

4.2.3 用户和开发人员共同组成 108

联合小组 108

4.2.4 实例分析 109

4.3 需求建模 110

4.4 问题抽象、问题分解与多视点 110

分析 110

4.5 支持需求分析的快速原型技术 111

4.6 需求规格说明与评审 112

4.6.1 需求规格说明书的目标 112

与内容 112

4.6.2 需求评审 114

小结 116

习题 116

第五章 面向数据流的分析方法 119

5.1 数据流图与数据字典 119

5.2 实体-关系图 122

5.2.1 数据对象、属性与关系 122

5.2.2 实体-关系图 123

*5.3 数据流图的实时系统扩充 124

5.3.1 Ward Mellor扩充 125

5.3.2 Hatley Pirbhai扩充 126

5.4 基于数据流的分析方法 129

5.4.1 创建数据流模型 130

*5.4.2 创建控制流模型 132

5.4.3 过程规格说明 132

5.5 基于数据流图的需求分析CASE 134

工具 134

5.5.1 核心思想 134

5.5.2 语言机制 136

5.5.3 动态分析 142

5.5.4 基于CASE工具的需求分析 143

小结 143

习题 144

6.1 面向对象的概念与思想 145

第六章 面向对象的需求分析 145

6.2 UML概述 146

6.2.1 UML的语言机制 146

6.2.2 基于UML的软件开发过程 150

6.3 基于UML的需求分析 152

6.3.1 开发场景 153

6.3.2 生成用例 154

6.3.3 用活动图表示用例 155

6.3.4 生成用例图 158

6.3.5 建立顶层架构 159

6.3.6 建立领域概念模型 162

习题 165

小结 165

第七章 面向数据的分析方法与形式 167

化方法 167

7.1 面向数据结构的系统开发方法 167

7.1.1 Warnier图 167

7.1.2 DSSD方法 168

7.2 Jackson系统开发方法 171

7.2.1 标识实体与行为 171

7.2.2 生成实体结构图 171

7.2.3 创建软件系统模型 172

*7.3 形式化方法 175

7.3.1 主要思想 175

7.3.2 形式化规格说明语言简介 176

7.3.3 形式化需求描述 178

趋势 183

7.3.4 形式化方法的现状与发展 183

小结 184

习题 184

第八章 软件设计基础 185

8.1 软件设计过程 185

8.2 软件设计基本概念 186

8.2.1 抽象与逐步求精 186

8.2.2 模块化与信息隐藏 189

8.2.3 软件总体结构设计 192

8.2.4 数据结构设计 193

8.2.5 软件过程设计 194

8.3.1 结构化程序设计 195

8.3 过程设计技术和工具 195

8.3.2 图形表示法 196

8.3.3 判定表 198

8.3.4 过程设计语言(PDL) 199

8.3.5 过程设计工具之比较 202

8.4 设计规格说明与评审 203

小结 205

习题 205

第九章 面向数据流的设计方法 207

9.1 基本概念和设计过程 207

9.2 变换分析 209

9.3 事务分析 216

9.4 启发式设计策略 219

9.5 设计优化原则 221

9 6 实时系统设计 222

9.6.1 实时系统性能要求 222

9.6.2 实时系统设计要素 222

9.6.3 实时系统设计方法 223

9.6.4 设计实例 225

小结 228

习题 229

第十章 面向对象的设计方法 231

10.1 设计用例实现方案 232

10.1.1 顺序图 232

10.1.2 协作图 233

控制类 234

10.1.3 提取边界类、实体类和 234

10.1.4 构造交互图 235

10.1.5 精化类图 237

10.2 设计技术支撑方案 241

10.2.1 数据持久存储服务 241

10.2.2 并发与同步控制服务 242

10.2.3 技术支撑方案与用例实现 242

方案的融合 242

10.3 设计用户界面 243

10.4 精化设计模型 244

10.4.1 状态图 244

10.4.2 精化体系结构 246

10.4.3 精化类之间的关系 247

10.4.4 精化类的属性和操作 250

10.4.5 设计状态图 251

10.4.6 设计活动图 252

小结 253

习题 254

第十一章 面向数据的设计方法 255

11.1 面向数据设计 255

11.2 Jackson系统开发方法 256

11.2.1 JSD分析技术回顾 256

11.2.2 扩充功能性过程 257

11.2.3 施加时间约束 262

11.2.4 实现与JSP技术 262

11.2.5 产生过程表示 264

(DSSD)方法 265

11.3 基于结构化数据的系统开发 265

11.3.1 DSSD设计步骤 266

11.3.2 推导输出数据的逻辑结构 266

11.3.3 推导处理过程的逻辑结构 267

11.3.4 复杂过程逻辑的描述 269

小结 270

习题 270

第十二章 人机界面设计 272

12.1 人的因素 272

12.1.1 人类感知基础 272

12.1.2 用户的技能 273

12.1.3 任务与用户的特殊要求 273

12.2 人机界面风格 274

12.3 人机界面设计过程 275

12.3.1 界面设计的有关模型 275

12.3.2 任务分析与建模 276

12.3.3 界面设计的一般问题 276

12.3.4 实现工具 277

12.4 人机界面实现的原则 278

12.4.1 一般可交互性 278

12.4.2 信息显示 278

12.4.3 数据输入 279

12.5 人机界面标准 279

12.6 支持界面设计的CASE工具 280

习题 283

小结 283

第十三章 程序设计语言和编码 285

13.1 程序设计语言 285

13.1.1 程序设计语言的特性 285

13.1.2 程序设计语言的基本机制 286

13.1.3 程序设计语言的演变 288

和分类 288

13.1.4 程序设计语言的选择 289

13.2 程序设计过程 290

13.2.1 面向对象语言对OOD的 290

支持 290

13.2.2 基于对象语言对OOD的 293

支持 293

的支持 296

13.2.3 过程式语言对OOD 296

13.3 编程标准 297

13.4 编程风格 299

13.5 程序设计支持环境(PSE) 300

小结 302

习题 302

第十四章 软件测试 304

14.1 基本概念 304

14.1.1 软件测试的目标 304

14.1.2 测试阶段的信息流程 304

14.1.3 测试用例和场景的设计 305

14.1.4 软件测试的步骤 307

14.2.1 白盒测试 308

14.2 软件测试技术 308

14.2.2 黑盒测试 316

14.3 软件测试策略 318

14.3.1 单元测试 318

14.3.2 综合测试 321

14.3.3 确认测试 325

14.3.4 系统测试 326

14.3.5 排错 327

14.4 基于CASE工具的软件测试 329

和排错 329

14.4.1 自动测试工具 329

14.4.2 调试器 330

习题 331

小结 331

第十五章 软件维护 335

15.1 软件维护的分类 335

15.2 维护过程 336

15.2.1 结构化与非结构化的维护 336

15.2.2 维护的成本 337

15.2.3 可能存在的问题 338

15.3 可维护性 338

15.3.1 影响可维护性的因素 338

15.3.2 若干量化的测度 339

15.3.3 保证可维护性的复审 339

15.4 维护活动 340

15.4.1 维护组织 340

15.4.3 维护活动的事件流 341

15.4.2 维护的报告与评估 341

15.4.4 保存维护记录 343

15.4.5 评价维护活动 344

15.5 维护的副作用 344

15.6 逆向工程与重构工程 345

15.6.1 恢复信息的级别 346

15.6.2 恢复信息的方法 346

小结 347

习题 347

第十六章 软件配置管理 348

16.1 软件配置管理 348

16.1.1 基线技术 348

16.1.2 软件配置项 349

16.2.1 标识配置对象 351

16.2 软件配置管理任务 351

16.2.2 版本控制 352

16.2.3 系统建立 353

16.2.4 修改控制 353

16.2.5 配置审计 355

16.2.6 配置状况报告 356

16.3 软件配置管理标准 356

16.4 配置管理的CASE工具 356

小结 358

习题 358

第十七章 软件重用技术 360

17.1 软件重用 360

17.1.1 软件重用的概念 360

17.1.2 软件重用的过程与意义 361

17.1.3 重用项目的管理 362

17.2 软部件库的构造 362

17.2.1 域分析 363

17.2.2 软部件的开发 365

17.2.3 软部件库的组织 367

17.3 软部件的重用 370

17.3.1 检索与提取软部件 371

17.3.2 理解与评价软部件 372

17.3.3 修改软部件 372

17.3.4 软部件的合成 373

17.4 面向对象的软件重用技术 373

17.4.1 类库的构造 374

17.4.3 面向对象的合成 375

17.4.2 类库的检索 375

17.5 软件重用项目的管理 378

17.5.1 组织机构 379

17.5.2 软件重用的考核指标 380

17.5.3 创造重用氛围 380

17.6 支持软件重用的CASE工具 381

17.6.1 软件重用对CASE工具 381

的需求 381

17.6.2 类库的组织与检索工具 382

小结 384

习题 384

第十八章 快速原型技术 386

18.1 瀑布模型的缺陷 386

18.2 快速原型方法 388

18.2.1 原型及其作用 389

18.2.2 快速原型的构造过程 390

18.3 基于快速原型的进化式软件 391

开发 391

18.3.1 螺旋模型 391

18.3.2 螺旋模型的评价 393

18.4 快速原型的技术支持 394

18.4.1 用户界面自动生成工具 395

18.4.2 面向数据库应用的开发 398

工具 398

18.4.3 四代语言 402

18.4.5 程序设计环境 403

18.4.4 可重用工具 403

小结 405

习题 405

第十九章 集成化CASE环境 407

19.1 概述 407

19.2 CASE工具的集成形式 408

19.2.1 信息交换 408

19.2.2 公共界面 409

19.2.3 公共信息管理与信息共享 409

19.2.4 高度集成 409

19.3 集成化CASE环境的总体结构 411

19.3.1 界面集成 411

19.3.2 工具集成 411

19.3.3 信息集成 412

19.3.4 软件工程信息库 413

19.4 可移植的通用工具环境PCTE 416

19.4.1 基本机制 416

19.4.2 用户接口 417

19.4.3 分布式机制 418

小结 418

习题 419

第二十章 新型软件开发技术 420

20.1 Internet与Java简介 420

20.1.1 Internet简介 420

20.1.2 Java的发展历史 422

20.1.3 Java的特征 422

20.1.4 Java的语法机制 424

20.1.5 Java的意义 430

20.2 Java与Internet环境下的软 431

件开发 431

20.2.1 基于Java的软件开发过程 431

20.2.2 Java与多媒体主页的制作 432

20.2.3 Java与交互式主页的制作 438

20.2.4 Java与图形界面 439

20.2.5 Java与网络程序设计 442

20.3 对象链接与嵌入(OLE)技术 443

20.3.1 OLE简介 443

20.3.2 构件对象模型 444

20.3.3 结构化存储与复合文件 445

20.3.4 数据对象传送 446

20.3.5 复合文档 447

20.3.6 OLE自动化 448

20.3.7 OLE控件 448

20.4 CORBA与分布计算技术 449

20.4.1 分布计算环境 449

20.4.2 分布计算技术 450

20.4.3 CORBA概述 451

20.4.4 Internet环境下的分布式 453

软件开发 453

小结 454

习题 455

参考文献 456

相关图书
作者其它书籍
返回顶部