《软件工程基础》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:胡思康编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302283171
  • 页数:314 页
图书介绍:本书着重从实用角度讲述软件工程的基本概念、原理、过程、方法和各类图形工具,系统地介绍传统软件工程和面向对象的软件工程技术。本书内容主要包括:软件工程概述,需求分析,软件设计过程,包括概要设计和详细设计;面向对象的需求分析、面向对象设计、UML介绍和使用,编码,软件测试、软件维护以及软件项目管理等。每章最后配有各类习题,供读者练习、提高。

第1章 软件工程概述 1

1.1软件工程的发展历程 1

1.1.1软件危机 1

1.1.2软件危机出现的原因 3

1.1.3软件工程的发展 4

1.2软件工程的概念 5

1.2.1软件工程的定义 5

1.2.2软件工程的目标 6

1.2.3软件工程的实施原则 8

1.2.4软件工程的基本原理 9

1.3软件与软件过程 11

1.3.1软件的概念 11

1.3.2软件的分类 13

1.3.3软件生命周期 14

1.3.4软件过程 15

1.4软件过程模型 17

1.4.1瀑布模型 17

1.4.2原型模型 18

1.4.3增量模型 19

1.4.4螺旋模型 20

1.4.5喷泉模型 21

1.4.6敏捷过程模型 22

1.4.7基于四代技术的过程模型 23

1.4.8微软解决框架过程模型 24

1.4.9组合模型的开发 25

1.5软件开发方法 25

1.5.1结构化开发方法 26

1.5.2面向对象开发方法 26

1.6案例描述 27

1.6.1简历信息自动获取和查询系统 27

1.6.2试卷自动生成系统 28

1.7小结 29

习题 31

第2章 软件需求工程 32

2.1软件需求的基本概念 32

2.1.1需求分析的任务 32

2.1.2需求分析的原则 33

2.1.3需求分析的内容 34

2.2需求工程的过程 36

2.2.1需求工程中的参与人员 36

2.2.2需求工程过程中的活动 36

2.2.3需求工程的管理 38

2.3需求获取技术 39

2.4结构化需求分析和建模 41

2.4.1结构化分析概述 42

2.4.2面向数据的数据建模 42

2.4.3面向数据流的功能建模 44

2.4.4面向状态转换的行为建模 48

2.4.5数据字典 49

2.4.6加工逻辑 51

2.5案例——简历自动获取和查询系统的需求建模 52

2.5.1数据建模——ER图描述 53

2.5.2功能建模——数据流图 53

2.5.3行为建模——状态转换图 55

2.5.4数据字典 55

2.5.5加工逻辑——PDL语言的描述 56

2.6需求评审 56

2.6.1软件需求规格说明文档 57

2.6.2需求评审标准 60

2.7小结 61

习题 61

第3章 软件设计基础 63

3.1软件设计概述 63

3.1.1软件设计与软件需求 63

3.1.2软件设计的任务 64

3.1.3软件设计的原则 66

3.2软件体系结构设计 67

3.2.1体系结构设计概述 67

3.2.2以数据为中心的数据仓库模型 68

3.2.3客户端服务器模式的分布式结构 69

3.2.4层次模型 71

3.3模块化设计 72

3.3.1软件模块化与分解 72

3.3.2抽象 73

3.3.3信息隐藏 73

3.3.4模块独立性 74

3.3.5启发式规则 76

3.4界面设计 79

3.4.1界面设计的任务 79

3.4.2界面设计的原则 80

3.4.3界面设计的特性 81

3.4.4 MVC模型 81

3.5软件设计评审 83

3.5.1软件设计规格说明文档 83

3.5.2软件设计评审标准 86

3.6小结 88

习题 88

第4章结构化设计方法 90

4.1结构化设计方法概述 90

4.2面向数据流的设计方法 91

4.2.1层次图和结构图 91

4.2.2变换分析法 93

4.2.3事务分析法 97

4.2.4混合分析法 98

4.3面向数据的设计方法 99

4.3.1 Jackson图 99

4.3.2 Jackson系统开发方法 100

4.4案例 简历自动获取和查询系统的数据流设计方法 102

4.4.1用变换分析法进行设计 103

4.4.2用事务分析法进行设计 104

4.4.3两种方法的比较 105

4.5结构化详细设计的工具 106

4.5.1程序流程图 106

4.5.2盒图(NS图) 107

4.5.3问题分析图 108

4.5.4判定树 110

4.5.5判定表 110

4.5.6详细设计工具的比较 111

4.6小结 112

习题 113

第5章 软件实现 114

5.1程序设计语言 114

5.1.1程序设计语言的分类 114

5.1.2程序设计语言的特性 115

5.1.3选择程序设计语言 116

5.2程序设计风格 118

5.2.1程序编排和组织的准则 118

5.2.2程序设计的效率 122

5.3代码复用 124

5.4代码评审 125

5.5小结 129

习题 129

第6章 软件测试 131

6.1软件测试基础 131

6.1.1软件测试的概念 131

6.1.2软件测试过程模型 132

6.1.3软件测试原则 134

6.1.4软件测试在软件开发各阶段的工作流程 137

6.1.5软件测试信息流 138

6.1.6软件测试技术分类 139

6.2白盒测试 140

6.2.1逻辑覆盖 141

6.2.2循环测试 144

6.2.3路径测试 145

6.3黑盒测试 148

