当前位置:首页 > 工业技术
软件工程导论  第2版
软件工程导论  第2版

软件工程导论 第2版PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:(印)摩尔(Mall,R);马振晗,胡晓译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302181934
  • 页数:282 页
图书介绍:本书的很大一部分内容都是基于作者参与的数个领域的软件开发项目的经验总结,加之作者在克勒格布尔印度科技学院长达9年的软件工程课程的教学经验,因而形成了本书理论与实践的特点。
《软件工程导论 第2版》目录

第1章 概述 1

1.1软件工程学科——发展和影响 2

1.1.1工程学科艺术的发展 2

1.1.2软件危机的一个解决方案 3

1.2程序与软件产品 4

1.3为什么研究软件工程 5

1.4软件工程的出现 5

1.4.1早期计算机编程 6

1.4.2高级语言编程 6

1.4.3基于流程控制的设计 6

1.4.4面向数据结构的设计 8

1.4.5面向数据流的设计 8

1.4.6面向对象的设计 9

1.4.7其他发展 9

1.5软件开发实践中的重要变化 10

1.6计算机系统工程 11

1.7小结 12

1.8练习 12

第2章 软件生命周期模型 15

2.1为什么使用生命周期 16

2.1.1为什么要记录一个生命周期模型 16

2.1.2阶段出入标准 16

2.2经典瀑布模型 17

2.2.1可行性研究 18

2.2.2需求分析和说明 19

2.2.3设计 20

2.2.4编码和单元测试 21

2.2.5集成和系统测试 22

2.2.6维护 22

2.3迭代瀑布模型 22

2.4原型模型 24

2.5进化模型 26

2.6螺旋模型 27

2.7不同生命周期模型的比较 28

2.8小结 29

2.9练习 30

第3章 软件项目管理 33

3.1软件项目经理的职责 33

3.1.1软件项目经理的工作职责 33

3.1.2软件项目经理所必需的技能 34

3.2项目规划 34

3.3项目规模估算的度量 36

3.3.1代码行(LOC) 36

3.3.2功能点度量 37

3.4项目估算方法 39

3.4.1经验估算法 39

3.4.2启发式方法 40

3.4.3分析估算法 40

3.5经验估算法 40

3.5.1专家判断法 41

3.5.2 Delphi成本估算 41

3.6 COCOMO——一种启发式估算法 41

3.6.1基本COCOMO模型 42

3.6.2中等COCOMO模型 45

3.6.3完整COCOMO模型 45

3.7 HALSTEAD的软件科学——一种分析技术 46

3.7.1标准C语言的运算符和操作数 47

3.7.2长度和词汇 47

3.7.3程序量 47

3.7.4潜在最小量 47

3.7.5工作量和时间 48

3.7.6长度估算 48

3.8人员配置级别估算 50

3.8.1 Norden的工作 50

3.8.2 Putnam的工作 50

3.8.3时间表改变对于成本的影响 51

3.8.4 Jensen模型 52

3.9调度 52

3.9.1工作分解结构 53

3.9.2活动网络和关键路径方法 54

3.9.3 Gantt图 55

3.9.4 PERT图 56

3.9.5项目监测和控制 57

3.10组织和团队结构 57

3.10.1组织结构 58

3.10.2团队结构 59

3.11人员配置 61

3.12风险管理 62

3.12.1风险识别 63

3.12.2风险评估 63

3.12.3风险遏制 63

3.13软件组态管理 64

3.13.1软件组态管理的必要性 65

3.13.2组态管理活动 65

3.13.3源代码控制系统(SCCS)和RCS 67

3.14杂项计划 67

3.15小结 68

3.16练习 68

第4章 需求分析和规约 73

4.1需求收集和分析 74

4.2软件需求规约(SRS) 75

4.2.1 SRS文档内容 76

4.2.2功能需求 77

4.2.3如何识别功能需求 78

4.2.4如何记录功能需求 78

4.2.5可追踪性 80

4.2.6好的SRS文档的特征 80

4.2.7差的SRS文档的例子 81

4.2.8 SRS文档的组织 81

4.2.9表示复杂逻辑的技术 82

4.3形式系统开发技术 84

4.3.1什么是形式技术 84

4.3.2模型与面向属性的方法 85

4.3.3操作语义 85

4.3.4形式方法的优点和局限 86

4.4公理规约 87

4.5代数规约 88

4.5.1辅助函数 91

4.5.2结构规约 92

4.5.3代数规约的优劣 92

4.6可执行规约和4GL 92

4.7小结 93

4.8练习 93

第5章 软件设计 97

5.1什么是一个优秀的软件设计 98

5.2内聚和耦合 99

5.2.1内聚力的分类 100

5.2.2耦合的分类 101

5.3整齐排列 101

5.4软件设计的方法 102

5.4.1面向功能的设计 103

5.4.2面向对象的设计 103

5.5面向对象的设计与面向功能的设计 103

5.6小结 105

5.7练习 105

第6章 面向功能的软件设计 107

6.1 SA/SD方法总览 107

6.2结构分析 108

6.3数据流程图(DFD) 108

6.3.1用于构建DFD的原始符号 109

6.3.2与设计DFD相关的一些重要概念 109

6.3.3开发一个系统的DFD模型 112

6.3.4 DFD模型的缺点 121

6.4将DFD技术扩展到实时系统 121

6.5结构设计 122

6.5.1流程图与结构图 123

6.5.2将一个DFD模型转换为一个结构图 123

6.6细节设计 126

6.7设计审查 127

6.8小结 127

6.9练习 127

第7章 使用UML的对象建模 139

7.1面向对象的概念总览 139

7.1.1基本机制 140

7.1.2关键概念 143

