《软件工程导论》求取 ⇩

第一章 软件危机和软件工程1

1.1 计算机系统的发展简史1

前言1

1.2 软件危机2

1.2.1 什么是软件危机2

1.2.2 产生软件危机的原因3

1.2.3 解决软件危机的途径6

1.3 软件工程7

1.3.2 可行性研究8

1.3.1 问题定义8

1.3.3 要求分析9

1.3.4 一般设计9

1.3.5 详细设计10

1.3.6 编码和单元测试10

1.3.7 综合测试10

1.3.8 软件维护10

1.4 技术审查和管理复审11

1.4.1 必须进行审查和复审11

1.4.2 技术审查的标准和审查小组的组成12

1.4.3 技术审查过程13

1.5 小结14

第二章 问题定义和可行性研究15

2.1 问题定义15

2.2 可行性研究的任务16

2.3 可行性研究的步骤16

2.3.4 重新定义问题17

2.3.3 导出新系统的高层逻辑模型17

2.3.2 研究目前正在使用的系统17

2.3.1 复查系统规模和目标17

2.3.5 导出和评价供选择的解法18

2.3.6 推荐行动方针18

2.3.7 草拟开发计划18

2.3.8 书写文档提交审查19

2.4 系统流程图19

2.4.1 符号20

2.4.2 例子21

2.4.3 分层21

2.5 数据流图22

2.4.4 用途22

2.5.1 符号23

2.5.2 例子24

2.5.3 用途27

2.6 数据字典28

2.6.1 数据字典的内容29

2.6.2 定义数据的方法29

2.6.4 数据字典的实现30

2.6.3 数据字典的用途30

2.7.成本/效益分析31

2.7.1 成本估计32

2.7.2 成本/效益分析的方法33

2.8 小结35

第三章 要求分析36

3.1 要求分析的任务36

3.1.1 确定对系统的综合要求36

3.1.4 修正系统开发计划37

3.1.5 开发模型系统37

3.1.2 分析系统的数据要求37

3.1.3 导出系统的逻辑模型37

3.2 分析过程38

3.2.1 沿数据流图回溯39

3.2.2 用户复查39

3.2.3 细化数据流图40

3.2.4 修正开发计划40

3.3 图形工具41

3.3.1 层次方框图41

3.2.6 审查和复审41

3.2.5 书写文档41

3.3.2 Warnier图42

3.3.3 IPO图43

3.4 超高级语言44

3.4.1 Shell语言的命令表45

3.4.2 Shell变量45

3.4.3 Shell语言的条件结构46

3.4.4 Shell语言的循环结构47

3.5 软件工具和对软件要求的验证48

3.6 小结49

4.1.1 设想供选择的方案51

4.1.2 选取合理的方案51

第四章 一般设计51

4.1 一般设计的过程51

4.1.3 推荐最佳方案52

4.1.4 功能分解52

4.1.5 设计软件结构52

4.1.6 数据库设计52

4.1.9 审查和复审53

4.2.1 模块化53

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

4.1.8 书写文档53

4.1.7 制定测试计划53

4.2.2 抽象55

4.2.3 信息隐蔽和局部化55

4.2.4 模块独立56

4.3 启发式规则58

4.3.1 改进软件结构提高模块独立性58

4.3.2 模块规模应该适中58

4.3.3 深度、宽度、扇出和扇入都应适当58

4.3.4 模块的作用域应该在控制域之内59

4.3.5 力争降低模块接口的复杂程度60

4.3.6 设计单入口单出口的模块61

4.3.7 模块功能应该可以预测61

4.4 图形工具61

4.4.1 层次图和HIPO图61

4.4.2 结构图62

4.5 面向数据流的设计方法64

4.5.1 概念64

4.5.2 变换分析65

4.5.3 事务分析72

4.5.4 设计优化73

4.6 小结74

第五章 详细设计75

5.1 结构程序设计75

5.2 详细设计的工具78

5.2.1 程序流程图78

5.2.2 盒图(N_S图)79

5.2.3 判定表80

5.2.4 过程设计语言(PDL)82

5.2.5 模块开发文件夹82

5.3.1 Jackson图83

5.3 Jackson程序设计方法83

5.3.2 改进的Jackson图84

5.3.3 Jackson方法84

