图书目录

第1章软件工程概述1

1.1计算机软件概念1

1.1.1计算机软件1

1.1.2软件的特点1

1.1.3软件与硬件的关系2

1.1.4软件分类3

1.2软件的发展4

1.3软件危机与软件问题5

1.3.1软件危机5

1.3.2软件危机的表现5

1.3.3软件开发中的问题6

1.4软件工程与开发准则8

1.4.1软件工程概念8

1.4.2软件工程的内容8

1.4.3软件开发的基本准则9

1.5软件生命周期10

1.5.1软件生命周期的划分10

1.5.2各阶段的基本任务11

1.6软件开发模型13

1.6.1瀑布模型13

1.6.2原型模型15

1.6.3螺旋模型16

1.6.4基于4GL模型17

1.6.5面向对象开发模型18

1.7小结18

习题19

第2章项目计划21

2.1问题定义21

2.2可行性研究22

2.2.1可行性研究的目的和任务22

2.2.2可行性研究的过程22

2.2.3初步的项目方案24

2.2.4风险评估24

2.3系统流程图25

2.4示例26

2.5项目可行性及计划编制文档28

2.5.1可行性研究报告28

2.5.2项目开发计划29

2.6小结30

习题30

软件工程与软件开发工具目录第3章需求分析31

3.1需求分析概述31

3.1.1需求分析任务31

3.1.2需求类型32

3.1.3需求特性33

3.1.4获取需求的步骤34

3.2数据流图35

3.2.1符号35

3.2.2作用36

3.3数据字典37

3.3.1定义方法37

3.3.2实现38

3.4加工逻辑描述工具40

3.5结构化分析方法44

3.5.1数据流图的分层思想44

3.5.2结构化分析的步骤44

3.5.3画数据流图的注意事项46

3.5.4示例47

3.6需求规格说明书49

3.7复审50

3.7.1复审的必要性50

3.7.2复审的内容51

3.8需求分析人员52

3.8.1需求分析人员面临的挑战52

3.8.2需求分析人员的原则和策略52

3.8.3需求分析人员应采用的技术53

3.9小结53

习题54

第4章概要设计57

4.1概要设计的任务与准备57

4.1.1设计的任务57

4.1.2启动概要设计57

4.1.3明确技术方案58

4.2软件结构设计及优化58

4.2.1模块和模块化58

4.2.2软件结构的风格与策略59

4.2.3耦合与内聚59

4.2.4好的软件设计特性64

4.3图形工具66

4.3.1层次图和HIPO图66

4.3.2结构图68

4.4结构化设计69

4.4.1概念与步骤69

4.4.2变换映射70

4.4.3事务映射73

4.4.4优化设计76

4.5数据结构设计77

4.5.1数据结构设计的任务78

4.5.2数据库设计78

4.5.3概念模型设计工具79

4.6概要设计说明指南80

4.7小结82

习题82

第5章详细设计85

5.1详细设计的任务与内容85

5.1.1详细设计的目标和原则86

5.1.2详细设计过程86

5.1.3详细设计内容86

5.1.4详细设计优化87

5.2详细设计工具88

5.2.1程序流程图88

5.2.2NS图89

5.2.3PAD图89

5.2.4各种设计工具的比较90

5.3人机界面设计91

5.3.1人机界面应具备的特性91

5.3.2数据输入界面设计93

5.3.3数据显示界面设计94

5.3.4控制界面的设计95

5.4小结95

习题96

第6章编码97

6.1编码概念97

6.2程序设计语言98

6.2.1程序设计语言分类98

6.2.2程序设计语言的基本成分99

6.2.3程序设计语言选择102

6.3编码风格104

6.4编码策略与编码工具106

6.4.1编码策略106

6.4.2编码工具107

6.5小结108

习题109

第7章测试111

7.1软件测试概述111

7.1.1软件测试的定义112

7.1.2软件测试的目的112

7.2软件测试的组织与管理113

7.2.1软件测试的人员组织113

7.2.2软件测试的步骤114

7.3测试方法115

7.3.1代码复审116

7.3.2黑盒测试117

7.3.3白盒测试117

7.4测试用例的设计118

7.4.1白盒法测试用例设计119

7.4.2黑盒法测试用例设计121

7.4.3实用测试策略123

7.5单元测试124

7.5.1单元测试策略124

7.5.2单元测试过程126

7.5.3驱动模块和桩模块126

7.6集成测试127

7.6.1集成测试的主要任务127

7.6.2集成测试策略127

7.6.3自顶向下集成128

7.6.4自底向上集成129

7.6.5混合式集成130

7.7系统测试130

7.7.1系统测试的种类130

7.7.2系统测试标准132

