软件工程基础教程

软件工程基础教程

陶华亭, 主编

出版社:清华大学出版社

年代:2010

定价:28.0

书籍简介:

本书汇总了作者多本教材的精华,融入了多年的教学经验,吸收了软件工程学科较新内容编写而成。在内容和体系结构上都有了新的调整和补充。软件工程内容分为工程管理和软件工程技术两大部分。

书籍目录:

第1章 软件工程的基本概念与原理

1.1 软件工程学科的诞生

1.1.1 软件及其特点

1.1.2 软件生产的发展

1.1.3 软件危机

1.1.4 软件工程的诞生

1.2 软件工程的基本概念和原理

1.2.1 软件工程的定义

1.2.2 软件工程面临的主要问题

1.2.3 软件工程的目标

1.2.4 软件生存周期

1.2.5 软件工程的基本原理

1.3 软件工程研究的主要内容

1.3.1 软件开发过程

1.3.2 软件工程技术

1.3.3 软件项目管理

1.3.4 计算机辅助软件工程

本章小结

习题

第2章 软件开发过程

2.1 软件过程

2.1.1 软件过程概念及理论基础

2.1.2 软件过程讨论的主要内容

2.2 常见的软件过程模型

2.2.1 边改边做模型

2.2.2 瀑布模型

2.2.3 演化模型

2.2.4 增量迭代模型

2.2.5 喷泉模型

2.3 软件过程的新发展

2.3.1 敏捷过程与极限编程

2.3.2 统一过程模型RUP

2.3.3 软件过程改进与CMM

本章小结

习题

第3章 软件项目管理

3.1 软件项目管理概述

3.1.1 软件生产的特殊性

3.1.2 软件项目管理的重要性

3.1.3 软件项目管理的主要内容

3.2 软件规模估算

3.2.1 代码行技术

3.2.2 功能点技术

3.2.3 估算方法

3.3 软件项目工作量估算

3.3.1 静态单变量模型

3.3.2 动态多变量模型

3.3.3 COCOMO2模型

3.4 软件项目进度控制

3.4.1 估算开发时间

3.4.2 Gantt图

3.4.3 工程网络

3.4.4 工程进度估算

3.4.5 关键路径

3.4.6 机动时间

3.5 软件项目人员组织

3.5.1 民主制程序员组

3.5.2 主程序员组

3.5.3 现代程序员组

3.6 软件质量保证

3.6.1 软件质量

3.6.2 软件质量保证措施

3.7 软件配置管理

3.7.1 软件配置

3.7.2 软件配置管理过程

本章小结

思考题

第4章 软件项目可行性分析与初步计划

4.1 可行性分析的任务

4.2 可行性分析的步骤

4.2.1 审查系统规模和目标

4.2.2 调查目前正在使用的系统

4.2.3 导出新系统的高层逻辑模型

4.2.4 导出和评价供选择的方案

4.2.5 推荐行动方针

4.2.6 草拟项目计划

4.2.7 编写文档提交审查

4.3 系统流程图

4.3.1 基本符号

4.3.2 绘制方法

4.4 数据流图

4.4.1 基本符号

4.4.2 绘制方法

4.4.3 数据流图的用途

4.5 成本/效益分析

4.5.1 成本估算

4.5.2 成本/效益分析的方法

4.6 可行性分析报告

4.6.1 主要内容

4.6.2 参考格式

本章小结

思考题

综合题

第5章 需求分析

5.1 需求分析概述

5.1.1 需求分析的任务

5.1.2 人员组织

5.1.3 分析师的角色

5.1.4 需求分析的活动和原则

5.2 结构化分析方法

5.2.1 结构化分析的概念

5.2.2 细化数据流图

5.2.3 实例

5.3 数据流程图的绘制

5.3.1 数据流图的布局

5.3.2 符号的组合应用

5.3.3 避免线条交叉

5.3.4 抽象数据流的应用

5.3.5 编号规则

5.3.6 命名规则

5.3.7 父图与子图的平衡

5.4 编制数据字典

5.4.1 定义数据的方法

5.4.2 数据字典的内容及格式

5.5 加工逻辑的分析与表达

5.5.1 结构式语言

5.5.2 策略表

5.5.3 策略树

5.5.4 层次方框图

5.5.5 Warnier图

5.5.6 IPO图

5.6 软件需求验证与评审

5.6.1 从哪些方面验证软件需求

5.6.2 验证软件需求的方法

5.6.3 软件需求评审

