《高职高专院校十二五精品示范系列教材 软件工程概论 软件技术专业群》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:倪天林,王伟娜主编;祁慧敏,罗东芳,郭峰副主编
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2014
  • ISBN:9787517021056
  • 页数:356 页
图书介绍:软件工程是软件工程(或软件技术)专业的一门核心课程,也是计算机科学与技术、信息管理等相关专业的主干课程,同时也是软件设计人员、程序开发人员、软件测试人员和软件项目管理人员等应具备的专门知识。全书有13章,内容包括软件工程概述,可行性研究,需求分析,概要设计,详细设计,程序编码,面向对象的分析与设计,统一建模语言,统一软件开发过程,软件测试,软件维护,软件项目管理,软件复用技术。

第1章 软件工程概述 1

1.1 软件的概念和特点 1

1.1.1 计算机系统的构成及实现 1

1.1.2 软件的概念 1

1.1.3 软件的特点 2

1.1.4 计算机软件的分类 2

1.2 软件的发展和软件危机 3

1.2.1 计算机软件的发展过程 3

1.2.2 软件危机 3

1.3 软件工程及其原理 5

1.3.1 软件工程的概念 5

1.3.2 软件工程的要素 5

1.3.3 软件工程的目标 6

1.3.4 软件工程的原则 6

1.3.5 软件工程的基本原理 7

1.3.6 软件开发方法 8

1.4 软件生存周期及其模型 9

1.4.1 软件定义时期 9

1.4.2 软件开发时期 10

1.4.3 软件运行与维护时期 10

1.4.4 软件生存周期模型 11

习题一 15

第2章 可行性研究 17

2.1 问题定义 17

2.1.1 问题定义的内容 17

2.1.2 问题定义的步骤 17

2.1.3 问题定义报告 18

2.2 可行性研究的任务 18

2.2.1 技术可行性 18

2.2.2 经济可行性 19

2.2.3 操作可行性 19

2.2.4 法律可行性 19

2.3 可行性研究的步骤 19

2.3.1 确定项目规模和目标 19

2.3.2 研究正在运行的系统 20

2.3.3 建立目标系统的高层逻辑模型 20

2.3.4 导出和评价各种方案 20

2.3.5 推荐可行的方案 20

2.3.6 编写可行性研究报告 20

2.4 系统流程图 21

2.4.1 系统流程图的作用 21

2.4.2 系统流程图的符号 21

2.5 成本—效益分析 22

2.5.1 成本估计 22

2.5.2 两种成本估算技术 23

2.5.3 度量效益的方法 24

2.6 可行性研究报告 24

2.7 项目开发计划 25

实训 25

习题二 26

第3章 需求分析 28

3.1 需求分析任务 28

3.1.1 需求分析的意义 28

3.1.2 需求分析的步骤 29

3.1.3 需求分析的具体任务 31

3.2 需求分析的基本原则 31

3.3 需求分析过程 32

3.3.1 需求获取 32

3.3.2 需求建模 33

3.3.3 编写需求分析文档 34

3.3.4 需求评审 34

3.4 需求获取方法 35

3.4.1 需求需要获取的内容 35

3.4.2 需求获取的方法 36

3.4.3 需求调研的步骤 37

3.5 需求分析模型 39

3.5.1 实体关系图 39

3.5.2 数据流图 41

3.5.3 状态转换图 46

3.6 数据字典 47

3.6.1 数据字典的概念和组成 47

3.6.2 数据字典各部分的描述 48

3.6.3 词条描述 49

3.6.4 数据字典中的符号 51

3.7 需求规格说明书 52

3.7.1 引言 53

3.7.2 任务概述 53

3.7.3 需求规定 53

3.7.4 运行环境规定 54

实训 54

习题三 56

第4章 概要设计 60

4.1 软件设计过程 60

4.1.1 软件设计过程 60

4.1.2 目标系统的运行环境 62

4.2 概要设计的目标和任务 62

4.2.1 概要设计的目标 62

4.2.2 概要设计的任务 62

4.3 概要设计原则 63

4.3.1 模块化 63

4.3.2 抽象 65

4.3.3 自顶向下,逐步细化 65

4.3.4 信息隐蔽 66

4.3.5 模块独立性 66

4.4 体系结构设计工具 70

4.4.1 结构图 70

4.4.2 HIPO图 72

4.5 概要设计的启发式规则 74

4.5.1 提高模块独立性 74

4.5.2 模块大小要适中 74

4.5.3 模块应具有高扇入和适当的扇出 74

4.5.4 软件结构中的深度和宽度不宜过大 75

4.5.5 模块的作用域应处于控制域之内 75

4.5.6 尽量降低模块的接口复杂度 77

4.5.7 设计单入口、单出口的模块 77

4.5.8 模块功能应该可以预测 77

4.6 面向数据流的设计方法 77

4.6.1 SD方法实施的步骤 78

