当前位置:首页 > 工业技术
软件工程与计算  卷2  软件开发的技术基础
软件工程与计算  卷2  软件开发的技术基础

软件工程与计算 卷2 软件开发的技术基础PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:络斌主编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111407508
  • 页数:440 页
图书介绍:本书是国家精品课程《计算与软件工程》系列课程的第二门课程配套教材。讲授经典的软件工程方法,并涉及软件工程历史和职业技能,教会学生使用软件工程理念指导程序设计,以小组方式进行中大规模软件开发。注重软件工程的基本理论和实践方法,着重培养学生应用规范化、系统化和定量化的方法来分析和解决复杂软件开发问题的工程化能力。
上一篇:中国建筑史下一篇:顶级别墅空间
《软件工程与计算 卷2 软件开发的技术基础》目录

第一部分 软件工程概论 2

第1章 软件工程基础 2

1.1软件 2

1.1.1软件独立于硬件 2

1.1.2软件是一种工具 2

1.1.3软件的核心是程序 3

1.1.4软件开发远比编程要复杂 3

1.1.5应用软件基于现实又高于现实 4

1.2软件工程 4

1.2.1定义 4

1.2.2软件工程是一种工程活动 4

1.2.3软件工程的动机 5

1.2.4软件工程是科学性、实践性和工艺性并重的 6

1.2.5软件工程追求足够好,不是最好 8

1.2.6软件工程的产品是基于虚拟计算机的软件方案 8

1.2.7软件工程的最终目的 9

1.3软件工程概览 9

1.3.1软件工程知识域 9

1.3.2软件开发活动 11

1.3.3软件工程的角色分工 13

1.4习题 14

第2章 软件工程的发展 15

2.1软件工程的发展脉络 15

2.2 20世纪50年代的软件工程 17

2.3 20世纪60年代的软件工程 19

2.4 20世纪70年代的软件工程 22

2.5 20世纪80年代的软件工程 26

2.6 20世纪90年代的软件工程 31

2.7 21世纪00年代的软件工程 37

2.8习题 39

第二部分 项目启动 42

第3章 示例项目描述 42

3.1背景 42

3.2目标 42

3.3系统用户 42

3.4用户访谈要点 43

3.5项目实践过程 47

第4章 项目管理基础 48

4.1项目和项目管理 48

4.2团队组织与管理 49

4.2.1团队的特征 49

4.2.2团队结构 49

4.2.3团队建设 51

4.3软件质量保障 53

4.3.1软件质量 53

4.3.2质量保障 55

4.3.3评审 56

4.3.4质量度量 57

4.4软件配置管理 57

4.4.1配置管理动机 57

4.4.2配置项 58

4.4.3基线 58

4.4.4配置管理活动 59

4.4.5变更控制 60

4.5项目实践 62

4.6习题 62

第三部分 需求开发阶段 66

第5章 软件需求基础 66

5.1引言 66

5.2需求工程基础 67

5.2.1需求工程简介 67

5.2.2需求工程活动 67

5.2.3需求获取 68

5.2.4需求分析 69

5.2.5需求规格说明 70

5.2.6需求验证 70

5.2.7需求管理 71

5.3需求基础 71

5.3.1需求 71

5.3.2需求的层次性 71

5.3.3结合层次性的需求开发 73

5.3.4区分需求、问题域与规格说明 74

5.4需求分类 75

5.4.1需求谱系 75

5.4.2软件需求的分类 76

5.5项目实践 79

5.6习题 80

第6章 需求分析方法 82

6.1需求分析基础 82

6.1.1需求分析的原因 82

6.1.2需求分析模型 83

6.2结构化分析 84

6.2.1结构化分析方法 84

6.2.2数据流图 85

6.2.3实体关系图 90

6.3面向对象分析 92

6.3.1面向对象分析方法 92

6.3.2用例 93

6.3.3用例图 94

6.3.4用例描述 96

6.3.5概念类图(领域模型) 98

6.3.6交互图(顺序图) 104

6.3.7状态图 106

6.4使用需求分析方法细化和明确需求 108

6.4.1细化和明确需求内容 108

6.4.2建立系统级需求 109

6.5项目实践 112

6.6习题 113

第7章 需求文档化与验证 115

7.1文档化的原因 115

7.2需求文档基础 115

7.2.1需求文档的交流对象 115

7.2.2用例文档 116

7.2.3软件需求规格说明文档 116

7.3需求文档化要点 118

7.3.1技术文档写作要点 118

7.3.2需求书写要点 119

7.3.3软件需求规格说明文档书写要点 120

7.4评审软件需求规格说明文档 121

7.4.1需求验证与确认 121

7.4.2评审需求的注意事项 121

7.5以需求为基础开发系统测试用例 122

7.5.1开发测试用例套件 123

7.5.2开发测试用例 125

7.6度量需求 125

7.7将需求制品纳入配置管理 129

7.8项目实践 130

7.9习题 130

第四部分 软件设计 133

第8章 软件设计基础 133

8.1软件设计思想的发展 133

8.2软件设计的核心思想 134

8.3理解软件设计 135

