第1单元 软件工程概述 1
1.1 任务1 软件与软件危机 1
1.1.1 软件的发展 2
1.1.2 软件的特点 2
1.1.3 软件危机 3
1.2 任务2 软件工程 4
1.2.1 软件工程的概念 4
1.2.2 软件工程的基本原理 5
1.2.3 软件工程的基本目标 6
1.3 任务3 软件生存周期 7
1.3.1 软件生存周期的概念 7
1.3.2 软件生存周期的主要阶段 7
1.4 任务4 软件开发模型 8
1.4.1 瀑布模型 9
1.4.2 快速原型模型 10
1.4.3 螺旋模型 11
1.4.4 增量模型 12
1.4.5 喷泉模型 13
第2单元 面向对象技术简介 17
2.1 任务1 面向对象的基本概念 17
2.1.1 面向对象的概念 18
2.1.2 对象 19
2.1.3 类 19
2.1.4 消息与事件 20
2.2 任务2 面向对象的基本特征 21
2.2.1 封装(Encapsulation) 21
2.2.2 继承(Inheritance) 22
2.2.3 多态(Polymorphism) 23
2.3 任务3 面向对象的建模 24
2.3.1 面向对象的建模概述 24
2.3.2 对象模型 25
2.3.3 动态模型 25
2.3.4 功能模型 26
2.3.5 三种模型之间的关系 26
2.4 任务4 面向对象的分析与设计 27
2.4.1 面向对象的分析 27
2.4.2 面向对象的设计 30
第3单元 UML语言基础 34
3.1 任务1 UML概述 34
3.1.1 UML的发展 34
3.1.2 UML的内容 36
3.1.3 UML的特点 37
3.1.4 UML的应用领域 37
3.2 任务2 UML工具 38
3.2.1 UML主要工具介绍 38
3.2.2 Rational Rose简介 39
3.3 任务3 UML结构 43
3.3.1 UML语言组成 44
3.3.2 UML基本元素 44
3.3.3 关系元素 48
3.3.4 图和视图 50
3.3.5 规则和机制 51
第4单元 类图和对象图 56
4.1 任务1 类和对象 56
4.1.1 类 56
4.1.2 对象 57
4.2 任务2 类图 57
4.2.1 类图的概念 57
4.2.2 UML中的类 58
4.2.3 名字、属性和操作 58
4.3 任务3 类图中的关系 60
4.3.1 关联关系 61
4.3.2 通用化 61
4.3.3 依赖关系 62
4.3.4 精化关系 63
4.4 任务4 对象图 63
4.4.1 什么是对象 64
4.4.2 对象图的表示 64
4.4.3 阅读对象图的方法 65
第5单元 包图 69
5.1 任务1 包图的概念 69
5.1.1 包图的定义 70
5.1.2 包的作用 70
5.1.3 包中的元素 70
5.2 任务2 包的表示 70
5.2.1 包的命名 71
5.2.2 包元素的命名 71
5.2.3 包的可见性 72
5.2.4 包的构造型 72
5.3 任务3 包图中的关系 73
5.3.1 依赖关系 73
5.3.2 泛化关系 74
5.4 任务4 创建和阅读包图 74
5.4.1 寻找包 74
5.4.2 消除循环包依赖 75
5.4.3 阅读包图的方法 75
第6单元 用例图 80
6.1 任务1 用例图概述 80
6.1.1 用例图的概念 81
6.1.2 系统 82
6.1.3 角色 82
6.1.4 用例 84
6.2 任务2 绘制用例图 87
6.2.1 设计用例 87
6.2.2 测试用例 89
6.2.3 实现用例 89
第7单元 交互图 96
7.1 任务1 协作与交互 96
7.1.1 协作 97
7.1.2 交互 97
7.2 任务2 顺序图 98
7.2.1 顺序图的概念 98
7.2.2 使用格式 99
7.2.3 并发对象 101
7.2.4 定义迭代和约束的标签 101
7.2.5 创建和破坏对象 101
7.2.6 递归 102
7.3 任务3 协作图 103
7.3.1 协作图的概念 103
7.3.2 消息流 104
7.3.3 链接 105
7.3.4 对象的生命周期 105
7.3.5 使用协作图 106
7.3.6 模板 107
7.4 任务4 交互图的使用 107
7.4.1 协作图和顺序图的关系 108
7.4.2 何时使用交互图 108
第8单元 活动图 111
8.1 任务1 活动图概述 111
8.1.1 活动图的概念 112
8.1.2 活动图的作用 113
8.1.3 活动图的表示 113
8.2 任务2 活动图的使用 114
8.2.1 动作和转移 114
8.2.2 泳道 115
8.2.3 对象 116
8.2.4 信号 117
8.2.5 何处使用活动图 117
8.3 任务3 用活动图进行建模 118
8.3.1 商业建模的元素 118
8.3.2 描述商业建模的动作 119
第9单元 状态机图 124
9.1 任务1 状态机图的概念 124
9.1.1 状态机图的定义 124
9.1.2 状态机图的作用 125
9.1.3 状态机图的构成 125
9.2 任务2 状态机图的表示 125
9.2.1 状态的表示 126
9.2.2 转换的表示 126
9.2.3 分支的表示 128
9.3 任务3 转换的分类 128
9.3.1 外部转换 129
9.3.2 内部转换 129
9.3.3 自动转换 129
9.3.4 复合转换 130
9.4 任务4 状态的分类 130
9.4.1 简单状态 130
9.4.2 复合状态 131
9.5 任务5 状态机图的建立 132
9.5.1 寻找主要状态 132
9.5.2 确定状态间转换 133
9.5.3 详细描述每个状态和转换 134
9.5.4 把简单状态机图转换为复合状态机图 134
第10单元 交互概述图 137
10.1 任务1 交互概述图概述 137
10.1.1 交互概述图的定义 137
10.1.2 交互概述图的组成 138
10.2 任务2 制作交互概述图 139
10.2.1 阅读交互概述图 140
10.2.2 绘制交互概述图 141
第11单元 构件图 144
11.1 任务1 构件的概念 144
11.1.1 构件的定义 144
11.1.2 构件与类 145
11.1.3 构件分类 145
11.2 任务2 构件图的概念 145
11.2.1 构件图的定义 146
11.2.2 构件图的作用 146
11.2.3 构件图的构成元素 146
11.3 任务3 构件图的表示 146
11.3.1 无标识接口的构件表示法 147
11.3.2 有标识接口的构件表示法 147
11.3.3 构件间的关系 147
11.4 任务4 构件图的分类 148
11.4.1 简单构件图 148
11.4.2 嵌套构件图 149
11.5 任务5 构件图的应用 150
11.5.1 对可执行程序建模 150
11.5.2 对源代码建模 150
第12单元 部署图 153
12.1 任务1 部署图的概念 153
12.1.1 部署图的定义 153
12.1.2 部署图的作用 154
12.1.3 部署图的构成元素 154
12.2 任务2 部署图的表示 154
12.2.1 节点 154
12.2.2 连接 156
12.3 任务3 部署图的应用 157
12.3.1 设计阶段 157
12.3.2 实现阶段 157
第13单元 UML应用实例——网络教学系统建模 160
13.1 任务1 网络教学系统的需求分析 160
13.1.1 系统功能需求 160
13.1.2 数据信息管理模块 161
13.1.3 基本业务模块 161
13.1.4 信息浏览、查询模块 161
13.2 任务2 系统的UML基本模型 162
13.2.1 系统的用例图 162
13.2.2 系统的时序图 164
13.2.3 系统的协作图 165
13.2.4 系统的状态图 167
13.2.5 系统的活动图 168
13.3 任务3 系统中的类和系统的配置与实现 170
13.3.1 类图的生成 170
13.3.2 各个类之间的关系 171
13.3.3 系统的配置与实现 172
参考文献 176