前言
第1 章 软件开发过程概述
1.1 软件开发基本概念1
1.1.1 基本概念1
1.1.2 迭代增量式的开发过程2
1.1.3 其他开发模型3
1.2 需求分析4
1.3 设计4
1.4 实现4
1.5 测试4
1.5.1 测试目的4
1.5.2 测试集5
1.5.3 设计测试集的方法5
1.6 维护5
1.7 风险分析6
1.8 面向对象的方法8
1.8.1 面向对象的软件开发方法8
1.8.2 面向对象的软件工程思想9
1.8.3 软件质量10
1.8.4 可视化建模10
1.9 CMM简介10
1.9.1 初始级11
1.9.2 可重复级11
1.9.3 已定义级12
1.9.4 已管理级12
1.9.5 优化级12
1.10 程序重组技术13
1.10.1 程序重组13
1.10.2 模式14
1.11 小结14
习题1 15
第2章 UML概述16
2.1 软件建模和UML16
2.2 UML的发展过程18
2.3 UML的结构20
2.3.1 基本构造块20
2.3.2 规则21
2.3.3 公共机制21
2.4 UML的视图24
2.4.1 用例视图24
2.4.2 逻辑视图26
2.4.3 进程视图27
2.4.4 组件视图27
2.4.5 配置视图28
2.4.6 包的简单概念28
2.5 UML的主要特点28
2.6 使用UML语言的好处30
2.6.1 帮助学习面向对象技术30
2.6.2 帮助与领域专家进行交流31
2.6.3 帮助理解全局31
2.7 UML语言的应用32
2.8 小结32
习题2 34
第3章 面向对象的基本概念35
3.1 面向对象基础知识35
3.2 面向对象的基本原则35
3.2.1 抽象36
3.2.2 封装37
3.2.3 继承38
3.2.4 分类39
3.2.5 多态40
3.2.6 聚合40
3.2.7 关联40
3.2.8 消息通信41
3.2.9 粒度控制41
3.2.10 行为分析42
3.3 OOA模型42
3.3.1 基本模型42
3.3.2 补充模型42
3.4 发现对象并建立对象层43
3.4.1 将问题域和系统责任作为出发点43
3.4.2 正确运用抽象原则43
3.4.3 寻找候选对象的基本方法44
3.4.4 审查和筛选对象44
3.4.5 异常情况的检查和调整45
3.5 定义数据成员45
3.5.1 寻找数据成员的一般方法45
3.5.2 审查与筛选数据成员46
3.6 定义成员函数46
3.7 如何发现基类与派生类的结构47
3.7.1 学习当前领域的分类学知识47
3.7.2 回顾基类与派生类结构的两种定义47
3.7.3 考察类的成员48
3.8 面向对象的高级课题48
3.8.1 抽象类48
3.8.2 多重继承49
3.8.3 界面与接口51
3.8.4 内部类53
3.8.5 包53
3.8.6 组件53
3.9 小结54
习题3 54
第4章 用例分析55
4.1 需求55
4.1.1 需求获取55
4.1.2 需求分析55
4.1.3 编写需求规格说明书56
4.1.4 需求验证56
4.1.5 需求管理56
4.2 用例分析57
4.3 用户目标和系统交互功能60
4.4 用例图60
4.4.1 活动者61
4.4.2 用例和用例图61
4.4.3 项目词汇表62
4.4.4 事件流63
4.5 用例图内元素的关系66
4.6 用例图设计实例68
4.6.1 需求68
4.6.2 分析68
4.6.3 事件流68
4.6.4 用例图70
4.7 用例规格说明70
4.8 小结71
习题4 72
第5章 活动图74
5.1 活动图的概念74
5.2 活动图的基本要素75
5.3 泳道76
5.4 用例的活动图77
5.5 活动的分解78
5.6 何时使用活动图79
5.7 活动图的图标79
5.8 小结80
习题5 81
第6章 交互图82
6.1 概述82
6.2 如何创建交互图83
6.3 序列图的组成84
6.4 序列图的实例86
6.5 协作图的组成..87
6.6 协作图的实例88
6.7 异步消息. 并行和竞争89
6.7.1 对象的建立和撤销90
6.7.2 异步消息和并行90
6.7.3 竞争91
6.8 序列图和协作图的比较92
6.9 序列图和协作图中的标记93
6.10 小结93
习题6 94
第7章 类图96
7.1 类和对象96
7.2 寻找类97
7.3 属性和操作98
7.3.1 属性99
7.3.2 操作99
7.3.3 可视性101
7.3.4 类和类的实例101
7.4 CRC卡103
7.5 继承与多态性104
7.5.1 继承104
7.5.2 多态性104
7.6 关联105
7.6.1 聚集108
7.6.2 组合109
7.6.3 关联的分析109
7.7 注意事项109
7.7.1 正确使用类图109
7.7.2 其他注意事项110
7.8 选课系统的类图111
7.8.1 设计类图111
7.8.2 选课系统中类. 属性和操作113
7.9 类图的基本UML标记117
7.10 小结118
习题7 119
第8章 状态图121
8.1 状态图的基础知识121
8.2 状态图组成121
8.3 状态图设计实例123
8.4 并发状态图123
8.5 何时使用状态图124
8.6 状态图使用的基本图符125
8.7 小结126
习题8 126
第9章 持久对象127
9.1 持久对象的概念127
9.2 持久对象策略128
9.2.1 基于面向对象数据库的解决方案128
9.2.2 基于关系数据库的解决方案129
9.2.3 两种策略的比较129
9.3 实现类和对象的映射130
9.3.1 类和对象的映射130
9.3.2 属性映射成字段130
9.3.3 属性取值映射成域131
9.4 关系数据库中实现继承131
9.5 关系映射133
9.5.1 关联与聚集/组合之间的区别133
9.5.2 关系数据库中实现关联133
9.6 小结135
习题9 136
第10章 组件图137
10.1 组件图的基础知识137
10.2 组件图的基本要素137
10.3 组件图实例138
10.4 组件和接口139
10.5 组件图标记139
10.6 小结140
习题10 140
第11章 布局图141
11.1 布局图的基础知识141
11.2 布局图的基本要素141
11.3 使用布局图的考虑142
11.4 布局图的组成要素142
11.5 小结142
习题11 143
第12章 软件体系结构144
12.1 软件体系结构144
12.2 流程处理系统146
12.3 层次结构147
12.4 客户机/服务器系统149
12.4.1 视图控制模型MVC149
12.4.2 两层的客户机/服务器结构151
12.4.3 “瘦”客户机和对象标志152
12.4.4 基于MVC的网上应用154
12.4.5 三层客户机/服务器模型155
12.4.6 多层客户机/服务器模型158
12.4.7 组件对象模型和分布式组件对象技术159
12.5 集群系统162
12.6 小结163
习题12 166
第13章 档案管理系统设计实例167
13.1 用例模型167
13.2 序列图167
13.3 类图171
13.3.1 员工工号管理类图172
13.3.2 员工基本信息管理类图172
13.3.3 员工家庭信息管理类图173
13.3.4 员工社会关系管理类图173
13.3.5 员工政治面貌管理类图173
13.3.6 员工工作简历管理类图174
13.3.7 员工资质信息管理类图174
13.3.8 员工职务任免管理信息类图175
13.4 类的属性和操作175
13.4.1 边界类175
13.4.2 控制类175
13.4.3 实体类177
13.5 小结180
第14章 系统总体方案设计实例181
14.1 电力电量管理软件181
14.2 电力电量软件功能要求及其体系结构181
14.2.1 电力电量管理软件的功能要求181
14.2.2 电力电量系统的硬件结构183
14.3 电力电量软件系统的总体设计184
14.3.1 需求分析184
14.3.2 电力电量软件高层架构方案187
14.3.3 电力电量系统流程设计187
第15章 UML支持环境190
15.1 UML集成化支持环境190
15.1.1 UML可视化建模系统191
15.1.2 UML模拟系统193
15.1.3 UML软件质量控制193
15.1.4 UML代码生成系统194
15.1.5 UML逆向工程194
15.2 Rose简介194
15.2.1 使用Rose2003设计软件的思路195
15.2.2 使用Rose2003创建模型195
15.2.3 Rose界面的组成197
15.3 小结203
习题15 205
参考文献206