4.6.2 变换分析 79

4.6.3 事务分析 87

4.6.4 软件模块结构的改进 88

4.6.5 设计后的处理 90

4.7 概要设计说明书 90

实训 91

习题四 93

第5章 详细设计 96

5.1 详细设计的任务与原则 96

5.1.1 详细设计的任务 96

5.1.2 详细设计的原则 97

5.2 结构化程序设计 97

5.2.1 结构化程序设计的概念 97

5.2.2 结构化和非结构化程序设计方法的比较 97

5.2.3 结构化程序设计的原则 98

5.2.4 结构化程序设计的优点 99

5.3 过程设计工具 99

5.3.1 程序流程图 99

5.3.2 盒图(N-S图) 102

5.3.3 PAD图 102

5.3.4 判定表 103

5.3.5 判定树 104

5.3.6 PDL语言 104

5.4 用户界面设计 106

5.4.1 用户界面设计的“黄金规则” 106

5.4.2 用户界面设计过程 106

5.4.3 用户界面的主要形式 107

5.4.4 界面设计应考虑的因素 109

5.4.5 用户界面设计分析 109

5.4.6 用户界面的质量要求 111

5.5 数据库设计 111

5.5.1 数据需求分析 112

5.5.2 概念结构设计 112

5.5.3 逻辑结构设计 112

5.5.4 物理结构设计 113

5.5.5 数据库的实施 113

5.6 接口设计 113

5.6.1 软件接口设计的依据 113

5.6.2 软件接口的类型 113

5.6.3 应用程序编程接口 114

5.7 详细设计说明书 114

实训 116

习题五 118

第6章 程序编码 120

6.1 程序编码的目的和任务 120

6.1.1 程序编码的目的 120

6.1.2 程序编码的任务 121

6.2 程序设计语言 121

6.2.1 程序设计语言的分类 121

6.2.2 程序设计语言的选择 122

6.3 编码风格 123

6.3.1 源程序文档化 123

6.3.2 数据说明 124

6.3.3 语句结构 125

6.3.4 输入/输出方式 126

6.4 程序效率 127

6.4.1 程序效率的准则 127

6.4.2 算法对效率的影响 127

6.4.3 存储效率 127

6.4.4 输入/输出效率 128

6.5 冗余编程及容错技术 128

6.5.1 冗余编程 128

6.5.2 软件容错技术 129

6.6 程序复杂性的度量 132

6.6.1 代码行度量法 132

6.6.2 McCabe度量法 133

实训 134

习题六 135

第7章 面向对象的分析与设计 137

7.1 面向对象概述 137

7.1.1 面向对象方法 137

7.1.2 面向对象的基本概念 139

7.1.3 面向对象的特性 145

7.2 面向对象分析与对象模型化技术 146

7.2.1 面向对象的分析过程 146

7.2.2 面向对象的开发方法 148

7.2.3 对象模型化技术 149

7.2.4 Coad&Yourdon面向对象分析 153

7.3 面向对象设计 158

7.3.1 面向对象设计准则 158

7.3.2 面向对象设计的启发式规则 160

7.3.3 Coad&Yourdon设计方法 161

7.4 面向对象编程 164

7.4.1 面向对象语言的优点 164

7.4.2 面向对象语言的技术特点 165

7.4.3 选择面向对象语言的现实因素 167

7.4.4 程序设计风格 168

案例:自动取款机(ATM)系统的分析与设计 169

习题七 178

第8章 统一建模语言UML 180

8.1 UML概述 180

8.1.1 UML的产生和发展 180

8.1.2 UML的组成 181

8.1.3 UML视图 182

8.1.4 UML的主要特点 184

8.1.5 UML的应用 185

8.2 通用模型元素 186

8.2.1 模型元素 186

8.2.2 约束 187

8.2.3 依赖关系 187

8.2.4 细化 188

8.2.5 注释 188

8.3 静态建模机制 189

8.3.1 用例图 189

8.3.2 类图和对象图 193

8.3.3 包图 200

8.3.4 构件图 201

8.3.5 配置图 202

8.4 动态建模机制 203

8.4.1 消息 203

8.4.2 顺序图 204

8.4.3 协作图 205

8.4.4 状态图 207

8.4.5 活动图 210

案例:医院电话挂号系统 213

实训 217

习题八 221

第9章 统一软件开发过程RUP 223

9.1 RUP概述 223

9.1.1 RUP的意义 223

9.1.2 RUP的特点 224

9.2 RUP的二维开发模型 227

9.3 RUP开发阶段及里程碑 228

9.3.1 初始阶段 229

9.3.2 细化阶段 229

9.3.3 构造阶段 230

9.3.4 交付阶段 231

9.4 RUP的四个要素 232

9.4.1 人员至关重要 233

9.4.2 项目创造产品 233

9.4.3 产品不仅仅是代码 234

9.4.4 过程指导项目 234