5.4 Warnier程序设计方法90

5.4.1 Warnier图的用途90

5.4.2 Warnier方法91

5.4.3 Warnier方法的辅助技术97

5.5 程序复杂程度的定量度量101

5.5.1 程序图101

5.5.2 环形复杂度的计算方法102

5.5.3 环形复杂度的用途103

5.5.4 其他度量方法103

5.6 小结104

第六章 软件蓝图105

6.1 软件蓝图方法论105

6.1.1 对软件蓝图的要求105

6.1.2 三级设计106

6.1.3 蓝图语言107

6.1.4 蓝图的书写风格107

6.2.1 直接描述数据109

6.2 软件蓝图的构成109

6.2.2 高级数据运算符111

6.2.3 丰富灵活的控制操作113

6.2.4 显式描述软件结构114

6.3 词法扫描程序的规格说明117

6.3.1 输入串118

6.3.2 输出串118

6.3.3 扫描程序的语法119

6.4 词法扫描程序的A级设计120

6.4.1 选取数据元素设计数据流120

6.4.2 设计控制流121

6.4.3 划分模块122

6.4.4 定义模块123

6.4.5 书写A级蓝图123

6.5 词法扫描程序的B级设计124

6.5.1 精化数据流124

6.5.2 组织模块124

6.5.3 构造过程访问结构124

6.5.4 书写B级蓝图126

6.6 词法扫描程序的C级设计126

6.6.1 选取更多数据元素126

6.6.2 详细描述数据流127

6.6.4 书写C级蓝图128

6.6.3 构造其他访问结构128

6.7 小结129

附录6.1 词法扫描程序的A级蓝图129

附录6.2 词法扫描程序的B级蓝图131

附录6.3 词法扫描程序的C级蓝图136

附录6.4 软件设计语言SDL-1的语法142

7.1 程序设计语言146

7.1.1 程序设计语言分类146

第七章 编码146

7.1.2 程序设计语言的特点147

7.1.3 选择一种语言150

7.2 程序设计途径151

7.2.1 写程序的风格151

7.2.2 程序设计方法论153

7.2.3 程序设计自动化154

7.2.4 程序设计工具154

7.2.5 程序设计环境156

7.3 小结156

8.1 基本概念157

第八章 测试157

8.1.1 软件测试的目标158

8.1.2 黑盒测试和白盒测试158

8.1.3 软件测试的步骤159

8.1.4 测试阶段的信息流160

8.2 单元测试161

8.2.1 单元测试考虑161

8.2.2 单元测试过程163

8.3 集成测试165

8.3.1 自顶向下结合166

8.3.3 不同集成测试策略的比较167

8.3.2 自底向上结合167

8.4 验收测试168

8.4.1 验收测试的范围169

8.4.2 软件配置复查169

8.5 设计测试方案169

8.5.1 逻辑覆盖170

8.5.2 等价划分173

8.5.3 边界值分析176

8.5.4 错误推测177

8.5.5 实用测试策略177

8.6 调试178

8.6.1 调试技术180

8.6.2 调试策略181

8.7 软件可靠性183

8.7.1 基本概念183

8.7.2 估算平均无故障时间的方法184

8.7.3 程序正确性证明186

8.8 自动测试工具187

8.8.1 测试数据生成程序187

8.8.2 动态分析程序187

8.9 小结188

8.8.3 静态分析程序188

8.8.4 文件比较程序188

第九章 维护190

9.1 软件维护的定义190

9.2 维护的特点191

9.2.1 结构化维护与非结构化维护的对比191

9.2.2 维护的代价191

9.2.3 维护的问题193

9.3.2 定量度量可维护性194

9.3.1 决定软件可维护性的因素194

9.3 可维护性194

9.3.3 可维护性复审195

9.4 维护过程195

9.4.1 维护组织195

9.4.2 维护报告196

9.4.3 维护的事件流196

9.4.4 保存维护记录198

9.4.5 评价维护活动198

9.5.2 数据的副作用199

9.5.3 文档的副作用199

9.5.1 编码的副作用199

9.5 维护的副作用199

9.6 文档200

9.6.1 软件文档的组成200

9.6.2 文档工具201

9.7 小结202

第十章 管理技术203

10.1 成本估计203

10.1.1 成本模型分类203

