当前位置:首页 > 工业技术
软件工程基础实践教程
软件工程基础实践教程

软件工程基础实践教程PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:吴洁明编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:7302163421
  • 页数:383 页
图书介绍:本书介绍了软件工程的原理、方法和过程,以及实践教程。
《软件工程基础实践教程》目录

第1章 软件工程概述 1

1.1 软件和软件危机 1

1.1.1 软件的特点 1

1.1.2 软件危机 2

1.1.3 软件错误导致的失败实例 3

1.2 软件工程发展简史 3

1.3 软件工程的定义和目标 4

1.4 软件工程的7条基本原理 5

1.5 软件生命周期模型 7

1.5.1 瀑布模型 8

1.5.2 快速原型化模型 10

1.5.3 演化模型 11

1.5.4 螺旋模型 12

1.5.5 构件组装模型 13

1.6 软件工程过程 13

1.7 软件开发方法简述 14

1.7.1 Parnas方法 14

1.7.2 Yourdon方法 15

1.7.3 面向数据结构的软件开发方法 15

1.7.4 问题分析法PAM 15

1.7.5 面向对象的软件开发方法 16

1.7.6 可视化开发方法 17

1.8 软件工程相关的技术规范、标准和最新文献的信息源 18

1.9 练习 20

第2章 可行性研究 21

2.1 可行性研究的任务 21

2.2 可行性研究的步骤 21

2.3 可行性分析的要素 23

2.3.1 经济 23

2.3.2 技术 24

2.3.3 社会环境 24

2.3.4 人 25

2.4 成本/效益分析 25

2.4.1 程序规模估算 25

2.4.2 工作量估算 27

2.4.3 成本/效益分析的方法 31

2.5 可行性研究的模板 32

2.6 练习 33

第3章 需求工程 35

3.1 需求工程的概念 35

3.1.1 需求分类 35

3.1.2 需求工程的主要活动 36

3.1.3 高质量需求的特征 36

3.1.4 影响需求质量的因素 38

3.2 确定系统目标和范围 39

3.3 需求获取方法 41

3.3.1 必须向用户交代的两个重要问题 42

3.3.2 制定调研计划 44

3.3.3 准备调研的资料 45

3.3.4 访谈用户 50

3.3.5 编写调研报告 50

3.3.6 需求的其他来源 51

3.4 定义软件的质量属性 51

3.5 需求优先级 54

3.6 需求验证技术 55

3.6.1 需求文档的评审 55

3.6.2 正式需求评审过程 56

3.6.3 审查人员的职责 56

3.7 需求管理 56

3.7.1 管理需求变更 56

3.7.2 需求跟踪 61

3.8 练习 63

第4章 结构化分析 64

4.1 结构化分析的主要工具 64

4.1.1 系统流程图 64

4.1.2 数据流程图 68

4.1.3 数据字典 70

4.1.4 IPO图 73

4.1.5 层次方框图 74

4.1.6 实体关系图 74

4.1.7 状态—变迁图 77

4.2 结构化分析方法的实现步骤 77

4.3 结构化分析规格说明书 79

4.4 结构化分析实例 81

4.4.1 需求描述 82

4.4.2 描绘数据流程图 82

4.4.3 定义数据字典 87

4.4.4 描述IPO图 89

4.4.5 描述实体关系 89

4.5 练习 89

第5章 结构化软件设计 92

5.1 软件设计的过程 92

5.2 软件设计原则和影响设计的因素 93

5.3 软件设计的概念 94

5.3.1 模块 94

5.3.2 模块化 95

5.3.3 模块独立性 95

5.3.4 抽象 99

5.3.5 信息隐蔽 100

5.3.6 设计复用 100

5.4 软件结构图 100

5.5 结构化设计方法 103

5.5.1 数据流的类型 104

5.5.2 变换分析 106

5.5.3 事务分析 108

5.6 图书管理信息系统软件结构设计 109

5.6.1 重画数据流程图 110

5.6.2 整理数据流程图 110

5.6.3 确定事务处理中心 111

5.6.4 确定软件结构图 111

5.7 优化软件设计 113

5.7.1 软件结构优化 113

5.7.2 优化有时间要求的软件 116

5.7.3 走查软件结构图 116

5.7.4 用快速原型法修正设计 117

5.7.5 关于设计的说明 117

5.8 设计复查 118

5.8.1 概要设计复查 118

5.8.2 关键设计复查 118

5.8.3 设计复审的问题 119

5.9 数据设计 119

5.9.1 数据设计的原则 119

5.9.2 数据结构设计 120

5.9.3 文件设计 120

5.9.4 数据库设计 122