8.3.1设计与软件设计 135

8.3.2工程设计与艺术设计 136

8.3.3理性主义和经验主义 137

8.3.4软件设计的演化性 137

8.3.5软件设计的决策性 138

8.3.6软件设计的约束满足和多样性 138

8.4软件设计的分层 139

8.5软件设计过程的主要活动 140

8.6软件设计的方法和模型 140

8.6.1软件设计的方法 140

8.6.2软件设计的模型 141

8.7软件设计描述 141

8.7.1设计视图和设计图 142

8.7.2设计视角和设计关注 143

8.7.3需求和涉众 144

8.7.4设计理由 144

8.7.5设计描述的模板 145

8.7.6软件设计文档书写要点 145

8.8项目实践 146

8.9习题 146

第9章 软件体系结构基础 148

9.1软件体系结构的发展 148

9.2理解软件体系结构 148

9.2.1定义 148

9.2.2区分软件体系结构的抽象与实现 149

9.2.3部件 150

9.2.4连接件 150

9.2.5配置 151

9.3体系结构风格初步 153

9.3.1主程序/子程序 153

9.3.2面向对象式 154

9.3.3分层 156

9.3.4 MVC 157

9.4项目实践 159

9.5习题 159

第10章 软件体系结构设计与构建 160

10.1体系结构设计过程 160

10.1.1分析关键需求和项目约束 160

10.1.2选择体系结构风格 162

10.1.3软件体系结构逻辑设计 162

10.1.4软件体系结构实现 165

10.1.5完善软件体系结构设计 170

10.1.6定义构件接口 172

10.2体系结构的原型构建 173

10.2.1包的创建 173

10.2.2重要文件的创建 174

10.2.3定义构件之间的接口 174

10.2.4关键需求的实现 175

10.3体系结构集成与测试 175

10.3.1集成的策略 175

10.3.2桩、驱动与集成测试用例 177

10.4软件体系结构设计文档描述 180

10.5体系结构评审 181

10.6项目实践 181

10.7习题 182

第11章 人机交互设计 183

11.1引言 183

11.2人机交互设计的目标 184

11.3人机交互设计的人类因素 185

11.3.1精神模型 185

11.3.2差异性 186

11.4人机交互设计的计算机因素 186

11.4.1可视化设计 186

11.4.2常见界面类型 187

11.5人机交互设计的交互性 188

11.5.1导航 188

11.5.2反馈 189

11.5.3一些人机交互设计原则 190

11.6人机交互设计过程 192

11.6.1基本过程 192

11.62示例 193

11.7项目实践 195

11.8习题 195

第12章 详细设计的基础 197

12.1详细设计概述 197

12.1.1详细设计出发点 197

12.1.2详细设计的上下文 198

12.2结构化设计 199

12.2.1结构化设计的思想 199

12.2.2结构化设计的过程 200

12.3面向对象设计 202

12.3.1面向对象设计的思想 202

12.3.2面向对象设计的过程 202

12.3.3通过职责建立静态模型 203

12.3.4通过协作建立动态模型 206

12.4为类间协作开发集成测试用例 210

12.5详细设计文档描述 212

12.6详细设计的评审 213

12.7项目实践 213

12.8习题 213

第13章 详细设计中的模块化与信息隐藏 215

13.1模块化与信息隐藏思想 215

13.1.1设计质量 215

13.1.2模块化与信息隐藏思想的动机 215

13.1.3模块化与信息隐藏思想的发展 216

13.2模块化 217

13.2.1分解与模块化 217

13.2.2结构化设计中的耦合 219

13.2.3结构化设计中的内聚 220

13.2.4回顾:MSCS系统设计中的模块化思想 221

13.3信息隐藏 222

13.3.1抽象与信息隐藏 222

13.3.2信息与隐藏 224

13.3.3模块说明 225

13.3.4回顾:MSCS系统设计中的信息思想 226

13.4习题 226

第14章 详细设计中面向对象方法下的模块化 228

14.1面向对象中的模块 228

14.1.1类 228

14.1.2类之间的联系 228

14.2访问耦合 229

14.2.1访问耦合的分析 229

14.2.2降低访问耦合的方法 230

14.3继承耦合 234

14.3.1继承耦合的分析 234

14.3.2降低继承耦合的方法 235

14.4内聚 237

14.4.1面向对象中的内聚 237

14.4.2提高内聚的方法 238

14.5耦合与内聚的度量 241

14.5.1耦合的度量 241

14.5.2内聚的度量 242

14.6项目实践 243

14.7习题 243

第15章 详细设计中面向对象方法下的信息隐藏 246

15.1封装类的职责 246

15.1.1类的职责 246

15.1.2封装——分离接口与实现 247

15.1.3封装实现细节 247

15.2为变更而设计 251

15.2.1封装变更/开闭原则 251

15.2.2多态 252

15.2.3依赖倒置原则 253

15.2.4总结 257

15.3项目实践 257

15.4习题 258

第16章 详细设计的设计模式 262

16.1设计模式基础 262

16.2可修改性及其基本实现机制 262

16.3策略模式 265