本章小结

思考题

第6章 总体设计

6.1 总体设计的过程

6.1.1 方案设计

6.1.2 软件结构设计

6.1.3 数据库设计

6.1.4 制定测试计划

6.1.5 书写文档

6.1.6 审查和复审

6.2 设计原理

6.2.1 模块化

6.2.2 抽象

6.2.3 逐步求精

6.2.4 信息隐藏和局部化

6.2.5 模块独立性

6.3 启发性设计原则

6.3.1 改进软件结构,提高模块独立性

6.3.2 模块规模应该适中

6.3.3 深度、宽度、扇出和扇入都应适当

6.3.4 模块的作用域应该在控制域之内

6.3.5 力争降低模块接口的复杂程度

6.3.6 设计单入口单出口的模块

6.3.7 模块功能应该可以预测

6.4 描绘软件结构的图形工具

6.4.1 层次图和HIPO图

6.4.2 结构图

6.5 面向数据流的设计方法

6.5.1 面向数据流的设计原理

6.5.2 变换分析

6.5.3 事务分析

6.5.4 结构优化

6.5.5 设计过程

6.6 实例

6.6.1 确定变换中心

6.6.2 确定主控制模块,产生第一张结构图

6.6.3 分解与优化

6.6.4 一个抽象的例子

本章小结

思考题

第7章 详细设计

7.1 代码设计

7.2 数据库设计

7.2.1 数据库设计的相关概念

7.2.2 数据库设计的任务

7.2.3 概念模型

7.2.4 概念模型到数据模型的转换策略

7.3 规范化理论

7.3.1 规范化的概念

7.3.2 非规范化形式

7.3.3 第一范式

7.3.4 第二范式

7.3.5 第三范式

7.3.6 实例

7.4 数据库设计实例

7.4.1 数据库设计的步骤

7.4.2 实例

7.5 系统平台设计

7.5.1 计算机处理方式

7.5.2 软硬件选择

7.5.3 网络设计

7.5.4 系统环境的配置

7.6 对话设计

7.6.1 对话设计的原则

7.6.2 对话设计的基本类型

7.7 输入/输出设计

7.7.1 输出设计

7.7.2 输入设计

7.8 处理过程设计

7.8.1 盒图(NS图)

7.8.2 问题分析图(PAD图)

7.9 编写系统设计说明书

本章小结

思考题

第8章 软件实现

8.1 软件实现综述

8.1.1 软件开发环境

8.1.2 软件开发工具

8.1.3 关于编程与测试

8.2 编程

8.2.1 编程语言

8.2.2 编码风格

8.3 软件测试基础

8.3.1 软件测试的目标

8.3.2 软件测试准则

8.3.3 测试方法

8.3.4 测试步骤

8.3.5 测试阶段的信息流

8.4 单元测试

8.4.1 测试重点

8.4.2 代码审查

8.4.3 计算机测试

8.5 集成测试

8.5.1 自顶向下集成

8.5.2 自底向上集成

8.5.3 不同集成测试策略的比较

8.5.4 回归测试

8.6 确认测试

8.6.1 确认测试概述

8.6.2 软件配置复查

8.6.3 Alpha和Beta测试

8.7 白盒测试技术

8.7.1 概述

8.7.2 逻辑覆盖

8.7.3 控制结构覆盖

8.8 黑盒测试技术

8.8.1 概述

8.8.2 等价类划分

8.8.3 边界值分析

8.8.4 错误推测

8.9 调试

8.9.1 调试过程

8.9.2 调试途径

8.10 软件可靠性

8.10.1 基本概念

8.10.2 估算平均无故障时间的方法

本章小结

思考题

第9章 软件维护

9.1 软件维护的内容

9.2 软件维护的特点

9.2.1 非结构化维护和结构化维护

9.2.2 软件维护的困难性

9.2.3 软件维护的费用

9.3 软件维护的实施

9.3.1 维护的组织

9.3.2 维护的流程

9.3.3 维护技术

9.3.4 维护的副作用

9.4 软件的可维护性

9.4.1 可维护性定义

9.4.2 可维护性的度量

9.4.3 提高可维护性的方法

本章小结

思考题

第10章 从结构化到面向对象

10.1 方法论的形成与发展

10.1.1 软件工程追求的目标和要解决的主要问题

10.1.2 软件工程方法论的形成

10.1.3 什么是方法论

10.1.4 为什么要研究方法论

10.1.5 有哪些方法论

