《软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:郑逢斌主编;阎朝坤,房彩丽,罗慧敏等副主编
  • 出 版 社:北京:科学出版社
  • 出版年份:2012
  • ISBN:9787030345837
  • 页数:334 页
图书介绍:本书详细介绍了面向数据流和面向对象的分析和设计方法,共14章。第1章是概述,第2章至第14章讲述软件生命周期各阶段的任务、过程、结构化方法和面向对象方法学,其中第5章和第9章着重介绍面向数据流的系统分析和设计,第7章和第10章介绍面向对象的分析和设计方法,第6章介绍了面向对象基础和UML。在教学过程中,可以顺序讲授,也可以按照第5章→第8章→第9章,第6章→第7章→第8章→第10章,两种顺序讲授。本书适合于计算机科学与技术、软件工程、信息管理与信息系统、信息与计算科学等相关专业本科生和硕士生作为软件工程课程的教材使用,也适合于软件开发人员与软件项目管理人员作为技术参考书使用。

第1章 软件工程概述 1

1.1软件概述 1

1.1.1软件的定义 1

1.1.2软件的特点 1

1.1.3软件的分类 2

1.1.4软件的发展 4

1.2软件危机 5

1.2.1什么是软件危机 5

1.2.2产生的原因及解决途径 7

1.3软件工程 7

1.3.1软件工程定义 7

1.3.2软件工程的研究内容 8

1.3.3软件工程的目标和原则 9

1.3.4软件工程基本原理 10

1.4软件开发方法 11

1.4.1结构化方法 11

1.4.2面向数据结构的开发方法 12

1.4.3面向对象的方法 12

1.5 CASE工具 13

小结 14

习题 15

第2章 软件生命周期和过程模型 16

2.1软件生命周期 16

2.1.1软件定义 16

2.1.2软件开发 17

2.1.3软件运行与维护 18

2.2软件过程模型 19

2.2.1瀑布模型 19

2.2.2原型模型 21

2.2.3螺旋模型 22

2.2.4喷泉模型 24

2.2.5增量模型 24

2.2.6构件组装模型 25

2.2.7 RUP 26

小结 28

习题 28

第3章 可行性研究 29

3.1问题定义 29

3.2可行性研究 30

3.2.1可行性研究的任务 30

3.2.2可行性研究的步骤 32

3.3成本估计与效益分析 34

3.3.1成本估算方法 35

3.3.2效益估算 37

3.4系统流程图 38

3.4.1系统流程图的符号 39

3.4.2系统流程图举例 40

3.5制订软件计划 42

3.5.1确定软件计划 42

3.5.2复审软件计划 44

小结 45

习题 45

第4章 需求工程 47

4.1需求的概念与内容 47

4.1.1需求的问题 47

4.1.2需求的定义和分类 48

4.1.3需求的层次 49

4.2需求工程 51

4.2.1需求工程的定义 52

4.2.2需求工程的方法 53

4.3需求开发 53

4.3.1需求获取技术 54

4.3.2需求建模 57

4.3.3需求规格说明 58

4.3.4需求评审 58

4.4需求管理 59

4.4.1需求变更控制 60

4.4.2需求版本控制 61

4.4.3需求跟踪 61

4.4.4需求状态跟踪 62

4.5需求管理工具 62

小结 63

习题 64

第5章 结构化分析方法 65

5.1结构化分析方法概述 65

5.1.1基本思想 65

5.1.2分析过程 66

5.1.3描述工具 66

5.2数据流图 66

5.2.1数据流图的结构 67

5.2.2数据流与加工之间的关系 68

5.2.3数据流图的分层 69

5.2.4数据流图的绘制 70

5.2.5绘制数据流图的注意事项 70

5.3数据字典 72

5.3.1数据字典的作用和内容 72

5.3.2数据字典编写的基本要求 73

5.3.3数据字典的定义符号和编写格式 73

5.4加工逻辑说明 76

5.4.1结构化英语 76

5.4.2判定表 77

5.4.3判定树 78

5.4.4三种表达工具的比较 79

5.5实例:供销管理系统的需求分析 79

5.5.1需求调研 79

5.5.2需求建模 81

小结 86

习题 86

第6章 面向对象基础 88

