《软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张海藩编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2003
  • ISBN:7115112584
  • 页数:314 页
图书介绍:本书为高职高专计算机专业的教材。

目录 1

第1章 概述 1

1.1 开发软件不等于编写程序 1

1.1.1 开发软件应该完成的工作远远多于编写程序应该完成的工作 1

1.1.2 错误做法导致软件危机 2

1.1.3 消除软件危机的途径 5

1.2 软件工程 5

1.2.1 软件工程的定义 5

1.2.2 软件工程的基本原理 6

1.2.3 软件工程方法学 8

1.3 软件生命周期 10

1.4 软件过程 12

1.4.1 瀑布模型 13

1.4.2 快速原型模型 15

1.4.3 增量模型 16

1.4.4 螺旋模型 17

1.5 小结 18

习题一 20

第2章 结构化分析 22

2.1 可行性研究的任务 22

2.2 可行性研究过程 23

2.3 需求分析的任务 25

2.4 需求分析的过程 27

2.5 与用户沟通的方法 29

2.5.1 访谈 30

2.5.2 简易的应用规格说明技术 30

2.6.2 软件需求规格说明书 32

2.6.1 分析建模 32

2.6 分析建模与规格说明 32

2.7 验证软件需求 35

2.7.1 至少从四个方面验证软件需求 35

2.7.2 验证软件需求的方法 35

2.7.3 用于需求分析的软件工具 36

2.8 系统流程图 37

2.8.1 系统流程图的符号 37

2.8.2 举例 37

2.8.3 分层画系统流程图 39

2.8.4 系统流程图的用途 39

2.9 实体-联系图 40

2.10 数据流图 41

2.10.1 数据流图的符号 42

2.10.2 举例 43

2.10.3 命名 45

2.10.4 数据流图的用途 46

2.11 数据字典 47

2.11.1 数据字典的内容 48

2.11.2 定义数据的方法 48

2.11.3 数据字典的用途 49

2.11.4 实现数据字典的途径 49

2.12 其他图形工具 50

2.12.1 层次方框图 51

2.12.2 Warnier图 51

2.12.3 IPO图 52

2.13 成本/效益分析 53

2.13.1 成本估计 53

2.13.2 成本/效益分析方法 55

2.14.1 工资支付问题定义 56

2.14 结构化分析实例 56

2.14.2 可行性研究 58

2.14.3 需求分析 66

2.15 小结 74

习题二 76

第3章 结构化设计 78

3.1 软件设计的任务 78

3.1.1 概要设计的任务 78

3.1.2 详细设计的任务 79

3.2 从分析过渡到设计 79

3.3 软件设计准则 80

3.3.1 模块化与模块独立 80

3.3.2 抽象 82

3.3.4 信息隐藏 83

3.3.3 逐步求精 83

3.4 度量模块独立性的标准 84

3.4.1 耦合 84

3.4.2 内聚 85

3.5 启发规则 86

3.5.1 改进软件结构提高模块独立性 86

3.5.2 模块规模应该适中 86

3.5.3 深度、宽度、扇出和扇入都应适当 87

3.5.4 模块的作用域应该在控制域之内 87

3.5.5 力争降低模块接口的复杂程度 88

3.5.6 设计单入口单出口的模块 88

3.5.7 模块功能应该可以预测 88

3.6 描绘软件结构的图形工具 88

3.6.1 层次图和HIPO图 88

3.6.2 结构图 89

3.7.1 概念 91

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

3.7.2 变换分析 92

3.7.3 事务分析 98

3.7.4 设计优化 99

3.8 人机界面设计 99

3.8.1 应该考虑的设计问题 100

3.8.2 人机界面设计过程 101

3.8.3 界面设计指南 102

3.9 过程设计 104

3.10 过程设计的工具 106

3.10.1 程序流程图 106

3.10.2 盒图 107

3.10.3 PAD图 107

3.10.4 判定表 110

3.10.6 过程设计语言(PDL) 111

3.10.5 判定树 111

3.11 面向数据结构的设计方法 112

3.11.1 Jackson图 113

3.11.2 改进的Jackson图 113

3.11.3 Jackson方法 114

3.12 结构化设计实例 118

3.12.1 汉字行编辑程序的规格说明 119

3.12.2 概要设计 121

3.12.3 概要设计结果 124

3.12.4 详细设计 127

