《软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张海藩,吕云翔编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2013
  • ISBN:9787115326539
  • 页数:336 页
图书介绍:本书正文共13章,第1章是概述,第2章至第8章顺序讲述软件生命周期各阶段的任务、过程、结构化方法和工具,第9章至第12章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,第13章介绍软件项目管理。

第1篇 软件工程与软件过程 1

第1章 软件工程概述 1

1.1软件危机与软件工程的起源 1

1.1.1计算机系统的发展历程 1

1.1.2软件危机介绍 2

1.1.3产生软件危机的原因 2

1.1.4消除软件危机的途径 4

1.2软件工程 5

1.2.1什么是软件工程 5

1.2.2软件工程的基本原理 5

1.3软件工程包含的领域 7

小结 9

习题 9

第2章 软件过程 11

2.1软件生命周期的基本任务 11

2.2瀑布模型 14

2.3快速原型模型 16

2.4增量模型 17

2.5螺旋模型 18

2.6喷泉模型 19

2.7 Rational统一过程 20

2.7.1最佳实践 21

2.7.2 RUP的十大要素 22

2.7.3 RUP生命周期 24

2.8敏捷过程与极限编程 26

2.8.1敏捷过程概述 26

2.8.2极限编程 27

2.9能力成熟度模型 29

2.9.1能力成熟度模型的结构 29

2.9.2能力成熟度等级 30

2.9.3关键过程域 31

2.9.4应用CMM 32

小结 32

习题 33

第2篇 传统方法学 35

第3章 结构化分析 35

3.1概述 35

3.2与用户沟通的方法 36

3.2.1访谈 36

3.2.2简易的应用规格说明技术 37

3.2.3软件原型 38

3.3分析建模与规格说明 39

3.3.1分析建模 39

3.3.2软件需求规格说明 39

3.4实体—关系图 41

3.5数据流图 42

3.5.1数据流图符号 43

3.5.2例子 44

3.5.3命名 46

3.6状态转换图 47

3.6.1状态 47

3.6.2事件 47

3.6.3符号 48

3.6.4例子 48

3.7数据字典 49

3.8结构化分析实例 51

3.8.1问题陈述 51

3.8.2问题定义 51

3.8.3可行性研究 52

3.8.4需求分析 57

小结 62

习题 63

第4章 结构化设计 67

4.1结构化设计与结构化分析的关系 67

4.2软件设计的概念和原理 68

4.2.1模块化 68

4.2.2抽象 70

4.2.3逐步求精 70

4.2.4信息隐藏 71

4.3模块独立 72

4.3.1耦合 72

4.3.2内聚 73

4.4启发规则 74

4.5表示软件结构的图形工具 76

4.5.1层次图和HIPO图 76

4.5.2结构图 78

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

4.6.1概念 79

4.6.2变换分析 80

4.6.3事务分析 85

4.6.4设计优化 86

4.7人—机界面设计 87

4.7.1人—机界面设计问题 87

4.7.2人—机界面设计过程 88

4.7.3界面设计指南 89

4.8过程设计 91

4.9过程设计的工具 92

4.9.1程序流程图 93

4.9.2盒图(N-S图) 93

4.9.3 PAD图 94

4.9.4判定表 95

4.9.5判定树 96

4.9.6过程设计语言 97

4.10面向数据结构的设计方法 97

4.10.1 Jackson图 98

4.10.2改进的Jackson图 99

4.10.3 Jackson方法 99

小结 103

习题 104

第5章 结构化实现 106

5.1编码 107

5.1.1选择程序设计语言 107

5.1.2编码风格 108

5.2软件测试基础 110

5.2.1测试目标 110

5.2.2黑盒测试和白盒测试 110

5.2.3测试准则 111

5.2.4流图 111

5.3逻辑覆盖 112

5.4控制结构测试 115

5.4.1基本路径测试 115

5.4.2条件测试 117

5.4.3数据流测试 119

5.4.4循环测试 120

5.5黑盒测试技术 121

5.5.1等价划分 121

5.5.2边界值分析 123

5.5.3错误推测 124

5.6测试策略 124

5.6.1测试步骤 125

5.6.2单元测试 125

5.6.3集成测试 127

5.6.4确认测试 130

5.7调试 131

5.7.1调试过程 131

5.7.2调试途径 132

5.8软件可靠性 133

5.8.1基本概念 134

5.8.2估算平均无故障时间的方法 134

小结 136

习题 137

第3篇 面向对象方法学 140

第6章 面向对象方法学导论 140

6.1面向对象程序设计实例 140

6.1.1用对象分解取代功能分解 140

6.1.2设计类等级 142

6.1.3定义属性和服务 143

6.2面向对象方法学概述 144

6.2.1面向对象方法学的要点 144

6.2.2面向对象的软件过程 146

6.3面向对象方法学的主要优点 146

6.4面向对象的概念 149

6.4.1对象 150

6.4.2其他概念 152

6.5面向对象建模 155

6.6对象模型 156

6.6.1表示类的符号 156

6.6.2表示关系的符号 158

6.7动态模型 162

6.8功能模型 163

6.9 3种模型之间的关系 163

小结 164

习题 164

第7章 面向对象分析 166

7.1分析过程 166

7.1.1概述 166

7.1.2 3个子模型与5个层次 167

7.2需求陈述 168

7.2.1书写要点 168

7.2.2例子 168

7.3建立对象模型 169

7.3.1确定类与对象 170

7.3.2确定关联 171

7.3.3划分主题 174

7.3.4确定属性 174

7.3.5识别继承关系 176

7.3.6反复修改 177

