第1篇 基础理论篇 2
项目1 软件工程概述 2
任务1.1 软件工程 3
1.1.1 软件的定义及其特点 3
1.1.2 软件危机 4
1.1.3 软件工程的概念和原则 5
任务1.2 软件生命周期与软件开发模型 6
1.2.1 软件生命周期 6
1.2.2 软件开发模型 9
任务1.3 建模工具 10
小结 12
实验实训 13
习题 13
项目2 统一建模语言(UML) 15
任务2.1 UML的概述 15
2.1.1 UML的概念 15
2.1.2 UML的发展过程 16
2.1.3 UML的主要内容 16
任务2.2 UML的概念模型 17
2.2.1 UML有三个基本的构造块(事物、关系、图) 17
2.2.2 UML的规则 21
2.2.3 UML中的公共机制 21
任务2.3 UML的静态建模机制 22
2.3.1 用例图 22
2.3.2 类图 25
2.3.3 对象图 30
2.3.4 包 30
2.3.5 使用类图的几个建议 31
任务2.4 UML的动态建模机制 31
2.4.1 对象之间的交互 32
2.4.2 状态图 33
2.4.3 交互图 36
2.4.4 活动图 38
2.4.5 4种图的运用 39
小结 40
实验实训 40
实训一 Microsoft Office Visio 2003的基础操作 40
实训二 Rational Rose的基础操作 42
实训三 学生管理系统练习 45
习题 46
第2篇 分析与设计篇 49
项目3 项目市场调研 49
任务3.1 系统的研发背景 49
3.1.1 图书馆管理系统的提出 49
3.1.2 国内、外研发现状 50
任务3.2 软件开发计划 51
3.2.1 问题定义 51
3.2.2 可行性分析 52
3.2.3 可行性分析报告 55
3.2.4 系统的开发计划 61
小结 62
实验实训 63
习题 63
项目4 软件项目需求分析 65
任务4.1 调查系统的需求 65
4.1.1 功能需求和技术需求 65
4.1.2 系统相关者 66
4.1.3 建立系统需求原型 66
任务4.2 模型 67
4.2.1 模型的作用及类型 67
4.2.2 逻辑模型和物理模型 68
任务4.3 事件 69
4.3.1 事件的概念和类型 69
4.3.2 事件定义 70
4.3.3 图书馆管理系统中的事件 71
任务4.4 事物 72
4.4.1 事物的概念和类型 72
4.4.2 事物之间的关系 73
4.4.3 事物的属性 74
4.4.4 数据实体和对象 74
任务4.5 实体—联系图 75
任务4.6 类图 76
4.6.1 用面向对象的方法分析事物 77
4.6.2 类图的符号 78
4.6.3 建模的目标 79
4.6.4 需求分析规格说明书编写提纲 79
小结 80
实验实训 81
实训一 使用Visio 2003绘制流程图 81
实训二 学生管理系统练习 84
习题 85
项目5 软件项目总体设计 87
任务5.1 总体设计的基本内容 87
5.1.1 软件设计定义 87
5.1.2 总体设计的目标与步骤 88
5.1.3 总体设计的基本任务 88
5.1.4 总体设计的准则 89
任务5.2 结构化的软件设计 91
5.2.1 结构化设计的基本概念 91
5.2.2 结构化的设计方法 93
5.2.3 运行环境设计 95
任务5.3 面向对象的软件设计 96
5.3.1 面向对象的设计方法 96
5.3.2 系统行为——图书馆管理系统的用例图 98
5.3.3 对象交互——图书馆管理系统的交互图 104
5.3.4 对象行为——图书馆管理系统的状态图 109
小结 111
实验实训 111
实训一 使用Rational Rose绘制图书馆管理系统的用例图 111
实训二 使用Rational Rose绘制图书馆管理系统的顺序图 115
实训三 使用Rational Rose绘制图书馆管理系统的状态图&(1 18
实训四 学生管理系统练习 121
习题 121
项目6 软件项目详细设计 123
任务6.1 系统详细设计的基本内容 123
6.1.1 详细设计概述 123
6.1.2 详细设计的基本任务 124
6.1.3 详细设计方法 125
任务6.2 图书馆管理系统的详细设计 128
6.2.1 系统包图 128
6.2.2 类的类型以及类之间的关系 129
6.2.3 图书馆管理系统的类图 130
6.2.4 设计类图的开发 131
任务6.3 用户界面设计 132
6.3.1 用户界面设计应具有的特点 132
6.3.2 用户界面设计的基本类型和基本原则 133
6.3.3 图书馆管理系统的界面设计 135
小结 139
实验实训 139
实训一 使用Rational Rose绘制图书馆管理系统的类图 139
实训二 学生管理系统练习 143
习题 144
第3篇 维护与管理篇 147
项目7 软件项目实现 147
任务7.1 结构化程序设计 147
7.1.1 结构化程序设计的原则 147
7.1.2 结构化程序的基本结构与特点 148
7.1.3 结构化程序设计原则和方法 148
任务7.2 面向对象程序设计 149
7.2.1 数据抽象和封装 149
7.2.2 继承 150
7.2.3 多态 151
任务7.3 程序设计语言 151
7.3.1 程序设计语言 151
7.3.2 程序设计语言分类 152
任务7.4 程序复杂度 154
7.4.1 时间复杂度 154
7.4.2 空间复杂度 154
小结 154
实验实训 155
习题 155
项目8 软件测试 157
任务8.1 软件测试基础 157
8.1.1 什么是软件测试 157
8.1.2 软件测试的目的和原则 158
8.1.3 程序错误分类 159
任务8.2 软件测试方法 161
8.2.1 黑盒测试和白盒测试 161
8.2.2 软件测试步骤 162
任务8.3 面向对象软件测试 167
8.3.1 面向对象软件测试的定义 167
8.3.2 测试计划 168
8.3.3 面向对象的测试 169
8.3.4 测试类的层次结构 172
8.3.5 分布式对象测试 172
任务8.4 软件测试报告 174
8.4.1 软件测试报告 174
8.4.2 测试报告模板 174
小结 178
实验实训 178
实训一 黑盒测试 178
实训二 白盒测试 181
实训三 单元测试 183
习题 184
项目9 软件维护 185
任务9.1 软件维护的概念 185
9.1.1 软件维护的目的及类型 185
9.1.2 软件维护的定义 187
9.1.3 软件维护的策略 187
任务9.2 软件维护的成本 188
9.2.1 影响软件维护的因素 188
9.2.2 软件维护成本的分析 189
任务9.3 软件维护方法 189
9.3.1 软件维护报告 189
9.3.2 软件维护事件流 190
9.3.3 评价软件维护活动 190
任务9.4 软件可维护性 191
9.4.1 软件可维护性的定义 191
9.4.2 提高可维护性的方法 191
小结 195
实验实训 195
习题 196
项目10 软件项目管理 198
任务10.1 软件项目管理的特点和内容 198
10.1.1 软件项目管理的特点 198
10.1.2 软件项目管理的内容 199
任务10.2 风险管理 202
10.2.1 风险来源 203
10.2.2 风险识别 205
10.2.3 风险应对控制 206
任务10.3 项目人力资源管理 209
10.3.1 组织规划 210
10.3.2 人员组织 212
10.3.3 团队发展 213
任务10.4 进度计划管理 215
10.4.1 制定项目进度计划 216
10.4.2 界定项目的范围和进度 217
任务10.5 质量管理 219
10.5.1 质量计划 220
10.5.2 质量保证 222
10.5.3 质量控制 223
小结 225
实验实训 226
实训一 Microsoft Project软件的初步练习 226
实训二 利用Microsoft Project进行时间进度的安排 227
实训三 Project 2003练习 230
习题 231
参考文献 232