9.4.5 工具对于过程不可或缺 235

9.5 RUP制品 235

9.5.1 模型 235

9.5.2 其他制品 236

9.6 RUP的核心工作流 236

9.6.1 业务建模 237

9.6.2 需求 238

9.6.3 分析 240

9.6.4 设计 241

9.6.5 实现 244

9.6.6 测试 246

9.6.7 部署 248

9.6.8 配置和变更管理 249

9.6.9 项目管理 249

9.6.10 环境 249

9.7 RUP裁剪 251

9.8 RUP的迭代开发模式 251

习题九 253

第10章 软件测试 255

10.1 软件测试基础 255

10.1.1 软件测试的意义 255

10.1.2 软件测试的目标 256

10.1.3 软件测试的原则 256

10.1.4 软件测试的信息流 257

10.1.5 软件测试的对象 258

10.1.6 软件测试与软件开发阶段的关系 258

10.1.7 软件测试有关概念 259

10.2 软件测试方法 260

10.2.1 静态测试和动态测试 260

10.2.2 白盒测试和黑盒测试 260

10.2.3 测试用例的设计 262

10.3 软件测试策略 281

10.4 软件测试过程 281

10.4.1 单元测试 282

10.4.2 集成测试 283

10.4.3 确认测试 285

10.4.4 系统测试 287

10.4.5 调试 288

10.5 面向对象的测试 290

10.5.1 面向对象测试模型 291

10.5.2 面向对象分析的测试 291

10.5.3 面向对象设计的测试 293

10.5.4 面向对象编程的测试 294

10.5.5 面向对象的单元测试 294

10.5.6 面向对象的集成测试 295

10.5.7 面向对象的系统测试 295

10.6 测试计划和分析报告 295

10.6.1 软件测试计划 296

10.6.2 测试分析报告 298

实训 300

习题十 302

第11章 软件维护 305

11.1 软件维护概述 305

11.1.1 软件维护的定义 305

11.1.2 软件维护的类型 306

11.1.3 影响软件维护工作量的因素 307

11.1.4 造成软件维护困难的因素 308

11.1.5 结构化维护与非结构化维护 308

11.2 软件维护策略 309

11.2.1 改正性维护 309

11.2.2 适应性维护 309

11.2.3 完善性维护 310

11.3 软件维护成本 310

11.4 软件维护的实施 310

11.4.1 软件维护机构 310

11.4.2 软件维护报告 311

11.4.3 软件维护工作流程 312

11.4.4 软件维护步骤 312

11.4.5 编写维护档案记录 313

11.4.6 维护评价 314

11.5 软件的可维护性 314

11.5.1 影响软件可维护性的因素 314

11.5.2 软件可维护性的度量 315

11.5.3 提高软件可维护性的方法 318

11.6 软件维护的副作用 321

11.6.1 软件维护副作用的类型 321

11.6.2 控制软件维护副作用的策略 322

习题十一 322

第12章 软件项目管理 324

12.1 软件项目管理概述 324

12.1.1 软件项目管理的意义 324

12.1.2 软件项目的特点 325

12.1.3 软件项目管理的职能 325

12.2 软件项目计划 325

12.2.1 软件项目计划的目标和风险分析 325

12.2.2 软件项目计划的类型 325

12.2.3 项目实施计划中任务的划分 326

12.2.4 项目的进度安排 326

12.3 软件项目组织 328

12.3.1 组织原则 329

12.3.2 组织结构的模式 329

12.3.3 程序设计小组的组织形式 330

12.4 软件项目的人员配备 331

12.4.1 项目开发各阶段所需人员 332

12.4.2 配备人员的原则 332

12.4.3 对项目经理的要求 333

12.4.4 评价软件开发人员的标准 333

12.5 软件配置管理 333

12.5.1 软件配置管理的概念 333

12.5.2 软件配置管理的基本目标 334

12.5.3 基线 334

12.5.4 软件配置项 334

12.5.5 版本控制 335

12.5.6 变更控制 336

12.5.7 软件配置管理应注意的问题 337

12.6 软件质量管理 337

12.6.1 软件质量的含义 337

12.6.2 影响软件质量的因素 337

12.6.3 软件质量保证措施 339

12.7 软件能力成熟度模型 340

12.7.1 软件过程的度量 340

12.7.2 关键过程域 340

实训 342

习题十二 344

第13章 软件复用技术 346

13.1 软件复用概述 346

13.1.1 软件复用的意义 346

13.1.2 软件复用的层次 347

13.1.3 软件成分的重用级别 348

13.2 可复用的软件成分 348

13.3 软件复用过程 349

13.4 软件复用环境 350

13.5 面向对象的复用技术 351

13.5.1 类构件的复用 351

13.5.2 类库 352

13.5.3 产生所需类的次序 353

13.5.4 既存类的复用方法 353

习题十三 354

参考文献 356