《Ada、Moula-2 与软件工程》求取 ⇩

前言1

第一章什么是软件工程——自顶向下的剖析9

1.1 软件生存期10

1.2 软件的可靠性11

1.3 软件维护12

1.4 需求和规格说明13

1.5 设计15

1.6 实现16

1.7 测试16

1.8 Ada、Modula-2与软件工程17

参考文献18

第二章 软件需求和规格说明19

2.1软件需求文档19

2.1.1 总目标20

2.1.2 软件系统模型20

2.1.3 功能性需求20

2.1.4 非功能性需求21

2.1.5 项目计划21

2.1.6 维护信息21

2.1.7 初始的用户指南21

2.1.8 技术术语词汇表21

2.2 拼写检测器的软件需求21

2.3 数据流图25

2.4结构图28

2.4.1 块图28

2.4.2 Warnicr图28

2.5 软件成本29

2.6主要的需求方法学概述31

2.6.1 结构化分析和设计技术32

2.6.2 问题陈述语言/问题陈述分析器(PSL/PSA)32

2.6.3 软件需求的工程化规范(SERM)33

2.7 总结34

参考文献34

练习35

第三章编程语言和软件工程37

3.1编程语言的分类和类型37

3.1.1 汇编语言与高级语言38

3.1.2 系统实现语言39

3.1.3 静态高级语言39

3.1.4 块结构与有限的动态高级语言39

3.1.5 动态高级语言39

3.2与软件工程有关的语言属性39

3.2.1 对象的命名40

3.2.2 对象的声明40

3.2.3 类型的声明42

3.2.4 控制结构45

3.2.5 数据结构49

3.2.6子程序50

3.2.6.1 作用域和可见性51

3.2.6.2 作用域、可见性与软件工程53

3.2.6.3 子程序和自顶向下设计55

3.2.6.4 子程序和数据抽象55

3.2.7模块56

3.2.7.1 数据隐藏与真正的数据抽象56

3.2.7.2 Modula-2的模块及其分别编译59

3.2.7.3 Ada中的模块72

3.2.7.4 Ada程序包中标识符的作用域和可见性73

3.2.7.5 分别编译与独立编译74

3.3 Pascal的不足与Modula-2所作的补救75

3.4 异常处理76

3.5 编程语言的选择77

3.6 总结77

参考文献78

练习78

第四章软件设计的普遍原则81

4.1 总目标81

4.2 有关硬件的考虑82

4.3Ada和Modula-2之前的设计过程概述82

4.3.1 高层设计83

4.3.2 中层设计83

4.3.3 低层设计83

4.4Ada和Modula-2之前的设计方法学83

4.4.1 自顶向下——由底向上设计84

4.4.2 HIPO图85

4.4.3 Warnier—Orr图88

4.4.4 Jackson设计方法学90

4.4.5 数据流图和结构图92

4.4.6 结构化程序设计101

4.4.7 低层设计和工具102

4.4.8 结构化分析设计技术(SADT)105

4.5使用Ada和Modula-2进行模块化和面向对象设计105

4.5.1 模块设计图与面向对象设计106

4.5.2 模块化软件构成108

4.6 快速生成软件原型124

4.7 设计的确认126

4.8 总结127

参考文献127

练习128

第五章用Ada实施模块化软件开发131

5.1 为什么需要Ada131

5.2 软件工程原理与Ada132

5.3 自顶向下看Ada132

5.4 用于有效设计的Ada的类型和数据结构132

5.5 用于有效设计的Ada子程序134

5.6 用于有效设计的Ada程序包与重载134

5.7 类属及其在有效设计中的应用144

5.8 使用Ada构造模块化软件148

5.9 使用Ada进行模块化设计:一个小型实例研究149

5.10 总结155

参考文献155

练习156

第六章用Modula-2构造模块化软件157

6.1 软件的人员组织与系统化开发:小组程序设计157

6.2 再论模块化软件构造158

6.3用Modula-2进行模块化设计:一个实例研究160

6.3.1 实例研究的问题:交互式数学函数计算程序160

6.3.2 待开发系统的概念模型:第一版161

6.3.3 函数计算程序问题的分解164

6.3.4 待开发系统的第二层系统结构167

6.3.5 详细设计层170

6.3.6 FunctionEvaluator模块的实现171

6.3.7 对FunctionEvaluator的进一步解释181

6.3.8 FunctionEvaluator中各模块的编译次序183

6.3.9 FunctionEvaluator的维护185

6.4 用Pascal构造模块化软件199

6.5 总结200

参考文献201

练习201

第七章程序设计方法学203

7.1风格203

7.1.1 程序中对象的命名204

7.1.2 程序的注释204

7.1.3 程序格式205

7.2工具207

7.2.1 用Modula-2编写的专用软件工具的例子208

7.2.2 代码管理工具211

7.2.3 自动设计工具212

7.3 环境213

7.4 可移植性214

7.5文档215

7.5.1 用户文档215

7.5.2 系统文档216

7.5.3 数据词典217

7.5.4 文档维护217

7.6软件度量217

7.6.1 程序规模218

7.6.2 数据结构218

7.6.3 控制结构219

7.6.4 其他复杂性度量方法221

7.7 总结221

参考文献222

练习224

第八章软件测试225

8.1 代码评审226

8.2 软件测试与完善性维护实例226

8.3 自顶向下和由底和上的测试239

8.4 测试用例的设计:一个实例研究240

8.5测试工具251

8.5.1 数据生成程序251

8.5.2 程序分析程序251

8.5.3 文件比较程序252

8.5.4 程序排错程序252

8.5.5 程序追踪工具252

8.5.6 交互式排错252

8.6 程序证明252

8.7 总结262

参考文献263

练习263

第九章模块化软件构造的实例265

9.1 拼写检测器的需求265

9.2 拼写检测器的设计267

9.3 拼写检测器的实现293

9.4 拼写检测器的维护322

9.5 练习和对拼写检测器的进一步研究328

附录支持Modula-2的库模块331

1989《Ada、Moula-2 与软件工程》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)RichardS.Wienwer,RichardF.S 1989 北京:航空工业出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。