内容简介
第一篇 软件工程与软件过程
第1章 软件工程概述
1.1软件工程学的背景和目的
1.1.1软件与软件的组成
1.1.2软件的特点
1.1.3软件的分类
1.1.4软件的历史与发展
1.1.5软件危机
1.1.6软件工程
1.2软件开发方法
1.3案例——“图书管理系统”项目提出
1.4实训——“学生管理系统”项目提出
1.4.1实训目的
1.4.2实训任务与实训要求
1.4.3实训内容与步骤
1.4.4实训注意事项
1.4.5实训成果
习题
第2章 过程和生命周期的建模
2.1过程的含义
2.2软件过程模型
2.2.1瀑布模型
2.2.2渐近式模型
2.2.3过程的迭代
2.2.4 V模型
2.2.5原型化模型
2.3软件开发标准
2.3.1国内外标准概述
2.3.2软件工程标准的层次
2.4案例——“图书管理系统”软件开发计划
2.5实训——“学生管理系统”软件开发计划
2.5.1实训目的
2.5.2实训任务与实训要求
2.5.3实训内容与步骤
2.5.4实训注意事项
2.5.5实训成果
习题
第3章 可行性研究
3.1问题定义与任务
3.2可行性研究的步骤
3.3系统流程图
3.4成本/效益分析
3.5案例——“图书管理系统”可行性分析报告
3.6实训——“学生管理系统”可行性分析报告
3.6.1实训目的
3.6.2实训任务与实训要求
3.6.3实训内容与步骤
3.6.4实训注意事项
3.6.5实训成果
习题
第二篇 传统方法学
第4章 需求分析基础
4.1需求分析和规格说明阶段的基本概念
4.2初步需求获取技术
4.2.1访谈与调查问卷
4.2.2跟班作业
4.2.3组成联合小组
4.3需求建模
4.4需求规格说明与评审
4.4.1需求规格说明书的内容
4.4.2需求评审
4.5案例——“图书管理系统”需求规格说明书
4.6实训——“学生管理系统”需求规格说明书
4.6.1实训目的
4.6.2实训任务与实训要求
4.6.3实训内容与步骤
4.6.4实训注意事项
4.6.5实训成果
习题
第5章 面向数据流的分析方法
5.1结构化分析概述
5.2数据流图
5.2.1数据流图的基本成分
5.2.2由外向里画数据流图
5.2.3分层数据流图
5.2.4由顶向下画分层数据流图
5.2.5数据流图的改进
5.3数据词典
5.3.1词典条目的各种类型
5.3.2词典条目的实例
5.4小说明
5.4.1加工的描述
5.4.2结构化语言
5.4.3判定表
5.4.4判定树
5.4.5词典的实现
5.5 SA方法小结
5.6案例——“图书管理系统”数据流图
5.7实训——“学生管理系统”数据流图和数据字典
5.7.1实训目的
5.7.2实训任务与实训要求
5.7.3实训内容与步骤
5.7.4实训注意事项
5.7.5实训成果
习题
第6章 软件设计基础
6.1软件设计概述
6.1.1软件设计的任务和步骤
6.1.2概要设计的基本概念
6.1.3详细设计的基本概念
6.2模块化设计
6.2.1模块概述
6.2.2块间联系和块内联系
6.3结构图的改进
6.4详细设计的描述方式
6.5案例——“图书管理系统”结构图
6.6实训——“学生管理系统”结构图
6.6.1实训目的
6.6.2实训任务与实训要求
6.6.3实训内容与步骤
6.6.4实训注意事项
6.6.5实训成果
习题
第7章 面向数据流的设计方法
7.1基本概念和设计过程
7.2变换分析
7.3事务分析
7.4综合设计
7.5 SD方法小结
7.6软件设计文档
7.6.1概要设计说明书
7.6.2详细设计说明书
7.7其他设计方法
7.8案例——“图书管理系统”概要设计说明书
7.9实训——“学生管理系统”概要设计说明书
7.9.1实训目的
7.9.2实训任务与实训要求
7.9.3实训内容与步骤
7.9.4实训注意事项
7.9.5实训成果
习题
第8章 程序设计语言和编码
8.1程序设计语言
8.1.1语言类别
8.1.2语言选择
8.2 SP方法与编程
8.3程序内部文档
8.4编程风格
8.4.1编码原则
8.4.2编程风格
8.5程序的效率
8.6程序设计自动化
8.7案例——“图书管理系统”详细设计说明书
8.8实训——“学生管理系统”详细设计说明书
8.8.1实训目的
8.8.2实训任务与实训要求
8.8.3实训内容与步骤
8.8.4实训注意事项
8.8.5实训成果
习题
第9章 检验和测试方法
9.1检验的基本概念
9.1.1概述
9.1.2软件检验手段
9.2软件评审
9.2.1评审过程
9.2.2评审条款
9.3测试的基本概念
9.4白盒法
9.4.1概述
9.4.2语句覆盖
9.4.3判定覆盖
9.4.4条件覆盖
9.4.5判定/条件覆盖
9.4.6条件组合覆盖
9.5黑盒法
9.5.1等价分类法
9.5.2边缘值分析法
9.5.3因果图法
9.5.4错误推测法
9.5.5综合策略
9.6测试步骤
9.7单元测试
9.7.1单元测试概述
9.7.2单元测试的方法
9.8联合测试
9.9有效性测试
9.10系统测试
9.11综合测试文档
9.12案例——“图书管理系统”测试分析报告
9.13实训——“学生管理系统”测试分析报告
9.13.1实训目的
9.13.2实训任务与实训要求
9.13.3实训内容与步骤
9.13.4实训注意事项
9.13.5实训成果
习题
第10章 软件维护
10.1维护的基本概念
10.2维护的种类
10.3维护的步骤与方法
10.3.1维护步骤
10.3.2维护方法
10.4可维护性
10.4.1决定软件可维护性的因素
10.4.2可维护性复审
10.5维护工作的管理
10.5.1维护的管理和组织
10.5.2维护报告
10.6维护的副作用
10.7软件维护文档
10.8案例——“图书管理系统”软件维护手册
10.9实训——“学生管理系统”软件维护手册
10.9.1实训目的
10.9.2实训任务与实训要求
10.9.3实训内容与步骤
10.9.4实训注意事项
10.9.5实训成果
习题
第三篇 面向对象方法学
第11章 统一建模语言
11.1面向对象方法概述
11.1.1面向对象方法的特点
11.1.2面向对象的概念
11.2 UML概述
11.2.1UML的特点
11.2.2 UML的构成
11.2.3 UML与RUP
11.3 UML的视图
11.4 UML的模型元素
11.4.1事物
11.4.2关系
11.5 UML的模型图
11.5.1用例图
11.5.2类图
11.5.3对象图
11.5.4包图
11.5.5状态图
11.5.6活动图
11.5.7 顺序图
11.5.8协作图
11.5.9组件图
11.5.10配置图
11.6 UML的公共机制
11.6.1注释
11.6.2修饰
11.6.3规格说明
11.6.4通用划分
11.6.5扩展机制
习题
第12章 面向对象分析
12.1需求分析与用例建模
12.1.1用例建模概述
12.1.2确定系统的范围和边界
12.1.3确定系统的参与者
12.1.4确定系统的用例
12.1.5描述用例
12.1.6用例分类,确定用例之间的关系
12.1.7定义用例图的层次结构
12.1.8软件需求分析规格说明书
12.2活动图建模
12.3系统分析与建模
12.3.1建立对象类静态模型
12.3.2建立对象类动态模型
12.3.3建立系统功能模型
12.3.4系统分析规格说明书
12.4面向对象分析案例
12.4.1需求分析与系统功能
12.4.2创建用例模型
12.4.3用例描述与活动图建模
12.4.4创建对象类静态模型
习题
第13章 面向对象设计
13.1面向对象设计方法
13.1.1面向对象设计概述
13.1.2系统分解
13.1.3系统设计规格说明书
13.2对象类动态模型建模
13.2.1交互模型建模
13.2.2状态模型建模
13.3系统体系结构建模
13.3.1软件系统体系结构模型
13.3.2硬件系统体系结构模型
13.3.3组件图建模
13.3.4配置图建模
13.4面向对象设计案例
13.4.1创建动态模型
13.4.2创建系统体系结构模型
习题
第14章 面向对象软件开发工具——Rational Rose
14.1 Rational Rose简介
14.2 Rational Rose的安装、启动与退出
14.2.1 Rational Rose安装前的准备工作
14.2.2 Rational Rose的安装
14.2.3 Rational Rose的启动与退出
14.3 Rational Rose的界面操作
14.3.1如何创建新模型
14.3.2 Rational Rose的主界面
14.3.3 Rational Rose建模
14.4创建用例图
14.4.1打开用例图窗口
14.4.2用例图工具栏
14.4.3添加参与者与用例
14.4.4设置属性
14.4.5添加关系
14.5创建类图
14.5.1类图编辑窗口
14.5.2创建类
14.5.3建立类之间的关系
14.6创建包图
14.6.1创建包
14.6.2设置包的属性
14.6.3在包中添加元素
14.6.4添加包信息
14.6.5添加包之间的依赖关系
14.7创建状态图
14.7.1状态图编辑窗口
14.7.2状态图建模
14.8创建活动图
14.8.1活动图编辑窗口
14.8.2活动图建模
14.9创建顺序图
14.9.1 顺序图编辑窗口
14.9.2 顺序图建模
14.10创建协作图
14.10.1协作图编辑窗口
14.10.2协作图建模
14.11创建组件图
14.11.1组件图编辑窗口
14.11.2组件图建模
14.12创建配置图
14.12.1配置图编辑窗口
14.12.2配置图建模
14.13 Rational Rose的双向工程
14.13.1双向工程概述
14.13.2正向工程——Java代码生成
14.13.3逆向工程——Java模型重建
14.14数据库设计建模
14.14.1设置DBMS
14.14.2创建数据库关系模式
14.14.3生成数据库代码
14.14.4数据库建模的逆向工程
习题
第四篇 软件项目管理
第15章 Project入门
15.1 Project简介
15.2启动Project Professional
15.3视图
15.4报表
15.5创建新项目计划
15.6设置非工作日
15.7输入项目属性
习题
第16章 软件项目介绍
16.1项目管理背景
16.2项目定义及其特征
16.2.1软件项目特征综述
16.2.2软件项目要素组成
16.3软件项目的生命周期
16.4国内外软件项目现状
习题
第17章 软件项目管理
17.1项目管理概述
17.1.1项目管理定义
17.1.2项目管理类型
17.1.3项目管理的特征及重要性
17.2软件项目管理过程
17.2.1项目范围确定
17.2.2项目计划
17.2.3项目跟踪控制
17.2.4项目结束过程
17.3软件项目管理面对的问题
17.3.1常见的问题
17.3.2潜在的问题
17.4软件项目管理的范围
17.4.1项目管理五要素
17.4.2战术意义上的项目管理
17.4.3战略意义上的项目管理
17.5过程管理与软件项目管理的关系
17.5.1过程定义
17.5.2过程管理在软件项目中的作用
17.5.3过程管理与项目管理的关系
17.6项目管理资格认证
习题
第18章 软件工程管理与技术
18.1软件工程管理概述
18.1.1管理的目的与内容
18.1.2软件估算
18.2软件项目特点、管理的特殊性及软件管理功能
18.2.1软件项目的特点
18.2.2软件管理的功能
18.2.3确定软件项目的工作范围
18.2.4软件管理方案
18.3软件配置管理
18.3.1基线
18.3.2软件配置项(SCI)
18.3.3软件配置管理(SCM)过程
18.4成本估计
18.4.1参数方程
18.4.2标准值法
18.4.3 COCOMO模型
18.5进度计划
18.5.1Gantt图(甘特图)
18.5.2工程网络
18.5.3估算进度
18.5.4关键路径
18.5.5机动时间
18.6人员组织
18.6.1程序设计小组的组织
18.6.2主程序员组
习题
第19章 软件项目计划与管理
19.1软件项目计划
19.1.1项目计划内容
19.1.2项目报告
19.1.3变动控制
19.2软件度量
19.2.1度量、测量和估算
19.2.2面向过程软件度量
19.2.3面向对象软件度量
19.3软件质量度量
19.3.1软件质量定义及三层次度量模型
19.3.2软件质量要素
19.4软件复杂性度量
19.4.1软件复杂性及度量原则
19.4.2结构复杂性度量
19.4.3基于U M L的类复杂性度量
19.5软件可靠性度量
19.5.1软件可靠性的概念
19.5.2软件可靠性估算
19.6软件开发过程管理
19.6.1风险分析
19.6.2进度安排
19.6.3软件开发人员的组织与分工
19.6.4软件项目的开发过程管理
19.7软件能力成熟度模型
19.7.1概述
19.7.2能力成熟度模型
19.7.3能力成熟度集成模型
19.7.4我国软件能力评估标准的制定与实施
19.8确定软硬件资源
19.8.1人力资源
19.8.2硬件
19.8.3软件
19.9质量保证
19.9.1软件质量
19.9.2质量保证措施
习题
第五篇 高级课题
第20章 软件重用技术
20.1软件重用
20.1.1软件重用的概念
20.1.2软件重用的发展历史和重用过程
20.1.3软件重用的方法和主要实现途径
20.2软构件技术
20.2.1构件技术的概念
20.2.2可复用构件的设计准则
20.2.3 JavaBeans构件模型
20.3领域工程
20.3.1域工程
20.3.2域分析
20.3.3域模型
20.3.4域分析方法
20.3.5领域分析过程框架
20.3.6领域分析过程的UML描述
20.3.7域设计
20.3.8域实现
20.4软构件库的开发
20.4.1构件库的基本概念
20.4.2构件库设计与实现
20.5面向对象的软件重用技术
20.6软件重用度量
习题
第21章 设计模式
21.1设计模式简介
21.2 GoF的23种设计模式内容
21.2.1创建型设计模式
21.2.2结构型设计模式
21.2.3行为型设计模式
21.2.4非GoF的设计模式
21.3对设计模式的理解
21.3.1对面向对象的基本原则的领悟
21.3.2讨论几个具体的模式
21.3.3模式在开发平台中的应用
21.4设计模式表述的设计原则
21.4.1通用职责分配软件模式
21.4.2比模式更重要的是原则——设计原则
21.4.3更高层次的设计原则
21.5如何使用设计模式
21.5.1使用设计模式的方式
21.5.2一个项目案例
习题
第22章 敏捷开发
22.1敏捷开发
22.2极限编程
22.3 XP过程中的各个阶段
22.3.1计划
22.3.2测试驱动
22.3.3重构
习题
附录A软件工程标准化文档
A.1可行性分析报告的正文格式
A.2软件开发计划的正文格式
A.3系统/子系统需求规格说明(SSS)的格式
A.4软件测试报告(STR)的格式
参考文献