16.3.1典型问题 265

16.3.2设计分析 266

16.3.3解决方案 266

16.3.4模式实例 268

16.4抽象工厂模式 270

16.4.1典型问题 270

16.4.2设计分析 272

16.4.3解决方案 272

16.4.4模式实例 274

16.5单件模式 276

16.5.1典型问题 276

16.5.2设计分析 276

16.5.3解决方案 276

16.5.4模式实例 277

16.6迭代器模式 277

16.6.1典型问题 277

16.6.2设计分析 279

16.6.3解决方案 279

16.6.4模式实例 280

16.7项目实践 280

16.8习题 280

第五部分 软件构造、测试、交付与维护 282

第17章 软件构造 282

17.1概述 282

17.1.1软件构造的定义 282

17.1.2软件构造是设计的延续 283

17.2软件构造活动 283

17.2.1详细设计 283

17.2.2编程 284

17.2.3测试 284

17.2.4调试 285

17.2.5代码评审 286

17.2.6集成与构建 288

17.2.7构造管理 288

17.3软件构造实践方法 288

17.3.1重构 289

17.3.2测试驱动开发 291

17.3.3结对编程 295

17.4项目实践 295

17.5习题 296

第18章 代码设计 298

18.1设计易读的代码 298

18.1.1格式 298

18.1.2命名 302

18.1.3注释 302

18.2设计易维护的代码 304

18.2.1小型任务 305

18.2.2复杂决策 306

18.2.3数据使用 308

18.2.4明确依赖关系 308

18.3设计可靠的代码 308

18.3.1契约式设计 308

18.3.2防御式编程 310

18.4使用模型辅助设计复杂代码 310

18.4.1决策表 311

18.4.2伪代码 311

18.4.3程序流程图 313

18.5为代码开发单元测试用例 313

18.5.1为方法开发测试用例 313

18.5.2使用Mock Object测试类方法 313

18.5.3为类开发测试用例 315

18.6代码复杂度度量 316

18.7问题代码 317

18.8项目实践 318

18.9习题 319

第19章 软件测试 320

19.1引言 320

19.1.1验证与确认 320

19.1.2软件测试的目标 321

19.1.3测试用例 321

19.1.4桩与驱动 321

19.1.5缺陷、错误与失败 322

19.2测试层次 323

19.2.1测试层次的划分 323

19.2.2单元测试 323

19.2.3集成测试 324

19.2.4系统测试 325

19.3测试技术 325

19.3.1测试用例的选择 325

19.3.2随机测试 326

19.3.3基于规格的技术——黑盒测试方法 327

19.3.4基于代码的技术——白盒测试方法 329

19.3.5特定测试技术 331

19.4测试活动 331

19.5测试度量 334

19.6项目实践 334

19.7习题 335

第20章 软件交付 336

20.1安装与部署 336

20.1.1安装 336

20.1.2部署 337

20.2培训与文档支持 338

20.2.1培训 338

20.2.2文档支持 339

20.3项目评价 341

20.3.1项目评价的原因 341

20.3.2项目评价的内容 341

20.3.3项目评价的方法 341

20.3.4注意事项 343

20.4项目实践 343

20.5习题 344

第21章 软件维护与演化 345

21.1软件维护 345

21.1.1软件可修改性与软件维护 345

21.1.2软件维护的类型 345

21.1.3软件维护的高代价性 346

21.1.4开发可维护的软件 348

21.1.5软件维护过程与活动 349

21.2软件演化 350

21.2.1演化与维护 350

21.2.2软件演化定律 351

21.2.3软件演化生命周期模型与演化活动 352

21.3软件维护与演化的常见技术 354

21.3.1遗留软件 355

21.3.2逆向工程 355

21.3.3再工程 356

21.4项目实践 356

21.5习题 357

第六部分 软件过程模型与职业基础 360

第22章 软件开发过程模型 360

22.1软件开发的典型阶段 360

22.1.1软件需求工程 360

22.1.2软件设计 361

22.1.3软件构造 361

22.1.4软件测试 363

22.1.5软件交付 363

22.1.6软件维护 363

22.2软件生命周期模型 364

22.3软件过程模型 364

22.4构建-修复模型 366

22.5瀑布模型 367

22.6增量迭代模型 368

22.7演化模型 370

22.8原型模型 371

22.9螺旋模型 372

22.10 Rational统一过程 374

22.11敏捷过程 376

22.12习题 378

第23章 软件工程职业基础 379

23.1软件工程职业 379

23.1.1软件行业的发展 379

23.1.2软件工程职业的出现 380

23.1.3软件工程师职业素质 380

23.2软件工程职业概况 381

23.2.1知识体系 381

23.2.2教育体系 381

23.2.3职业道德规范 382

23.2.4认证体系 382

23.2.5行业协会 383

23.3软件工程的行业标准 383

23.4习题 384

附录A软件需求规格说明文档模板 385

附录B文档注释规范 391

附录C软件工程道德和职业实践规范(5.2版)的八项原则 395

附录D连锁商店管理系统(MSCS)相关文档 399

参考文献 428

返回顶部