第一章 绪论 1
1.1 软件 1
1.2 软件工程 2
1.3 软件生命周期 2
1.3.1 制定计划(Panning) 2
1.3.2 开发(Development) 2
1.3.3 运行维护(Maintenance) 3
1.4 软件开发过程模型 3
1.4.1 瀑布模型(Waterfall model) 3
1.4.2 螺旋模型(Spiral model) 4
1.4.3 喷泉模型(Fountain model) 5
1.4.4 增量模型(Incremental model) 5
1.4.5 演化模型(Evolving model) 6
1.4.6 统一过程模型 RUP(Rational Unified Process) 6
本章小结 7
第二章 软件需来分析 8
2.1 需求分析 8
2.2 需求分析过程 8
2.3 需求分析文档 9
2.4.1 结构化分析方法 10
2.4 需求分析方法 10
2.4.2 Jackson方法 14
2.4.3 面向对象方法 15
本章小结 16
第三章 理解面向对象 17
3.1 面向对象概念 17
3.1.1 类及对象 17
3.1.2 继承(Inheritance) 18
3.1.4 消息(Message) 19
3.1.5 多态性(Polymorphism) 19
3.1.3 聚合(Aggregation) 19
3.1.6 关联(Association) 20
3.1.7 面向对象(Object oriented) 20
3.2 面向对象开发方法 20
3.2.1 OOA/OOD 21
3.2.2 Booch面向对象方法 23
3.2.3 Booch方法过程 26
3.2.4 对象建模技术(OMT) 26
3.2.5 面向对象软件工程(OOSE) 27
本章小结 29
4.1 UML的出现及发展 30
第四章 UML是什么 30
4.2 UML概况 31
4.2.1 UML的主要内容 31
4.2.2 UML的主要特点 32
4.2.3 UML应用领域 33
4.3 UML面向对象分析的一般过程 33
本章小结 35
5.1 用例图 36
5.1.1 角色(Actor) 36
第五章 UML静态建模机制 36
5.1.2 用例 38
5.1.3 例子:定货中心 43
5.1.4 建模体会 51
5.2 类图(Class diagram) 51
5.2.1 类的识别 53
5.2.2 类属性识别 57
5.2.3 类操作识别 59
5.2.4 关联与关联类 61
5.2.5 聚合(Aggregation) 67
5.2.6 泛化(Generalization) 68
5.3 包图 71
本章小结 74
第六章 UML动态建模机制 76
6.1 状态图 77
6.1.1 有关状态图的几个概念 77
6.1.2 状态图的符号表示 77
6.1.3 识别对象状态空间 86
6.1.4 识别状态转移 87
6.1.5 例子:电梯系统 88
6.2 交互模型 91
6.2.1 顺序图 91
6.2.2 合作图 97
6.2.3 交互模型的识别 100
6.2.4 交互模型的例子 101
6.3 活动图模型 104
6.3.1 为什么要引入活动图 104
6.3.2 活动图 104
6.3.3 并发活动建模 109
本章小结 111
第七章 分析模型的测试 112
7.1 分析模型测试的重要性 112
7.2 测试方法 113
7.3 测试过程 114
7.4 用例模型的测试 115
7.5 类模型的测试 117
7.6 类状态模型的测试 120
7.7 典型场景的测试 121
本章小结 122
第八章 UML工具介绍 123
8.1 Rational Rose:全面支持基于UML开发的工具 123
8.1.1 UML的建模支持 123
8.1.4 双向(正向+逆向)工程 128
8.1.3 多语言支持的开发 128
8.1.2 构件化开发 128
8.1.5 全面的团队支持 129
8.1.6 模型的集成管理 129
8.1.7 框架向导 130
8.1.8 Rose的可扩展接口 131
8.1.9 基本报告生成能力 131
8.1.10 CORBA/IDL生成 131
8.1.11 数据库表格生成 132
8.1.12 与MS存储库的集成 132
8.2 Rose的逆向工程 133
8.1.13 Oracle8的正向和逆向工程支持 133
8.1.14 版本控制 133
8.2.1 C++项目的逆向工程 134
8.2.2 逆向分析VC++应用 145
8.2.3 Java项目的逆向工程 149
8.3 UML_Designer:国内开发的支持UML的建模工具 152
8.3.1 对用例模型的支持 152
8.3.2 对活动模型的支持 152
8.3.3 对类模型的支持 153
8.3.4 对状态模型的支持 154
8.3.6 对合作模型的支持 155
8.3.5 对顺序模型的支持 155
8.3.7 对构件模型的支持 156
8.3.8 对配置模型的支持 157
本章小结 157
第九章 实例研究:一个嵌入式实时系统 158
9.1 系统描述 158
9.2 用例模型 159
9.2.1 角色识别 159
9.2.2 用例识别 159
9.3.1 Message类 162
9.3 类模型 162
9.3.2 AudioController类 163
9.3.3 UserMode类 163
9.3.4 UserInterface类 163
9.3.5 UserView类 164
9.3.6 MessageSlot类 164
9.3.7 AudioInput与AudioOutput类 164
9.3.8 类的组织 165
9.4 关注嵌入式:系统外部事件 166
9.5.1 对象交互模型 167
9.5 动态模型 167
9.5.2 活动模型(Activity diagram) 169
9.5.3 对象的动态行为:状态模型 169
9.6 进一步话题:设计说明 171
本章小结 172
第十章 实例研究:会议管理系统 173
10.1 系统描述 173
10.2 用例模型 173
10.2.1 角色识别 174
10.2.2 用例识别 174
10.2.3 模型及用例描述 175
10.3 类模型 178
10.3.1 Meeting类 179
10.3.2 MeetingInstance类 180
10.3.3 MeetingRoom类 180
10.3.4 Attendee类 181
10.3.5 GroupAttendee类 181
10.3.6 Address类 182
10 3.7 PostOffice类 182
10.3.8 Information类 183
10.3.9 AttendeeManagement 183
10.3.11 MeetingAdministration类 184
10.3.10 ReservationCriteria类 184
10.4 系统包图 185
10.4.1 会议包(MeetingPack) 185
10.4.2 人员包(AttendeePack) 186
10.4.3 邮寄包(PostOfficePack) 186
10.5 动态模型 186
10.5.1 对象交互模型 186
10.5.2 对象合作模型 189
10.5.3 活动图模型 189
本章小结 189