7.4建立动态模型 179

7.4.1编写脚本 179

7.4.2设想用户界面 180

7.4.3画事件跟踪图 181

7.4.4画状态图 182

7.4.5审查动态模型 184

7.5建立功能模型 184

7.6定义服务 186

7.7面向对象分析实例 186

7.7.1需求陈述 187

7.7.2建立对象模型 187

7.7.3建立动态模型 188

7.7.4建立功能模型 190

7.7.5进一步完善 190

小结 191

习题 192

第8章 面向对象设计 194

8.1面向对象设计的准则 194

8.2启发规则 196

8.3系统分解 197

8.3.1子系统之间的两种交互方式 198

8.3.2组织系统的两种方案 199

8.3.3设计系统的拓扑结构 199

8.4设计问题域子系统 199

8.5设计人—机交互子系统 201

8.5.1设计人—机交互界面的准则 201

8.5.2设计人—机交互子系统的策略 202

8.6设计任务管理子系统 203

8.6.1分析并发性 203

8.6.2设计任务管理子系统 204

8.7设计数据管理子系统 205

8.7.1选择数据存储管理模式 205

8.7.2设计数据管理子系统 206

8.7.3例子 207

8.8设计类中的服务 208

8.8.1确定类中应有的服务 208

8.8.2设计实现服务的方法 208

8.9设计关联 209

8.10设计优化 210

8.10.1确定优先级 210

8.10.2提高效率的几项技术 211

8.10.3调整继承关系 212

8.11面向对象分析与设计实例 213

8.11.1面向对象分析 214

8.11.2面向对象设计 215

小结 220

习题 220

第9章 面向对象实现 222

9.1程序设计语言 222

9.1.1面向对象语言的优点 222

9.1.2面向对象语言的技术特点 223

9.1.3选择面向对象语言 226

9.2程序设计风格 226

9.2.1提高可重用性 227

9.2.2提高可扩充性 228

9.2.3提高健壮性 229

9.3测试策略 229

9.3.1面向对象的单元测试 230

9.3.2面向对象的集成测试 230

9.3.3面向对象的确认测试 230

9.4设计测试用例 230

9.4.1测试类的方法 231

9.4.2集成测试方法 232

小结 234

习题 234

第10章 统一建模语言 236

10.1概述 236

10.1.1 UML的产生和发展 236

10.1.2 UML的系统结构 237

10.1.3 UML的图 238

10.1.4 UML的应用领域 239

10.2静态建模机制 240

10.2.1用例 240

10.2.2类图和对象图 244

10.3动态建模机制 245

10.3.1消息 245

10.3.2状态图 246

10.3.3顺序图 247

10.3.4协作图 248

10.3.5活动图 249

10.4描述物理架构的机制 249

10.4.1逻辑架构和物理架构 250

10.4.2构件图 250

10.4.3部署图 250

10.5使用和扩展UML 252

10.5.1使用UML的准则 252

10.5.2扩展UML的机制 253

小结 253

习题 254

第4篇 软件项目管理 257

第11章 计划 257

11.1度量软件规模 257

11.1.1代码行技术 257

11.1.2功能点技术 258

11.2 工作量估算 260

11.2.1静态单变量模型 260

11.2.2动态多变量模型 260

11.2.3 COCOMO2模型 261

11.3进度计划 263

11.3.1基本原则 264

11.3.2估算软件开发时间 264

11.3.3 Gantt图 265

11.3.4 工程网络 266

11.3.5估算进度 267

11.3.6关键路径 269

11.3.7机动时间 269

小结 270

习题 271

第12章 组织 273

12.1民主制程序员组 273

12.2主程序员组 274

12.3现代程序员组 276

12.4软件项目组 277

12.4.1 3种组织方式 277

12.4.2 4种组织范型 279

小结 279

习题 279

第13章 控制 281

13.1风险管理 281

13.1.1软件风险分类 281

13.1.2风险识别 282

13.1.3风险预测 286

13.1.4处理风险的策略 287

13.2质量保证 289

13.2.1软件质量 289

13.2.2软件质量保证措施 290

13.3配置管理 292

13.3.1软件配置 292

13.3.2软件配置管理过程 294

小结 299

习题 299

第14章 软件维护与软件文档 301

14.1软件维护 301

14.1.1软件维护的过程 301

14.1.2软件维护的分类 303

14.1.3软件的可维护性 303

14.1.4软件维护的副作用 304

14.2软件文档 305

小结 307

习题 307

第5篇 高级课题 309

第15章 形式化方法 309

15.1概述 309

15.1.1非形式化方法的缺点 309

15.1.2软件开发过程中的数学 310

15.1.3应用形式化方法的准则 310

15.2有穷状态机 311

15.2.1基本概念 311

15.2.2电梯问题 312

15.2.3评论 314

15.3 Petri网 315

15.3.1基本概念 315

15.3.2应用实例 316

15.4 Z语言 317

15.4.1简介 318

15.4.2评论 319

小结 320

习题 320

第16章 软件重用 322

16.1可重用的软件成分 322

16.2软件重用过程 323

16.2.1构件组装模型 323

16.2.2类构件 324

16.2.3重用过程模型 325

16.3领域工程 326

16.3.1分析过程 326

16.3.2领域特征 327

16.3.3结构建模和结构点 328

16.4开发可重用的构件 328

16.4.1为了重用的分析与设计 328

16.4.2基于构件的开发 329

16.5分类和检索构件 330

16.5.1描述可重用的构件 330

16.5.2重用环境 332

16.6软件重用的效益 333

小结 334

习题 334

参考文献 335