6.3.1等价类划分 148

6.3.2边界值分析 150

6.3.3错误推测法 150

6.3.4因果图法 151

6.4白盒测试和黑盒测试的比较 153

6.5软件测试策略 154

6.5.1单元测试 155

6.5.2集成测试 157

6.5.3确认测试 159

6.5.4系统测试 160

6.6调试 162

6.6.1软件调试过程 162

6.6.2软件调试方法 163

6.7软件测试报告 164

6.7.1软件测试说明 164

6.7.2软件测试报告 166

6.8小结 167

习题 167

第7章UML统一建模语言 169

7.1 UML的发展 169

7.1.1 UML的产生 169

7.1.2 UML的构成 170

7.1.3 UML的特点 171

7.2面向对象的基本概念 171

7.3 UML视图 177

7.4 UML的图和模型元素 178

7.4.1用例图 179

7.4.2类图 180

7.4.3包图 182

7.4.4状态图 183

7.4.5活动图 183

7.4.6顺序图 185

7.4.7协作图 186

7.4.8构件图 187

7.4.9配置图 187

7.5 UML的关系 188

7.5.1关联关系 188

7.5.2泛化关系 191

7.5.3依赖关系 195

7.5.4实现关系 196

7.6 UML的通用机制 196

7.6.1修饰 196

7.6.2注释 197

7.6.3规格说明 197

7.6.4扩展机制 197

7.7基于UML的软件过程 199

7.8小结 201

习题 202

第8章 面向对象分析 203

8.1面向对象分析概述 203

8.1.1传统软件过程中的不足 203

8.1.2面向对象的特点 204

8.1.3面向对象分析的基本过程 205

8.1.4面向对象分析的3类模型 205

8.1.5静态模型的5个层次 206

8.2建立功能模型 207

8.2.1识别参与者 208

8.2.2识别用例 209

8.2.3识别用例间关系 210

8.2.4用例描述文档 211

8.3建立静态模型(对象模型) 212

8.3.1识别类与对象 213

8.3.2划分主题 215

8.3.3确定结构 215

8.3.4确定属性 216

8.3.5确定服务 217

8.3.6类图描述文档 218

8.3.7包图描述文档 219

8.4建立动态模型 220

8.4.1建立顺序图及其描述文档 220

8.4.2建立状态图及其描述文档 221

8.4.3建立协作图及其描述文档 223

8.4.4建立活动图及其描述文档 224

8.5小结 226

习题 226

第9章 面向对象设计 228

9.1面向对象设计概述 228

9.1.1面向对象分析与设计的关系 228

9.1.2面向对象设计原则 229

9.2精化类及类间关系 230

9.2.1设计类的属性 230

9.2.2设计类的方法 231

9.2.3设计类间泛化关系 232

9.2.4设计关联类 234

9.3数据设计 234

9.3.1基于关系数据库的数据设计 234

9.3.2基于其他方式的数据设计 237

9.4人机交互设计 237

9.5建立实现模型 239

9.5.1构件图及其描述文档 239

9.5.2配置图及其描述文档 240

9.6设计模式简介 242

9.6.1概述 242

9.6.2 Singleton模式 243

9.6.3 Abstract Factory模式 244

9.6.4 Mediator模式 245

9.6.5 Adapter模式 247

9.7面向对象的测试 248

9.7.1面向对象测试概述 249

9.7.2面向对象的单元测试 249

9.8小结 251

习题 252

第10章 软件维护 254

10.1软件维护概述 254

10.1.1软件维护的任务 254

10.1.2软件维护的特点 255

10.1.3软件维护的分类 255

10.2软件维护过程 257

10.2.1软件维护方式 257

10.2.2软件维护管理的基本内容 258

10.2.3维护中存在的问题 263

10.2.4维护活动记录 264

10.3软件的可维护性 264

10.3.1可维护性因素 265

10.3.2提高软件的可维护性 265

10.4逆向工程 268

10.5小结 270

习题 271

第11章 软件项目管理 272

11.1软件项目管理概述 272

11.1.1软件项目管理的特点和内容 272

11.1.2软件项目管理目标 273

11.1.3软件项目管理的4P观点 274

11.2软件项目规模度量 275

11.2.1代码行技术 276

11.2.2功能点计算 277

11.2.3代码行与功能点间的转换 280

11.3软件项目估算 280

11.3.1代码行和功能点的其他估算模型 281

11.3.2专家估算模型 281

11.3.3 Putnam模型 282

11.3.4 COCOMO模型 282

11.3.5项目估算模型的小结 285

11.4项目进度管理 285

11.4.1项目进度控制 285

11.4.2甘特图 286

11.4.3工程网络图 287

11.5项目风险管理 288

11.5.1软件风险概念 289

11.5.2风险管理过程 289

11.6项目质量管理 293

11.6.1软件质量因素 293

11.6.2软件质量保证活动 297

11.6.3软件质量保证计划 298

11.7软件配置管理 300

11.7.1软件配置项 300

11.7.2配置管理过程 301

11.7.3软件配置管理计划 304

11.8项目人员组织管理 305

11.8.1团队组织 305

11.8.2团队组织方式 306

11.9软件能力成熟度模型 308

11.9.1基本概念 308

11.9.2软件能力成熟度模型等级 309

11.9.3关键过程域 310

11.10小结 311

习题 312

参考文献 314