图书目录

目录

第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.3COCOMO2模型

3.4软件项目进度控制

3.4.1估算开发时间

3.4.2Gantt图

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.5Warnier图

5.5.6IPO图

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.3Alpha和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.4UML

10.4.1概述

10.4.2UML模型的基本内容

10.4.3UML的语义扩展

10.4.4模型的组织结构

10.5UML提供的常用图

10.5.1Use Case图

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描述局部功能需求的Use Case报告

本章小结

思考题

第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试题样卷

参考文献