《软件工程与项目管理》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:王素芬主编;栾好利副主编
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:2010
  • ISBN:9787560623603
  • 页数:295 页
图书介绍:本书全面、系统地介绍了软件工程的概念、原理和典型技术方法,包括软件工程的发展和基本原理、软件过程的基本活动和软件开发方法、常用软件项目立项的方法、需求分析的过程和方法、软件的总体设计和详细设计、软件编码测试与维护、面向对象方法学、UML以及软件项目管理。

第1章 概述 1

1.1 软件 1

1.1.1 软件的特点及分类 1

1.1.2 软件的发展 3

1.1.3 软件危机及其表现 4

1.1.4 软件危机产生的主要原因 4

1.1.5 解决软件危机的途径 5

1.2 软件工程 5

1.2.1 软件工程的概念 5

1.2.2 软件工程的三要素 5

1.3 软件生命周期 6

1.4 软件工程的目标 8

1.5 软件工程的开发原则 9

1.6 软件工程方法学 9

1.7 计算机辅助软件工程 10

1.8 软件工程与其他相关学科的关系 11

1.9 软件工程职业道德规范 12

1.10 软件工程发展趋势 13

1.11 实战训练 13

本章小结 13

习题1 14

第2章 软件过程 16

2.1 软件过程的概念 16

2.1.1 软件过程的定义 16

2.1.2 软件过程的基本活动 16

2.1.3 软件过程的制品 16

2.2 典型的软件过程模型 17

2.2.1 瀑布模型 17

2.2.2 增量模型 18

2.2.3 快速原型模型 19

2.2.4 螺旋模型 20

2.2.5 喷泉模型 21

2.2.6 V型模型 22

2.2.7 形式化方法模型 22

2.2.8 组合模型 23

2.3 软件开发方法简述 23

2.3.1 结构化的开发方法 23

2.3.2 面向数据结构的开发方法 24

2.3.3 面向对象的开发方法 24

2.3.4 原型化开发方法 24

2.4 案例微软公司的软件开发过程 24

2.4.1 微软开发过程管理的基本原则 24

2.4.2 微软公司的软件开发过程模型 25

2.5 实战训练 26

本章小结 26

习题2 26

第3章 软件项目立项 28

3.1 软件项目立项方法 28

3.1.1 委托开发项目 28

3.1.2 自主开发项目 29

3.2 软件可行性分析 29

3.2.1 可行性分析的内容 29

3.2.2 可行性分析的步骤 29

3.3 软件项目规模成本估算 30

3.3.1 代码行估算技术 30

3.3.2 功能点估算法 31

3.3.3 类比估算法 31

3.3.4 自下而上估算法 31

3.3.5 专家估算法 32

3.4 成本—效益分析 32

3.5 制定软件项目开发计划 34

3.5.1 软件项目开发计划书的内容 34

3.5.2 项目计划编制过程 36

3.5.3 项目计划内容确定 38

3.6 软件项目立项文档 39

3.7 软件项目团队的建立 45

3.7.1 团队定义 45

3.7.2 项目组织形式 45

3.7.3 团队建设 47

3.8 实战训练 48

本章小结 50

习题3 50

第4章 需求分析 52

4.1 需求分析概述 52

4.1.1 需求的概念 52

4.1.2 需求的层次 53

4.2 需求分析的目标和任务 54

4.3 需求分析的原则与获取需求的方法 55

4.3.1 需求分析的原则 55

4.3.2 获取需求的方法 56

4.4 需求分析的过程 57

4.5 需求分析的方法 57

4.5.1 结构化分析方法 58

4.5.2 原型分析方法 63

4.6 软件需求分析文档 66

4.6.1 软件需求规格说明和需求评审 66

4.6.2 教务管理系统需求规格说明书 68

4.7 实战训练 69

本章小结 71

习题4 71

第5章 软件的总体设计 75

5.1 总体设计的目标和任务 75

5.1.1 总体设计的目标 75

5.1.2 总体设计的任务和步骤 76

5.2 设计的概念和原则 77

5.2.1 模块化 77

5.2.2 抽象 78

5.2.3 逐步求精 78

5.2.4 信息隐藏和局部化 78

5.2.5 模块独立性 79