10.1.2 参数方程204

10.1.3 标准值法205

10.1.4 COCOMO模型207

10.2 进度计划209

10.2.1 Gantt图209

10.2.2 工程网络211

10.2.3 估算进度212

10.2.4 关键路径214

10.2.5 机动时间214

10.3 人员组织216

10.3.1 程序设计小组的组织216

10.3.2 主程序员组217

10.4 质量保证218

10.4.1 软件质量218

10.4.2 质量保证219

10.5 项目计划220

10.5.1 项目计划的内容220

10.5.2 项目报告221

10.5.3 变动控制221

10.6 软件管理工具222

10.7 小结222

A.1.1 使用环境223

A.1 问题定义223

附录A 一个工资支付系统的分析和设计过程223

A.1.2 问题定义224

A.1.3 关于规模和目标的报告书224

A.2 可行性研究225

A.2.1 澄清系统规模和目标226

A.2.2 研究现有的系统226

A.2.3 导出高层逻辑模型228

A.2.4 精化系统规模和目标229

A.2.5 导出供选择的解法230

A.2.7 草拟开发计划233

A.2.6 推荐行动方针233

A.2.8 写出文档提交审查234

A.3 要求分析234

A.3.1 沿数据流图回溯235

A.3.2 正式文档236

A.3.3 定义逻辑系统239

A.3.4 细化数据流图239

A.3.5 结束标准241

A.3.6 技术审查和管理复审241

A.4.1 导出供选择的方案242

A.4 系统设计242

A.4.2 选择合理的方案243

A.4.3 结束标准244

A.4.4 推荐最佳方案249

A.4.5 技术审查和管理复审250

A.5 详细设计251

A.5.1 设计文件和测试数据251

A.5.2 工资支付程序的结构设计252

A.5.3 用IPO图描述工资支付程序的模块255

A.5.4 检查设计结果262

A.6.1 编码263

A.5.5 审查263

A.6 实现和维护263

A.6.2 文档264

A.6.3 调试264

A.6.4 结构化预排265

A.6.5 系统测试265

A.6.6 培训265

A.6.7 维护266

A.7 小结266

B.1.1 外部编辑命令268

附录B 一个交互式的正文编辑程序的设计268

B.1 设计规格说明268

B.1.2 编辑命令269

B.1.3 输出信息270

B.2 A级设计271

B.2.1 系统组织271

B.2.2 正文文件271

B.2.3 两个工作模式273

B.2.4 数据元素273

B.2.5 过程274

B.3 A级蓝图276

B.4 C级设计279

B.4.1 数据元素279

B.4.2 控制数据元素281

B.4.3 编辑过程281

B.4.4 输入模式的过程282

B.4.5 编辑模式的过程284

B.5 C级蓝图289

本书主要参考文献317

1987《软件工程导论》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由张海藩编著 1987 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

软件工程(1994 PDF版)
软件工程
1994 北京:中国铁道出版社
CAD软件工程(1991年10月第1版 PDF版)
CAD软件工程
1991年10月第1版
软件工程引论(1995 PDF版)
软件工程引论
1995 天津:南开大学出版社
软件工程引论(1987 PDF版)
软件工程引论
1987 南京:南京大学出版社
软件工程引论(1987 PDF版)
软件工程引论
1987 成都:成都电讯工程学院出版社
软件工程概论(1987 PDF版)
软件工程概论
1987 长沙:湖南科学技术出版社
软件工程方法(1993 PDF版)
软件工程方法
1993 北京:科学出版社
软件工程学(1991 PDF版)
软件工程学
1991 北京:电子工业出版社
软件工程(1997 PDF版)
软件工程
1997 重庆:重庆大学出版社
ADA软件工程(1986 PDF版)
ADA软件工程
1986 北京:科学普及出版社
软件工程(1997 PDF版)
软件工程
1997 北京:高等教育出版社
软件工程  中级(1999 PDF版)
软件工程 中级
1999 北京:清华大学出版社
实用软件工程(1990 PDF版)
实用软件工程
1990 北京:科学技术文献出版社;重庆分社
软件工程基础(1986 PDF版)
软件工程基础
1986 上海:上海科学技术出版社
软件工程导论  修订版(1992 PDF版)
软件工程导论 修订版
1992 北京:清华大学出版社