3.12.5 详细设计结果 134

3.13 小结 165

习题三 166

4.1 编码 168

4.1.1 选择适当的程序设计语言 168

第4章 结构化实现 168

4.1.2 正确的编码风格 169

4.2 软件测试概述 172

4.2.1 软件必须测试 172

4.2.2 软件测试的目标 172

4.2.3 两类测试方法 173

4.2.4 软件测试准则 174

4.3 白盒测试技术 175

4.3.1 逻辑覆盖 175

4.3.2 控制结构测试 178

4.4 黑盒测试技术 186

4.4.1 等价划分 186

4.4.2 边界值分析 189

4.4.3 错误推测 190

4.5 测试策略 191

4.5.1 测试步骤 191

4.5.2 单元测试 191

4.5.3 集成测试 195

4.5.4 确认测试 199

4.6 调试 200

4.6.1 调试过程 200

4.6.2 调试途径 201

4.7 软件可靠性 202

4.7.1 基本概念 203

4.7.2 估算平均无故障时间的方法 203

4.8 小结 205

习题四 206

5.1.1 用对象分解取代功能分解 210

5.1 一个面向对象的程序实例 210

第5章 面向对象方法学导论 210

5.1.2 设计类等级 212

5.1.3 定义属性和服务 214

5.1.4 用C++语言实现 215

5.2 面向对象的概念 223

5.2.1 对象 223

5.2.2 其他面向对象的概念 225

5.3 面向对象方法学概述 229

5.3.1 面向对象方法学的要点 229

5.3.2 面向对象建模 231

5.3.3 面向对象的软件过程 232

5.4 对象模型 233

5.4.1 表示类的图形符号 234

5.4.2 表示关系的图形符号 235

5.5 动态模型 241

5.5.1 概念 241

5.5.2 图示符号 242

5.6 面向对象分析 244

5.6.1 确定问题域内的对象 245

5.6.2 确定关联 246

5.6.3 确定属性 247

5.6.4 建立继承关系 248

5.6.5 建立动态模型 248

5.6.6 建立功能模型 249

5.6.7 定义服务 249

5.7 面向对象设计 249

5.7.1 面向对象设计准则 250

5.7.2 启发规则 251

5.8.1 面向对象分析 253

5.8 面向对象分析与设计实例 253

5.8.2 面向对象设计 254

5.9 面向对象实现 260

5.9.1 面向对象的程序设计语言 260

5.9.2 面向对象程序设计风格 261

5.9.3 面向对象测试 263

5.10 面向对象方法学的主要优点 264

5.11 小结 267

习题五 269

第6章 软件维护 270

6.1 软件维护的定义与策略 270

6.1.1 定义 270

6.1.2 策略 271

6.2.1 结构化维护与非结构化维护差别悬殊 272

6.2 软件维护的特点 272

6.2.2 维护的代价高昂 273

6.2.3 维护的问题很多 273

6.3 软件维护过程 274

6.3.1 维护组织 274

6.3.2 维护报告 274

6.3.3 维护的事件流 275

6.3.4 保存维护记录 276

6.3.5 评价维护活动 276

6.4 软件的可维护性 277

6.4.1 决定软件可维护性的因素 277

6.4.2 文档 278

6.4.3 可维护性复审 279

6.5 预防性维护 279

6.5.1 必要性 279

6.5.2 可行性 280

6.6 软件再工程过程 281

6.7 小结 284

习题六 284

第7章 软件项目管理 286

7.1 度量软件规模 286

7.1.1 代码行技术 286

7.1.2 功能点技术 287

7.2 估算软件开发工作量 289

7.2.1 静态单变量模型 289

7.2.2 动态多变量模型 289

7.2.3 COCOMO2模型 290

7.3 进度计划 293

7.3.1 估算开发时间 293

7.3.2 甘特(Gantt)图 295

7.3.3 工程网络 296

7.3.4 估算进度 298

7.3.5 关键路径 299

7.3.6 机动时间 299

7.4 人员组织 301

7.4.1 民主制程序员组 301

7.4.2 主程序员组 302

7.4.3 现代程序员组 303

7.5 质量保证 305

7.5.1 软件质量的定义 305

7.5.2 软件质量保证措施 306

7.6 软件配置管理 309

7.7 能力成熟度模型 310

7.8 小结 312

习题七 313

参考文献 314