5.3 描绘软件结构的图形工具 81

5.3.1 HIPO图 81

5.3.2 系统结构图 83

5.4 结构化设计 84

5.4.1 系统结构图中的模块 84

5.4.2 变换型数据流与变换型系统结构 85

5.4.3 事务流与事务型系统结构 86

5.4.4 变换映射 86

5.4.5 事务映射 88

5.4.6 “黑盒”技术的使用 88

5.5 数据库设计及设计原则 88

5.5.1 数据库设计 88

5.5.2 数据库设计的原则 90

5.6 接口设计 92

5.6.1 接口设计的描述 92

5.6.2 用户界面设计的主要问题 92

5.6.3 人机界面设计过程 94

5.6.4 人机界面设计实现原则及典型案例 96

5.7 总体设计说明书的编写 97

5.8 实战训练 97

本章小结 98

习题5 99

第6章 软件的详细设计 101

6.1 详细设计的任务 101

6.2 详细设计的原则 101

6.3 详细设计的方法 102

6.4 详细设计可采用的工具 102

6.5 详细设计说明书 109

6.6 实战训练 110

本章小结 113

习题6 113

第7章 软件编码 116

7.1 软件编码的目的 116

7.2 程序设计语言 116

7.2.1 程序设计语言的分类 116

7.2.2 程序设计语言特性的比较 117

7.2.3 程序设计语言的选择 119

7.3 结构化程序设计 119

7.3.1 结构化程序设计的原则 120

7.3.2 程序设计——自顶向下,逐步求精 120

7.3.3 数据结构的合理化 122

7.4 编码风格 122

7.4.1 程序的内部文档 122

7.4.2 数据说明 129

7.4.3 语句结构 129

7.4.4 输入和输出 130

7.5 程序编码优化技术 131

7.5.1 程序优化 131

7.5.2 程序优化方法 132

7.5.3 网络优化 139

7.6 代码评审和版本控制 139

7.6.1 代码评审 139

7.6.2 版本控制 140

7.7 实战训练 142

本章小结 144

习题7 144

第8章 软件测试与调试 146

8.1 概述 146

8.1.1 软件测试的定义 147

8.1.2 软件测试的目的 147

8.1.3 软件缺陷带来影响的例子 147

8.2 软件测试的任务和目标 148

8.2.1 软件测试的任务 148

8.2.2 软件测试的目标 149

8.3 软件测试的基本原则 150

8.4 软件测试的方法 151

8.4.1 测试用例 151

8.4.2 黑盒测试法 153

8.4.3 白盒测试法 156

8.5 软件测试的步骤 163

8.5.1 单元测试 163

8.5.2 集成测试 165

8.5.3 确认测试 168

8.5.4 系统测试 169

8.6 程序调试 172

8.6.1 程序调试技术 172

8.6.2 程序调试策略 173

8.7 实战训练 173

本章小结 175

习题8 176

第9章 软件维护 179

9.1 软件维护的概念 179

9.2 软件维护的特点 179

9.3 软件维护的类型 181

9.4 软件维护的步骤 183

9.5 软件的可维护性 187

9.6 软件维护的副作用 188

9.7 软件重用 189

本章小结 190

习题9 190

第10章 面向对象的方法学 193

10.1 面向对象的概念 193

10.1.1 传统开发方法存在的问题 193

10.1.2 面向对象的基本概念 194

10.1.3 面向对象的特征 196

10.1.4 面向对象的要素 196

10.1.5 面向对象的开发方法 197

10.2 面向对象的模型 197

10.2.1 对象模型 197

10.2.2 动态模型 201

10.2.3 功能模型 203

10.3 面向对象的分析 203

10.3.1 面向对象的分析过程 203

10.3.2 建立对象模型 204

10.3.3 建立动态模型 208

10.3.4 建立功能模型 211

10.3.5 确定操作 212

10.4 面向对象的设计 212

10.5 面向对象的实现 216

10.6 面向对象和基于对象的区别 217

10.7 实战训练 218

本章小结 219

习题10 219

第11章 统一建模语言(UML) 221

11.1 概述 221

11.1.1 什么是UML 221

11.1.2 UML的发展史 221

11.1.3 UML的特点 222

11.1.4 UML的应用领域 222