5.9.5 图书管理信息系统数据结构设计实例 123

5.10 接口设计 125

5.10.1 模块间的接口设计 125

5.10.2 模块的外部接口设计 125

5.11 详细设计 126

5.11.1 结构化程序设计 126

5.11.2 程序流程图 127

5.11.3 盒图(N-S) 129

5.11.4 PAD图 131

5.11.5 表格设计符号 133

5.11.6 过程设计语言(PDL) 135

5.11.7 模块开发文件夹 135

5.12 设计规格说明书 136

5.12.1 概要设计说明书 136

5.12.2 详细设计说明书 138

5.13 练习 139

第6章 软件测试 142

6.1 软件测试的概念 142

6.1.1 测试定义 142

6.1.2 软件测试的目标和原则 142

6.1.3 测试的层次和类型 143

6.1.4 软件错误带来的损失 145

6.1.5 测试的难点 145

6.1.6 测试产品 146

6.2 测试计划 147

6.2.1 制定测试计划 147

6.2.2 测试计划模板 148

6.3 设计测试用例 151

6.3.1 程序结构测试 152

6.3.2 功能测试法 156

6.3.3 测试策略 161

6.4 测试设计 162

6.4.1 测试大纲 162

6.4.2 测试问题卡 163

6.4.3 测试用例模板 163

6.5 单元测试 164

6.5.1 人工静态检查 164

6.5.2 动态执行跟踪 167

6.6 集成测试 168

6.7 系统测试 170

6.8 验收测试 170

6.9 用户界面测试 171

6.10 基于Web的测试 173

6.10.1 功能测试 173

6.10.2 性能测试 174

6.10.3 可用性测试 174

6.10.4 客户端兼容性测试 175

6.10.5 安全性测试 176

6.11 软件可靠性 176

6.11.1 估算平均无故障时间的方法 177

6.11.2 估计故障总数的方法 177

6.12 bug管理 179

6.13 软件辅助测试工具介绍 181

6.14 测试人员的基本素质 182

6.15 软件测试的研究热点 182

6.16 练习 183

第7章 编写程序 185

7.1 程序设计语言 185

7.1.1 程序设计语言的特点 186

7.1.2 程序设计语言的分类 190

7.1.3 选择一种语言 192

7.2 良好的编程习惯 193

7.2.1 关于GOTO语句的争论 193

7.2.2 结构化程序设计的原则 194

7.2.3 自顶向下,逐步求精 197

7.2.4 数据结构的合理化 199

7.2.5 程序设计风格 199

7.3 编程标准和过程 207

7.3.1 标准 207

7.3.2 某个项目的源代码编程规范 208

7.4 练习 210

第8章 面向对象的需求分析 212

8.1 为什么讨论面向对象技术 212

8.1.1 面向对象分析和设计需要解决的两个经典问题 216

8.1.2 面向对象方法的特点 216

8.1.3 当前的研究及实践领域 217

8.2 面向对象的基本概念 218

8.3 统一建模语言简介 221

8.3.1 UML的发展过程 221

8.3.2 UML的本质和目标 222

8.3.3 UML的视图、模型元素和图 222

8.3.4 RUP统一过程 225

8.3.5 UML的结构 226

8.4 用况图 226

8.4.1 用况 227

8.4.2 角色 227

8.4.3 使用、扩展和角色一般化关系 228

8.4.4 用况图实例 229

8.5 活动图 231

8.6 状态图 233

8.7 交互图 234

8.7.1 顺序图 235

8.7.2 合作图 237

8.8 类图 238

8.8.1 类的表示和获取 239

8.8.2 类的属性 239

8.8.3 类的操作 240

8.8.4 类的关系 241

8.8.5 类的版型 244

8.8.6 使用类图的几个建议 245

8.9 配置图 245

8.10 组件图 246

8.11 对象图 248

8.12 包图 248

8.12.1 包的表示 249

8.12.2 包的依赖和继承 249

8.13 需求分析阶段的主要活动 250

8.13.1 活动1:建立业务模型 250

8.13.2 活动2:构造用况模型 253

8.13.3 活动3:构造用户界面原型 257

8.13.4 活动4:分析模型 257

8.14 面向对象的需求分析规格说明书 259

8.15 练习 260

第9章 面向对象设计 262

9.1 面向对象的设计概念 262

9.1.1 封装 262

9.1.2 抽象 263

9.1.3 强内聚 263

9.1.4 弱耦合 264

9.1.5 可重用 264

9.1.6 框架 264

9.1.7 软件体系结构 265

9.1.8 软件设计模式 265

9.2 基于UML的面向对象设计过程 267

9.2.1 活动1:构架设计 267