10.2 结构化方法的缺陷与面向对象的优势

10.2.1 传统的和结构化的方法存在的问题

10.2.2 面向对象的优势

10.3 面向对象的基本概念

10.3.1 对象与类

10.3.2 消息与责任

10.3.3 操作与方法

10.3.4 继承与多态

10.3.5 封装与接口

10.4 UML

10.4.1 概述

10.4.2 UML模型的基本内容

10.4.3 UML的语义扩展

10.4.4 模型的组织结构

10.5 UML提供的常用图

10.5.1 UseCase图

10.5.2 类图

10.5.3 序列图

10.5.4 协作图

10.5.5 状态图

10.5.6 活动图

10.6 面向对象的建模过程

10.6.1 过程框架与迭代策略

10.6.2 模型演进

本章小结

思考题

第11章 面向对象的需求获取

11.1 用例图

11.1.1 用例

11.1.2 角色

11.1.3 关系

11.2 活动图

11.3 状态图

11.4 获取需求活动

11.4.1 建立描述用户业务的用例模型

11.4.2 演化出目标系统用例模型

11.4.3 构造用户界面原型

11.5 实例

11.5.1 实例描述

11.5.2 描述局部功能需求的UseCase报告

本章小结

思考题

第12章 面向对象的分析与设计

12.1 全局分析

12.1.1 选用构架模式

12.1.2 识别关键抽象

12.1.3 标识“分析机制”

12.1.4 选定分析局部

12.2 局部分析

12.2.1 提取分析类

12.2.2 转述需求场景

12.2.3 整理分析类

12.3 全局设计

12.3.1 确定核心元素

12.3.2 引入外围元素

12.3.3 优化(模型)组织结构

12.4 局部设计

12.4.1 实现需求场景

12.4.2 实现子系统接口

12.5 细节设计

12.5.1 精化属性与操作

12.5.2 明确类之间的关系

本章小结

思考题

第13章 面向对象的测试

13.1 面向对象测试的特点

13.2 面向对象的测试策略

13.3 测试阶段性成果

13.4 测试人员职责分工

13.5 测试步骤

13.5.1 制定测试计划

13.5.2 设计测试用例

13.5.3 测试构件的实现

13.5.4 执行集成测试

13.5.5 执行系统测试

13.5.6 评估测试

本章小结

思考题

附录A 软件工程职业道德规范和实践要求

附录B 参考教学计划

附录C 试题样卷

参考文献

内容摘要:

本书汇总了作者多本教材的精华,融入了多年的教学经验,吸收了软件工程学科较新内容编写而成。在内容和体系结构上都有了新的调整和补充,不失为一本实用教材。 软件工程内容分为软件工程管理和软件工程技术两大部分。传统的教材把理论部分放在前面,工程技术部分放在中间,最后介绍软件工程管理内容,这样往往在教学中会忽略软件工程管理部分的内容,使教学过程不好安排。本教材在体系上做了一些调整,将软件工程理论和软件工程管理部分的内容放在前面,逐步由理论深入到实践,连贯性较强; 避免了进入软件工程技术甚至实践部分以后,再回头讲软件工程管理内容时,教学过程不易组织。本教材在介绍了软件工程基本概念和原理的基础上,着重对从结构化方法到面向对象方法的过渡进行了合理安排,强调从方法论和软件工程思想的角度理解这种过渡,指出了结构化方法的优点、缺陷和面向对象方法的优势,并从内容上加大了面向对象方法的比重。书中安排了贯穿全程的实例,通过面向对象的建模过程实践,使得针对面向对象的方法的教学过程更具有可操作性。课程进行到后半学期,对于面向对象的部分可以安排适当的上机实践,本教材对这一部分提供了较详细的建模操作实例。本书实例丰富,注重对学生实践能力的培养,对初次开设软件工程课程的计算机及相关专业本科层次、大专层次都适用。

编辑推荐:

《软件工程初级教程》实例丰富,注重对学生实践能力的培养,对初次开设软件工程课程的计算机及相关专业本科层次、大专层次都适用。

书籍规格:

书籍详细信息
书名软件工程基础教程站内查询相似图书
9787302221487
如需购买下载《软件工程基础教程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)28.0语种简体中文
尺寸26 × 19装帧平装
页数印数

书籍信息归属:

软件工程基础教程是清华大学出版社于2010.出版的中图分类号为 TP311.5 的主题关于 软件工程-高等学校-教材 的书籍。