11.1.5 基于UML的设计过程 223

11.2 UML概念模型 223

11.2.1 UML的构成 223

11.2.2 UML的基本构造块 223

11.2.3 UML的规则 224

11.2.4 UML的公共机制 225

11.3 UML的静态建模机制 225

11.3.1 用例图 225

11.3.2 类图 227

11.3.3 对象图 228

11.3.4 包图 229

11.4 UML的动态建模机制 230

11.4.1 协作图 230

11.4.2 时序图 231

11.4.3 活动图 231

11.4.4 状态图 232

11.5 UML面向实现机制 233

11.5.1 组件图 233

11.5.2 配置图 234

11.6 UML建模工具 234

11.6.1 Rational Rose 234

11.6.2 Microsoft Office Visio 235

11.7 UML建模实例 236

11.8 实战训练 239

本章小结 243

习题11 243

第12章 软件项目管理 245

12.1 项目与项目管理 245

12.2 ISO 9000国际标准简介 247

12.3 CMMI 248

12.3.1 CMMI的基本概念 248

12.3.2 CMMI的体系结构 248

12.4 ISO 9000与CMMI的比较 250

12.5 软件项目管理过程 251

12.5.1 项目组织结构 252

12.5.2 项目启动 253

12.5.3 项目过程定义 254

12.5.4 工作分解结构 255

12.5.5 制定风险计划 255

12.5.6 制定项目文档管理 257

12.5.7 制定项目培训计划 257

12.5.8 制定项目监控过程 258

12.5.9 制定项目进度表 259

12.5.10 合成项目计划和从属计划 260

12.5.11 获得对计划的承诺 260

12.5.12 评审 261

12.5.13 跟踪项目计划估计值 262

12.5.14 跟踪风险 264

12.5.15 里程碑总结 265

12.5.16 变更管理 266

12.5.17 问题管理 266

12.5.18 项目总结 267

12.6 模板和表格 268

12.7 实战训练 268

本章小结 268

习题12 269

附录 软件开发过程中的文档 270

附录A 可行性分析报告(GB8567—88) 270

A.1 引言 270

A.2 可行性分析的前提 270

A.3 对现有系统的分析 271

A.4 所建议系统 272

A.5 可选择的其他系统方案 273

A.6 投资及效益分析 273

A.7 社会因素方面的可行性 275

A.8 结论 275

附录B 软件项目开发计划书(GB8567—88) 275

B.1 引言 275

B.2 项目概述 276

B.3 实施计划 276

B.4 支持条件 277

B.5 专题计划要点 277

附录C 软件规格说明书(GB8567—88) 277

C.1 引言 277

C.2 任务概述 278

C.3 需求规定 278

C.4 运行环境规定 279

附录D 软件总体设计说明书(GB8567—88) 280

D.1 引言 280

D.2 总体设计 280

D.3 接口设计 281

D.4 运行设计 281

D.5 系统数据结构设计 281

D.6 系统出错处理设计 282

附录E 软件详细设计说明书(GB8567—88) 282

E.1 引言 282

E.2 程序系统的结构 283

E.3 程序1(标识符)设计说明 283

E.4 程序2(标识符)设计说明 284

附录F 操作手册(GB8567—88) 284

F.1 引言 284

F.2 软件特征描述 284

F.3 安装与初始化 285

F.4 运行说明 285

F.5 非常规过程 286

F.6 远程操作 286

附录G 测试计划(GB8567—88) 286

G.1 引言 286

G.2 计划 287

G.3 测试设计说明 288

G.4 评价准则 288

附录H 测试分析报告(GB8567—88) 289

H.1 引言 289

H.2 测试概要 289

H.3 测试结果及发现 289

H.4 对软件功能的结论 289

H.5 分析摘要 290

H.6 测试资源消耗 290

附录I 开发进度月报(GB8567—88) 290

I.1 标题 290

I.2 工程进度与状态 291

I.3 资源耗用与状态 291

I.4 经费支出与状态 291

I.5 下个月的工作计划 292

I.6 建议 292

附录J 软件项目开发总结报告(GB8567—88) 292

J.1 引言 292

J.2 实际开发结果 293

J.3 开发工作评价 293

J.4 经验与教训 294

参考文献 295