9.2.2 活动2:进一步细化用况 271

9.2.3 活动3:详细设计一个类 273

9.3 面向对象的设计原则——类设计原则 276

9.3.1 开闭原则OCP(Open Closed Principle) 276

9.3.2 替换原则LSP(Liskov Substitution Principle) 277

9.3.3 依赖原则DIP(Dependency Inversion Principle) 278

9.3.4 单一职责原则SRP(Single Responsibility Principle) 280

9.3.5 接口分离原则ISP(Interface Segregation Principle) 281

9.4 XML在软件设计中的应用 282

9.4.1 文档应用 282

9.4.2 系统配置 284

9.4.3 信息交换的媒介 286

9.5 设计规格说明书 287

9.6 图书信息管理系统设计实例 288

9.7 练习 295

第10章 面向对象的实现 297

10.1 选择编程语言 297

10.1.1 面向对象语言的特点 297

10.1.2 选择面向对象语言 300

10.2 程序设计风格 300

10.2.1 提高可复用性 301

10.2.2 提高可扩展性 302

10.3 实现阶段的人员分工 303

10.4 实现阶段的工作流程 303

10.5 实现阶段的产品 306

10.6 练习 307

第11章 面向对象的测试 308

11.1 面向对象测试的特点 308

11.2 面向对象的测试策略 309

11.3 测试阶段的制品 310

11.4 参加测试的人员职责 312

11.5 测试步骤 312

11.5.1 活动1:制定测试计划 312

11.5.2 活动2:设计测试用例 313

11.5.3 活动3:实现测试 316

11.5.4 活动4:执行集成测试 316

11.5.5 活动5:执行系统测试 316

11.5.6 活动6:测试评估 316

11.6 练习 317

第12章 软件开发文档的写作和管理 318

12.1 软件文档的作用和要求 318

12.2 软件文档的种类和提供时机 320

12.3 软件文档的编写步骤 321

12.3.1 准备工作 321

12.3.2 确定写作内容 322

12.4 如何写好软件文档 323

12.4.1 深入理解系统和用户 323

12.4.2 确定文档的组织方式 324

12.4.3 讲究文风 325

12.5 文档管理 326

12.5.1 编写管理 326

12.5.2 使用管理 327

12.6 软件配置管理 327

12.6.1 软件配置管理 327

12.6.2 软件配置 327

12.6.3 基线 328

12.6.4 软件配置管理过程 328

12.7 几个常用软件文档的模板 329

12.7.1 可行性研究报告 329

12.7.2 项目开发计划 330

12.7.3 软件需求说明书 331

12.7.4 数据需求说明书 331

12.7.5 概要设计说明书 332

12.7.6 详细设计说明书 332

12.7.7 数据库设计说明书 333

12.7.8 用户手册 333

12.7.9 操作手册 334

12.7.10 模块开发卷宗 334

12.7.11 测试计划 335

12.7.12 测试分析报告 335

12.7.13 开发进度月报 336

12.7.14 项目开发总结报告 336

12.8 软件工程标准 337

12.8.1 软件工程标准的制定过程 337

12.8.2 软件工程标准的层次 338

12.9 软件工程标准一览表 339

12.10 练习 340

第13章 系统维护 341

13.1 软件维护概念 341

13.1.1 影响维护的因素 342

13.1.2 软件维护策略 342

13.1.3 维护的成本 343

13.2 维护过程 343

13.2.1 相关维护报告 345

13.2.2 源程序修改策略 348

13.3 提高软件的可维护性 350

13.4 练习 352

第14章 软件复用 353

14.1 软件复用技术的发展和存在的障碍 354

14.1.1 软件复用技术的发展 354

14.1.2 可复用的软件制品 355

14.1.3 软件复用存在的一些障碍 356

14.1.4 建立复用途径的一些建议 356

14.2 几种构件模型比较 357

14.2.1 CORBA 357

14.2.2 COM+/DCOM 358

14.2.3 JavaBean 358

14.2.4 软件构架技术 361

14.2.5 比较分析 361

14.3 基于可复用构件的软件开发过程 362

14.3.1 构件的获取 364

14.3.2 构件的表示和检索 364

14.3.3 构件组装 365

14.3.4 构件库及其标准化 365

14.4 构件的开发 366

14.4.1 开发可复用构件时的分析和设计 368

14.4.2 构造方法 368

14.5 实例研究 368

14.5.1 EJB开发实例 369

14.5.2 配置 370

14.5.3 开发一个会话Bean(Session Bean) 372

14.5.4 配置会话Bean 377

14.5.5 开发一个实体Bean 378

14.6 练习 382

参考文献 383

返回顶部