6.1传统开发方法与面向对象的开发方法比较 88

6.1.1结构化软件工程方法的缺点 88

6.1.2面向对象方法的优点 89

6.2面向对象的基本概念 90

6.3面向对象的软件开发过程 92

6.4几种典型的面向对象方法简介 93

6.4.1 Booch的面向对象方法 93

6.4.2 Jacobson的面向对象方法 94

6.4.3 Coad-Yourdon的面向对象方法 95

6.4.4 James Rumbaugh的面向对象方法 96

6.5统一建模语言UML 96

6.5.1 UML概述 96

6.5.2 UML的概念模型 98

6.5.3 UML的扩展机制 110

6.6案例:基于UML的客户服务记账系统需求分析 112

6.6.1问题描述 112

6.6.2寻找参与者 113

6.6.3寻找用例 113

6.6.4确定参与者和用例之间的关系,绘制用例图 114

6.6.5编写用例描述 114

小结 116

习题 116

第7章 面向对象分析 117

7.1面向对象分析过程 117

7.1.1分析类的概念 117

7.1.2分析过程 118

7.2识别分析类 118

7.2.1识别实体类 118

7.2.2识别边界类 121

7.2.3识别控制类 123

7.2.4交互原则 124

7.3描述行为 125

7.3.1消息与责任 125

7.3.2登录用例的顺序图 125

7.3.3其他用例的顺序图 127

7.4描述类 129

7.5评审分析模型 131

小结 132

习题 132

第8章 软件设计基础 133

8.1软件设计的目标和任务 133

8.1.1软件设计的目标 133

8.1.2软件设计的任务 134

8.2软件设计的概念与原则 134

8.2.1模块化与模块独立性 134

8.2.2抽象与逐步求精 140

8.2.3信息隐藏 141

8.3软件体系结构风格 141

8.3.1管道-过滤器 141

8.3.2仓库体系结构 142

8.3.3分层体系结构 143

8.3.4 MVC体系结构 144

8.3.5三层C/S体系结构 145

8.3.6 C/S与B/S混合软件体系结构 146

8.4设计复审 147

小结 148

习题 148

第9章 结构化设计方法 149

9.1概要设计 149

9.1.1基本概念 149

9.1.2变换分析 152

9.1.3事务分析 155

9.1.4变换-事务混合型分析 157

9.1.5启发式规则 158

9.1.6设计优化 161

9.2详细设计 162

9.2.1程序流程图 162

9.2.2盒图 163

9.2.3 PAD图 164

9.2.4 PDL 165

9.2.5 HIPO图 166

9.3案例:供销管理系统的设计 166

9.3.1模块结构设计 167

9.3.2系统IPO图 169

9.3.3其他设计工作 169

小结 171

习题 171

第10章 面向对象的设计 173

10.1 OOD概述 173

10.2面向对象设计原则 174

10.2.1单一职责原则 174

10.2.2开放-封闭原则 175

10.2.3 Liskov替换原则 175

10.2.4接口隔离原则 176

10.2.5依赖倒置原则 177

10.3系统体系结构设计 178

10.3.1软件系统体系结构设计 178

10.3.2硬件系统体系结构设计 180

10.4系统设计 180

10.4.1识别设计元素 180

10.4.2数据存储策略 182

10.5详细设计 186

10.5.1方法和属性建模 186

10.5.2状态建模 187

10.5.3详细类图 188

10.6评审设计模型 189

10.7设计优化 189

10.7.1确定优先级 189

10.7.2提高效率的几项技术 190

10.7.3调整继承关系 191

10.8设计模式 193

10.8.1设计模式的作用和研究意义 193

10.8.2经典设计模式 193

10.8.3设计模式的使用策略 197

小结 198

习题 199

第11章 用户界面设计 200

11.1用户界面基础 200

11.1.1交互模型和框架 200

11.1.2人类工程学 202

11.1.3用户界面风格 204

11.2用户界面设计原则 205

11.2.1置用户于控制之下 206

11.2.2减轻用户的记忆负担 206

11.2.3保持界面一致 207

11.3用户界面设计过程 208

11.3.1界面分析和建模 208

11.3.2界面设计 210

11.3.3界面实现和评估 211

小结 213

习题 213

第12章 软件实现 214

