《软件工程实用教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:周丽娟,王华编著;陈明丛书主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302296768
  • 页数:287 页
图书介绍:本书分为三个部分共15章。第一部分为传统的软件工程,从软件生存周期的角度出发,介绍了软件可行性分析、软件计划、结构化分析、结构化设计、编码、测试以及软件维护阶段的过程、方法、工具、文档及案例。第二部分为面向对象的软件工程,以面向对象技术和UML语言为主线,介绍面向对象的概念、模型、分析、设计及实现过程。第三部分为软件工程管理,简要介绍了软件项目管理、软件质量管理、软件配置管理及软件过程管理的内容。

第一部分 传统的软件工程 3

第1章 软件工程概述 3

1.1软件的概念和特征 3

1.1.1软件的概念 3

1.1.2软件的分类 4

1.2软件危机 5

1.2.1软件危机的主要表现 6

1.2.2产生软件危机的原因 7

1.2.3解决软件危机的途径 8

1.3软件工程 8

1.3.1软件工程的定义 9

1.3.2软件工程的目标 10

1.3.3软件工程的研究内容 10

1.3.4软件工程的基本原理 11

1.4软件生存周期 13

1.4.1软件生存周期定义 13

1.4.2软件生存周期的基本任务 13

1.5软件生存周期模型 14

1.5.1瀑布模型 14

1.5.2原型模型 15

1.5.3增量模型 16

1.5.4螺旋模型 17

1.5.5喷泉模型 17

1.5.6形式化方法模型 18

1.5.7基于组件的开发模型 19

1.5.8第四代技术模型 19

1.5.9混合模型 20

1.6小结 20

习题 20

第2章 可行性研究与软件开发计划 21

2.1可行性研究的任务 21

2.2可行性研究的过程 22

2.3成本/效益分析 23

2.3.1成本估计方法 23

2.3.2成本/效益分析方法 24

2.4可行性研究报告 26

2.5软件开发计划 26

2.5.1软件作用范围 27

2.5.2资源需求 27

2.5.3进度安排 27

2.6软件开发计划说明书 27

2.7小结 28

习题 28

第3章 需求工程 30

3.1软件需求 30

3.1.1业务需求 30

3.1.2用户需求 31

3.1.3功能需求 31

3.1.4非功能需求 31

3.2需求工程过程 32

3.3需求的获取 33

3.3.1需求获取的过程 33

3.3.2需求获取的常用方法 34

3.4需求分析 36

3.4.1需求分析的特点 36

3.4.2需求分析的原则 36

3.4.3需求分析的任务 37

3.4.4需求分析的方法 38

3.4.5需求分析过程 39

3.5需求定义 39

3.6需求验证 41

3.7需求管理 43

3.8案例:小型教学管理系统 45

3.9小结 47

习题 48

第4章 结构化分析 49

4.1结构化分析方法 49

4.1.1结构化分析策略 49

4.1.2 SA的描述工具 50

4.1.3 SA的分析步骤 50

4.2数据流图DFD 51

4.2.1数据流图符号 51

4.2.2绘制分层数据流图的方法 52

4.2.3实例 54

4.2.4数据流图的绘制与其他流程图的差别 56

4.3数据字典 56

4.3.1数据字典的内容 56

4.3.2数据字典使用符号 58

4.3.3数据字典条目实例 58

4.4数据加工逻辑 59

4.4.1结构化语言 59

4.4.2判定表 60

4.4.3判定树 62

4.5实体关系图 62

4.6结构化分析实例 64

4.7小结 69

习题 69

第5章 总体设计 70

5.1软件设计基础 70

5.1.1软件设计的目标 70

5.1.2软件设计的任务 71

5.1.3总体设计过程 71

5.2软件设计的基本原理 72

5.2.1模块化设计原理 72

5.2.2抽象和逐步求精 74

5.2.3信息隐蔽和局部化 75