7.7.3软件配置的复审132

7.7.4α测试与β测试132

7.8调试133

7.8.1调试技术133

7.8.2调试策略134

7.9自动测试工具135

7.9.1测试工具的分类135

7.9.2几种常见的测试工具简介136

7.10测试文件138

7.11实例138

7.12小结141

习题141

第8章软件维护143

8.1软件维护的概念143

8.2软件维护的代价144

8.3维护过程145

8.3.1维护组织145

8.3.2维护申请单146

8.3.3维护流程146

8.3.4维护报告单147

8.3.5维护评价148

8.4可维护性148

8.4.1可维护性的决定因素149

8.4.2对可维护性的定量度量149

8.4.3提高可维护性的途径150

8.4.4文档151

8.5维护的副作用152

8.6维护复审152

8.7小结153

习题153

第9章面向对象方法155

9.1概述155

9.1.1OO软件开发方法的发展155

9.1.23种有影响的OO方法156

9.1.3各种OO方法的差异157

9.1.4面向对象与传统开发方法的比较158

9.2面向对象的基本概念158

9.3面向对象分析161

9.3.1对象模型161

9.3.2动态模型167

9.3.3功能模型170

9.4面向对象设计171

9.4.1问题论域部分的设计172

9.4.2用户界面部分的设计173

9.4.3任务管理部分的设计176

9.4.4数据管理部分的设计177

9.5小结179

习题180

第10章面向对象系统的测试181

10.1面向对象测试模型181

10.2分析测试183

10.2.1对认定的对象测试183

10.2.2对认定的结构测试183

10.2.3对认定的主题测试184

10.2.4对属性和实例关联的测试184

10.2.5对服务和消息关联的测试184

10.3设计测试185

10.3.1对类的测试185

10.3.2对类层次结构的测试185

10.3.3对类库支持的测试185

10.4编程测试186

10.4.1数据成员的封装要求186

10.4.2类是否实现要求的功能186

10.5单元测试186

10.6集成测试187

10.7系统测试188

10.8面向对象测试用例设计189

10.8.1OO概念对测试用例设计的影响189

10.8.2类测试用例设计190

10.8.3类间测试用例设计190

10.9小结191

习题191

第11章软件项目管理193

11.1概述193

11.1.1软件项目管理的内容与特点194

11.1.2软件项目管理与软件工程195

11.1.3软件项目管理过程195

11.2软件度量197

11.2.1软件度量的任务197

11.2.2面向规模的度量198

11.2.3面向功能的度量198

11.2.4面向特征点的度量200

11.3软件开发成本估算200

11.4进度安排201

11.4.1任务的确定性与并行性202

11.4.2进度安排的方法202

11.4.3项目的追踪和控制204

11.5软件文档管理205

11.5.1软件文档的作用和分类205

11.5.2文档的管理和维护207

11.6小结208

习题209

第12章软件质量与可靠性211

12.1软件质量保证211

12.1.1软件的质量要求212

12.1.2软件质量保证的内容212

12.2软件能力214

12.2.1软件能力的概念214

12.2.2CMM模型215

12.3软件可靠性216

12.3.1可靠性概念216

12.3.2可靠性模型217

12.3.3程序正确性证明219

12.4软件质量管理标准220

12.4.1软件质量国际标准220

12.4.2ISO 9001、ISO 90003和ISO 90012000221

12.4.3ISO 9001和CMM标准221

12.4.4ISO 9000系列标准对软件业的作用221

12.5小结222

习题223

第13章统一建模语言UML225

13.1UML概述225

13.1.1UML的产生与发展225

13.1.2UML的主要内容225

13.1.3UML的主要特点226

13.1.4UML的应用226

13.2静态建模227

13.2.1用例图227

13.2.2类图和对象图228

13.2.3包231

13.2.4构件图232

13.2.5配置图232

13.3动态建模233

13.3.1顺序图233

13.3.2协作图234

13.3.3状态图235

13.3.4活动图236

13.4统一建模过程238

13.5小结239

习题239

第14章Rational Rose241

14.1Rose概述241

14.1.1Rose概念241

14.1.2Rose的功能与特点241

14.2Rose主界面242

14.3Rose的基本操作244

14.3.1模型的操作244

14.3.2框图操作245

14.3.3元素的操作245

14.4Rose的模型视图246

14.4.1业务用例图246

14.4.2活动图248

14.4.3用例图249

14.4.4交互图250

14.4.5类与包251

14.4.6状态图254

14.4.7构件图255

14.4.8配置图255

14.5Rose的双向工程256

14.5.1模型生成代码256

14.5.2Visual C++的逆向工程260

14.6小结261

习题261

参考文献263