7.1.3相关的技术名词 147

7.1.4 OOD的优势 147

7.2统一建模语言(UML) 148

7.3 UML图 150

7.4使用实例模型 151

7.4.1用例的表示 152

7.4.2为什么开发用例图 154

7.4.3如何识别一个系统的用例 155

7.4.4基本用例与真实用例 155

7.4.5用例之间的共有属性的因子化 155

7.4.6用例包 157

7.5类图 158

7.6交互图 162

7.7活动图 164

7.8状态图 165

7.9小结 166

7.10练习 167

第8章 面向对象的软件开发 169

8.1设计模式 170

8.2一个泛化的面向对象的分析和设计过程 172

8.2.1总览 172

8.2.2用例模型开发 173

8.2.3域建模 174

8.2.4实体对象的识别 175

8.2.5 Booch的对象识别方法 176

8.2.6交互建模 177

8.2.7 CRC卡片 177

8.3例子 178

8.4 OOD好坏的标准 183

8.5小结 184

8.6练习 185

第9章 用户界面设计 187

9.1一个良好用户界面的特征 187

9.2基本概念 189

9.2.1用户指南和在线帮助 189

9.2.2基于模式的界面与无模式的界面 190

9.2.3图形用户界面(GUI)与基于文本的用户界面 190

9.3用户界面的种类 191

9.3.1基于命令语言的界面 191

9.3.2基于菜单的界面 192

9.3.3直接操作界面 194

9.4基于组件的GUI开发 194

9.4.1窗口系统 194

9.4.2控件类型 197

9.4.3 X-Window/Motif概述 198

9.4.4 X架构 198

9.4.5可视化编程 199

9.4.6基于组件的GUI的规模度量 200

9.5用户界面设计方法 200

9.5.1用户界面设计中的人类认知能力的暗示 200

9.5.2 GUI设计方法 201

9.5.3任务和对象建模 201

9.5.4选择一个比喻 203

9.5.5交互设计和粗略布局 203

9.5.6用户界面检查 203

9.6小结 204

9.7练习 204

第10章 编码和测试 207

10.1编码 207

10.2代码复审 209

10.2.1代码走查 209

10.2.2代码检查 210

10.2.3洁净室测试 210

10.2.4软件文档 211

10.3测试 212

10.3.1什么是测试 212

10.3.2验证与确认 212

10.3.3测试用例的设计 212

10.4大型测试与小型测试 213

10.5单元测试 213

10.6黑盒测试 214

10.6.1等价类划分 214

10.6.2边界值分析 215

10.6.3黑盒测试集设计小结 215

10.7白盒测试 216

10.7.1语句覆盖 216

10.7.2分支覆盖 217

10.7.3条件覆盖 217

10.7.4路径覆盖 217

10.7.5 McCabe的圈复杂性度量 219

10.7.6基于数据流的测试 220

10.7.7变异测试 221

10.8调试 221

10.8.1调试方法 221

10.8.2调试指南 222

10.9程序分析工具 222

10.9.1静态分析工具 222

10.9.2动态分析工具 223

10.10集成测试 223

10.11系统测试 225

10.11.1性能测试 225

10.11.2错误撒播 227

10.12和测试相关的一些一般问题 227

10.13小结 228

10.14练习 228

第11章 软件可靠性和质量管理 235

11.1软件可靠性 235

11.1.1硬件与软件可靠性 236

11.1.2可靠性度量 237

11.1.3可靠性增长建模 238

11.2统计测试 239

11.3软件质量 240

11.4软件质量管理体系 241

11.5 ISO 9000 242

11.5.1什么是ISO 9000认证 242

11.5.2软件行业的ISO 9000 242

11.5.3为什么要得到ISO 9000认证 243

11.5.4如何获得ISO 9000认证 243

11.5.5 ISO 9001需求概述 244

11.5.6 ISO 9001需求的显著特征 246

11.5.7 ISO 9000认证的缺点 246

11.6 SEI能力成熟度模型 246

11.6.1 ISO 9000和SEI/CMM的比较 248

11.6.2 SEI CMM是否适用于小型组织 248

11.7个体软件过程(PSP) 249

11.8六西格玛 250

11.9小结 251

11.10练习 251

第12章 计算机辅助软件工程 255

12.1 CASE及其范围 255

12.2 CASE环境 255

12.3软件生命周期中的CASE支持 257

12.3.1原型支持 257

12.3.2结构分析和设计 258

12.3.3代码生成 258

12.3.4测试CASE生成器 258

12.4 CASE工具的其他特征 258

12.4.1硬件和环境需求 259

12.4.2文档支持 259

12.4.3项目管理 259

12.4.4外部界面 259

12.4.5逆向工程支持 259

12.4.6数据词典界面 260

12.4.7教程和帮助 260

12.5朝着第二代CASE工具前进 260

12.6一个CASE环境的架构 260

12.7小结 261

12.8练习 261

第13章 软件维护 263

13.1软件维护的特征 263

13.1.1软件维护的类型 263

13.1.2软件发展的特征 264

13.1.3与软件维护相关的特殊问题 264

13.2软件逆向工程 265

13.3软件维护过程模型 266

13.4维护成本的估测 268

13.5小结 269

13.6练习 269

第14章 软件复用 271

14.1什么能够复用 271

14.2为什么这么久以来几乎没有复用 272

14.3复用程序中的基本问题 272

14.4一个复用方法 273

14.4.1域分析 273

14.4.2组件分类 274

14.4.3搜索 274

14.4.4数据仓库维护 275

14.4.5无修改的复用 275

14.5组织级别的复用 276

14.6小结 277

14.7练习 278

参考文献 279

相关图书
作者其它书籍
返回顶部