5.2.4模块独立性 75

5.2.5软件结构设计优化原则 77

5.3表示软件结构的图形 79

5.3.1层次图和HIPO图 79

5.3.2软件结构图 80

5.4结构化设计方法 82

5.4.1结构化设计的流程 82

5.4.2典型的数据流类型和系统结构 83

5.4.3变换分析 84

5.4.4事物分析 88

5.5总体设计文档及复审 91

5.6小结 92

习题 92

第6章 详细设计 93

6.1结构化程序设计 93

6.2详细设计的任务 93

6.3详细设计的原则 94

6.4详细设计工具 94

6.4.1程序流程图 94

6.4.2盒图(N-S图) 95

6.4.3 PAD图 96

6.4.4过程设计语言 98

6.4.5详细设计工具的选择 100

6.5程序复杂性度量 101

6.6详细设计文档及设计复审 103

6.7小结 105

习题 105

第7章 软件编码 107

7.1程序设计语言 107

7.1.1程序设计语言的特性 107

7.1.2程序设计语言的分类 108

7.1.3程序设计的选择 110

7.2程序设计的风格 111

7.2.1源程序文档化 111

7.2.2数据说明 112

7.2.3语句结构 112

7.2.4输入和输出 113

7.2.5重用 114

7.3效率 114

7.4小结 115

习题 116

第8章 软件测试 117

8.1软件测试基本理论 117

8.1.1软件测试的概念 117

8.1.2软件测试的原则 117

8.1.3软件测试过程 119

8.1.4软件测试方法 119

8.2白盒测试技术 120

8.2.1逻辑覆盖法 120

8.2.2基本路径测试法 124

8.2.3循环测试法 128

8.3黑盒测试技术 129

8.3.1等价类划分法 129

8.3.2边界值分析法 132

8.3.3错误推测法 134

8.3.4因果图法 135

8.4软件测试策略 135

8.4.1单元测试 136

8.4.2集成测试 137

8.4.3确认测试 139

8.4.4系统测试 140

8.5小结 142

习题 142

第9章 软件维护 143

9.1软件维护概述 143

9.1.1软件维护分类 143

9.1.2软件维护成本 144

9.2软件维护过程 146

9.2.1软件维护活动 146

9.2.2软件维护技术 149

9.3软件可维护性 149

9.3.1影响软件可维护性的因素 150

9.3.2软件可维护性度量 150

9.3.3提高可维护性的方法 152

9.4软件维护的副作用 153

9.4.1代码的副作用 153

9.4.2数据副作用 153

9.4.3文档副作用 154

9.5软件再工程 154

9.5.1软件再工程概述 154

9.5.2软件再工程过程 155

9.5.3软件再工程方法 157

9.6小结 157

习题 157

第二部分 面向对象的软件工程 161

第10章 面向对象基础 161

10.1面向对象方法论概述 161

10.1.1传统软件开发方法中存在的问题 161

10.1.2面向对象方法主要优点 163

10.1.3面向对象方法的发展史及现状简介 165

10.2面向对象的基本概念 166

10.2.1对象 166

10.2.2类 166

10.2.3消息 166

10.2.4封装性 166

10.2.5继承性 167

10.2.6多态性 167

10.3面向对象软件工程 168

10.3.1面向对象的开发方法 168

10.3.2统一建模语言UML 169

10.3.3 RUP过程 169

10.3.4工具 173

10.4小结 174

习题 174

第11章UML建模语言 175

11.1 UML统一建模语言简介 175

11.1.1 UML的发展历史 175

11.1.2 UML的特点 176

11.1.3 UML用于软件的开发 176

11.2 UML的基本模型 177

11.2.1 UML的事物 177

11.2.2 UML的关系 179

11.2.3 UML的图 182

11.3用例图 184

11.3.1用例图描述 184

11.3.2建立用例模型 187

11.3.3用例图示例 189

