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.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.3 快速原型模型
2.4 增量模型
2.5 螺旋模型
2.6 喷泉模型
2.7 Rational 统一过程模型
2.8敏捷过程模型
2.9微软过程
本章小结
本章习题
第3章 软件方法
3.1 结构化方法
3.2 面向对象方法
3.2.1 面向对象方法的发展及要点
3.2.2 面向对象方法学的优点
3.2.3 面向对象方法学的不足
3.2.4 面向对象的基本概念
3.3 形式化方法
3.3.1 非形式化方法的缺点
3.3.2 软件开发过程中的数学
3.3.3 应用形式化方法的准则
3.4 敏捷方法
3.4.1 敏捷软件开发方法
3.4.2 软件技术的发展趋势
本章小结
本章习题
第4章 结构化分析
4.1 结构化分析概述
4.1.1 结构化分析思想
4.1.2 结构化分析过程
4.1.3 结构化模型的描述形式
4.2 数据流图
4.2.1 数据流图的基本成分
4.2.2 数据流图绘制方法
4.2.3 数据流图绘制实例
4.3 实体—关系图
4.4 数据字典
4.4.1 数据字典的定义与用途
4.4.2 内容及格式
4.4.3 数据字典的实现
本章小结
本章习题
第5章 结构化设计
5.1 结构化设计概述
5.1.1 结构化设计与结构化分析的关系
5.1.2 设计目标和原则
5.1.3 软件设计基本原理
5.2 模块独立
5.2.1 耦合
5.2.2 内聚
5.3 软件结构设计的启发规则
5.4 软件结构设计的图形工具
5.4.1 层次图和HIPO图
5.4.2 结构图
5.5 面向数据流设计方法
5.5.1 概念
5.5.2 变换分析
5.5.3 事务分析
5.5.4 设计优化
5.6 人机界面设计
5.6.1 人机界面设计问题
5.6.2 设计过程
5.6.3 人机界面设计指南
5.7 过程设计
5.8过程设计的工具
5.8.1 程序流程图
5.8.2 N?S图
5.8.3 PAD图
5.8.4 判定表
5.8.5 判定树
5.8.6 过程设计语言
本章小结
本章习题
第6章 结构化实现
6.1 程序设计语言
6.1.1 程序设计语言的分类
6.1.2 程序设计语言的特点
6.1.3 程序设计语言的选择
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.4 白盒测试技术
6.4.1 逻辑覆盖
6.4.2 路径测试
6.4.3 循环测试
6.5 黑盒测试技术
6.5.1 等价类划分
6.5.2 边界值分析
6.5.3 错误推测法
6.6 软件测试策略
6.6.1 单元测试
6.6.2 集成测试
6.6.3 系统测试
6.6.4 验收测试
6.7 软件调试
6.7.1 软件调试方法
6.7.2 常用调试策略
本章小结
本章习题
第7章 UML面向对象建模基础
7.1 UML简介
7.1.1 UML发展史
7.1.2 UML构成
7.1.3 UML视图
7.2 用例图
7.2.1 参与者
7.2.2 用例
7.2.3 用例间的关系
7.2.4 用例图范例
7.3 类图和对象图
7.3.1 类图
7.3.2 对象图
7.4 顺序图、协作图、状态图和活动图
7.4.1 顺序图
7.4.2 协作图
7.4.3 状态图
7.4.4 活动图
7.5 组件图和部署图
7.5.1 组件图
7.5.2 部署图
7.6 包图
本章小结
本章习题
第8章 面向对象分析
8.1 面向对象分析方法简介
8.2 面向对象分析过程
8.3 建立功能模型
8.3.1 发现参与者
8.3.2 确定用例
8.3.3 构造用例图
8.3.4 建立用例描述
8.4 识别分析类
8.4.1 识别边界类
8.4.2 识别控制类
8.4.3 识别实体类
8.5 建立动态模型
8.5.1 建立状态图
8.5.2 建立顺序图
8.6 建立对象模型
8.7 其他需求
8.8 评审分析模型
本章小结
本章习题
第9章 面向对象设计
9.1 面向对象设计的基本概念
9.1.1 面向对象设计方法简介
9.1.2 面向对象设计活动
9.1.3 面向对象设计准则
9.2 精化功能模型
9.2.1 将分析用例转换成设计用例
9.2.2 修改功能模型
9.3 定义体系结构
9.3.1 仓库及知识库体系结构
9.3.2 管道和过滤器体系结构
9.3.3 分层体系结构
9.3.4 客户服务器体系结构
9.3.5 浏览器服务器体系结构
9.3.6 分布式对象体系结构
9.3.7 网上购物系统体系结构
9.4 精化动态模型
9.5 精化对象模型
9.5.1 类设计
9.5.2 接口设计
9.5.3 属性、方法建模
9.6 定义存储策略
9.6.1 映射类
9.6.2 映射继承关系
9.6.3 关联和聚合映射
9.6.4 持久性框架
9.7 部署子系统
9.8 人机界面设计
9.8.1 面向对象的人机界面设计
9.8.2 Web界面设计启发规则
9.8.3 Web界面风格与布局
9.8.4 Web界面颜色搭配
9.9 评审设计模型
本章小结
本章习题
第10章 面向对象实现
10.1 面向对象程序设计语言
10.1.1 面向对象程序设计语言简介
10.1.2 面向对象程序设计语言的技术特点
10.1.3 面向对象程序设计语言的选择
10.2 面向对象程序设计风格
10.2.1 提高可重用性
10.2.2 提高可扩充性
10.2.3 提高健壮性
10.3 面向对象测试的基本概念
10.3.1 面向对象测试的问题
10.3.2 面向对象测试与传统测试的区别
10.3.3 面向对象测试的参考模型
10.4 面向对象测试的策略
10.4.1 面向对象分析测试
10.4.2 面向对象设计测试
10.4.3 面向对象编程测试
10.4.4 面向对象单元测试
10.4.5 面向对象集成测试
本章小结
本章习题
第11章 软件项目管理
11.1 软件项目管理概述
11.1.1 软件项目管理的范围
11.1.2 软件项目管理活动
11.2 软件项目成本管理
11.2.1 软件规模估算
11.2.2 软件成本估算
11.3 软件项目进度管理
11.3.1 Gantt图
11.3.2 工程网络图
11.3.3 PERT技术和CPM方法
11.4 软件项目组织管理
11.4.1 软件项目组织
11.4.2 软件人员组织
11.5 软件项目风险管理
11.5.1 风险识别
11.5.2 风险分析
11.5.3 风险规划
11.5.4 风险监控
11.6 软件项目质量管理
11.6.1 软件质量
11.6.2 软件质量保证措施
11.6.3 CMM软件能力成熟度模型
11.7 软件项目配置管理
11.7.1 基本概念
11.7.2 配置管理活动
本章小结
本章习题
第12章 软件工具
12.1 分析设计工具Rational Rose
12.1.1 Rational Rose 2003简介
12.1.2 UML各种图的建立
12.2 测试工具LoadRunner
12.2.1 LoadRunner 11.5 简介
12.2.2 LoadRunner 11.5 测试实例
12.3 配置管理工具VSS
12.3.1 VSS 2005简介
12.3.2 VSS管理实例
12.4 项目管理工具MS Project 2007
12.4.1 Microsoft Project 2007简介
12.4.2 Project管理实例
本章小结
本章习题