12.1软件实现的目标和任务 214

12.2程序设计语言 214

12.2.1程序设计语言的分类 214

12.2.2程序设计语言的选择 216

12.3软件编码规范 216

12.3.1头文件规范 217

12.3.2注释规范 217

12.3.3命名规范 222

12.3.4排版规范 222

12.3.5目录结构规范 224

12.4程序效率 224

12.4.1运行速度的提高 225

12.4.2存储空间的优化 226

12.4.3输入/输出效率的提高 226

12.5软件代码审查 227

小结 228

习题 229

第13章 软件测试 230

13.1软件测试基础 230

13.1.1失败的软件案例 230

13.1.2软件缺陷概念 231

13.1.3软件测试概念 232

13.2软件测试技术 234

13.2.1静态黑盒测试 234

13.2.2动态黑盒测试 236

13.2.3静态白盒测试 239

13.2.4动态白盒测试 241

13.3软件测试策略 244

13.3.1单元测试 245

13.3.2集成测试 246

13.3.3确认测试 248

13.3.4系统测试 249

13.4面向对象的软件测试 250

13.4.1面向对象测试类型 250

13.4.2面向对象测试策略 251

13.4.3面向对象测试用例设计 252

13.5软件调试 257

13.5.1调试过程 258

13.5.2调试方法 258

13.5.3调试原则 260

13.6软件测试自动化 261

13.7软件测试管理 262

小结 263

习题 264

第14章 软件维护 265

14.1软件维护概述 265

14.1.1软件维护的产生及其目的 265

14.1.2软件维护的分类 266

14.1.3维护的成本 267

14.2软件维护的特征 267

14.2.1结构化维护和非结构化维护 268

14.2.2维护可能存在的问题 269

14.2.3影响软件维护工作量的因素 270

14.3软件维护实施 271

14.3.1软件维护组织 271

14.3.2软件维护申请 272

14.3.3维护过程 273

14.3.4维护档案记录 274

14.3.5维护评价 275

14.4软件可维护性 276

14.4.1影响软件可维护性的因素 276

14.4.2软件可维护性的度量 276

14.4.3提高可维护性的策略 280

14.5软件维护的副作用 281

14.6逆向工程和再工程 283

14.6.1逆向工程 283

14.6.2软件再工程 284

小结 286

习题 286

第15章 软件项目管理 287

15.1软件项目管理概述 287

15.1.1软件项目的特点 287

15.1.2软件项目管理的特点和职能 288

15.2人员的组织与管理 288

15.2.1软件项目组织 288

15.2.2人员的配置和管理 291

15.3成本的估计与控制 293

15.3.1软件开发成本估计方法 293

15.3.2专家判断法 294

15.3.3成本估算模型 295

15.4进度计划 297

15.4.1甘特图法 297

15.4.2工程网络 298

15.4.3项目活动工期估算的方法 301

15.4.4关键路径法(CPM) 303

15.5软件配置管理 304

15.5.1软件配置 304

15.5.2软件配置管理过程 307

15.6风险分析与管理 309

15.6.1软件风险 309

15.6.2风险识别 310

15.6.3风险预测 313

15.6.4风险规划 314

15.7项目管理工具 315

15.7.1 SourceSafe 315

15.7.2 CVS 315

15.7.3 C1earCase 316

15.7.4软件工程中的CASE工具 316

15.7.5 Microsoft Project 2010系列产品 316

小结 317

习题 318

第16章 软件工程新技术 319

16.1 XP技术 319

16.1.1 XP基本原则 319

16.1.2 XP软件开发中的基本活动 320

16.1.3 XP的十二条惯例和规则 321

16.2净室软件工程方法 322

16.2.1净室软件工程目标 323

16.2.2净室理论基础 323

16.2.3净室技术 324

16.2.4净室技术的发展 326

16.3 AOP编程 326

16.3.1 AOP的基本定义 327

16.3.2开发步骤 327

16.3.3 AOP的关键技术 327

16.3.4实现方法 328

16.3.5 AOP的技术优势 328

16.4软件复用技术 329

16.4.1软件复用的分类 329

16.4.2软件复用技术 330

16.4.3软件复用的过程 331

16.4.4软件复用的发展 331

小结 332

习题 333

参考文献 334