11.4类图 189

11.4.1类图描述 189

11.4.2类的表示方法 189

11.4.3类的关系 191

11.4.4类图示例 191

11.5对象图 192

11.5.1对象图描述 192

11.5.2对象的表示方法 192

11.5.3对象图示例 192

11.6包图 193

11.6.1包图描述 193

11.6.2包的表示方法 193

11.6.3包之间的关系 194

11.6.4包图示例 194

11.7状态机图 195

11.7.1状态机图描述 195

11.7.2状态的表示方法 195

11.7.3转换 196

11.7.4事件 196

11.7.5状态图示例 197

11.8活动图 198

11.8.1活动图描述 198

11.8.2活动的表示方法 198

11.8.3泳道 199

11.8.4对象流和控制流 199

11.8.5活动图示例 200

11.9顺序图 200

11.9.1顺序图描述 200

11.9.2顺序图表示方法 201

11.9.3顺序图示例 202

11.10通信图 202

11.10.1通信图描述 202

11.10.2通信图表示方法 203

11.10.3通信图示例 204

11.11构件图 205

11.11.1构件图描述 205

11.11.2构件的表示方法 205

11.11.3接口 206

11.11.4依赖关系 206

11.11.5构件图示例 207

11.12部署图 208

11.12.1部署图描述 208

11.12.2部署图表示方法 209

11.12.3部署图示例 210

11.13小结 211

习题 211

第12章 面向对象分析 212

12.1面向对象分析过程 212

12.2建立用例模型 213

12.2.1确定系统的执行者 213

12.2.2确定用例 213

12.2.3确定用例模型 214

12.2.4用例模型说明 215

12.2.5用例模型评价 217

12.2.6优化用例模型 218

12.2.7构造系统原型 218

12.3建立对象模型 218

12.3.1补充用例说明 219

12.3.2识别分析类 219

12.3.3描述类的职责 221

12.3.4建立分析类之间的关系 222

12.3.5描述每个类的属性 223

12.4建立动态模型 223

12.5评审分析模型 225

12.6小结 226

习题 226

第13章 面向对象的设计 227

13.1面向对象设计准则 227

13.1.1设计准则 227

13.1.2设计策略 228

13.1.3系统分解与组织 230

13.2问题域子系统设计 232

13.3人机交互子系统设计 233

13.4任务管理子系统设计 235

13.5数据管理子系统设计 237

13.5.1选择数据存储管理模式 237

13.5.2设计数据管理子系统 238

13.6对象设计 240

13.6.1使用模式设计对象 241

13.6.2接口规格说明设计 241

13.6.3重构对象设计模型 243

13.6.4优化对象设计模型 243

13.7小结 244

习题 244

第14章 面向对象实现 245

14.1面向对象程序设计语言 245

14.2面向对象的程序实现特征 246

14.3面向对象测试 247

14.3.1面向对象测试模型 248

14.3.2面向对象分析的测试 248

14.3.3面向对象设计的测试 249

14.3.4面向对象编程的测试 250

14.3.5面向对象的单元测试 251

14.3.6面向对象的集成测试 253

14.3.7面向对象的系统测试 254

14.4小结 255

习题 255

第三部分 软件工程管理 259

第15章 软件工程管理 259

15.1软件项目管理 259

15.1.1软件项目管理的特点 259

15.1.2软件项目管理活动 260

15.1.3软件项目计划 261

15.2软件风险管理 272

15.2.1风险识别 272

15.2.2风险分析 276

15.2.3风险规划 277

15.2.4风险控制 278

15.3软件质量管理 278

15.3.1软件质量基础 279

15.3.2软件质量控制 279

15.4软件配置管理 280

15.4.1软件配置管理概述 281

15.4.2软件配置管理过程 282

15.5软件过程管理 283

15.5.1 ISO9000体系 283

15.5.2能力成熟度模型 284

15.6小结 286

习题 287