书籍详情
实用软件工程
作者:(澳)马塞斯扎克、等
出版社:机械工业
出版时间:2007-01-01
ISBN:9787111200086
定价:¥69.00
购买这本书可以去
内容简介
本书从实践的角度详细介绍软件工程的方方面面。第一部分讨论软件生命周期、建模语言、工程工具、项目计划和过程管理等基础知识,后三个部分围绕案例分析介绍软件工程的实践过程与方法。本书内容由浅入深、逐层展开,很自然地穿插介绍了面向对象的建模、软件体系结构设计、设计模式、组件、数据工程、界面设计、重构等知识。通过贯穿全文的案例分析讲述如何以迭代增量式开发方法设计企业级应用,以实例方式有机结合现代软件工程最前沿的新技术,使读者在实践过程中掌握软件工程技术的精髓。另外,在每一章后都提供针对性很强的复习题、解答题和案例分析题,可帮助读者加深理解基本概念。.本书既可作为计算机专业高年级本科生、研究生的教材或参考书,也可供软件开发人员参考。本书讨论了如何将软件工程理论与行业实践联系起来,即集中精力进行系统设计和实现以及着手解决重要的实践问题。书中以一个主要的案例分析为中心展开叙述,提供了针对大型系统开发的软件工程技术,全面论述了开发生命周期、建模语言、工程工具、项目规划以及过程管理。通过主要案例研究的三次迭代,说明了迭代和增量式开发的概念。本书不仅为学生提供系统学习软件工程的方法,而且为IT专业人士提供软件工程的最佳实践。..主要特色着重介绍面向对象的建模和程序设计。针对需求分析和详细设计,详细讲解UML和模式的应用。突出数据库和数据工程在软件工程中的重要性。介绍组件和业务对象的方法。覆盖多层解决方案 (包括GUI和Web客户端),通过Web和应用服务器扩展到数据库。强调应用体系结构设计和重构。本书配套网站包含更多信息:www.booksites.net/maciaszak。...
作者简介
作者简介:Leszek A. Maciaszek 澳大利亚悉尼麦考里大学副教授。他是企业级应用的设计与实现、数据库和对象技术方面的专业顾问。除本书外,他还著有《Database Design and Implementation》和《Requirements Analysis and Systems Design》等书。译者简介:胡长军,教授,1963年生于河北沧州。2001年在北京大学获得理学博士学位,2002~2004年在清华大学从事博士后研究工作。现任北京科技大学信息工程学院博士生导师、学术委员会委员、副院长。主要研究方向为软件工程与数据工程,高性能计算与网格计算。近年来先后主持国家自然科学基金、国家攻关、国家863、国际合作以及省部级课题十五项。在软件工程领域,结合领域应用特点,系统地研究领域软件集成技术,提出了通过领域公共数据模型和公共事物对象设计、互操作规范化实现领域软件协同工作和数据共享的技术路线。在网络计算平台上,设计实现了一个领域软件协同计算软件平台,通过该平台可以实现领域软件的数据共享、构件重用、虚拟应用开发、协同工作等功能。这些成果已在业内广泛应用。在并行计算领域,建立了多范例、多粒度并行计算模型及其一套并行编译与优化技术。提出并实验求证了合理确定并行范例和并行粒度是提高网络计算系统效率的关键因素的学术观点。基于这一观点,参照典型规范HPF和OpenMP,定义了一套面向网络计算平台的多范例、多粒度并行语言接口规范,从而为程序员根据应用问题特点划分计算资源和任务提供了手段。结合科学研究,在国内外重要学术期刊上发表了30余篇论文,其中多数被三大检索系统收录,并被广泛引用。获国家发明专利两项。获省部级科研成果奖励三项。
目录
第一部分 软件项目
第1章 软件开发生命周期 3
1.1 软件工程的精髓 4
1.1.1 软件系统比企业信息系统的范围小 4
1.1.2 软件过程是业务过程的一部分 5
1.1.3 软件工程不同于传统工程 6
1.1.4 软件工程不只是程序设计 7
1.1.5 软件工程需要建模 8
1.1.6 软件系统是复杂的 9
1.2 生命周期阶段 11
1.2.1 需求分析 11
1.2.2 系统设计 12
1.2.3 实现 13
1.2.4 集成和部署 13
1.2.5 运行和维护 15
1.3 生命周期模型 15
1.3.1 带反馈的瀑布式生命周期 16
1.3.2 迭代增量式的生命周期 17
小结 23
复习题 25
第2章 软件建模语言 26
2.1 结构化建模语言 27
2.1.1 数据流建模 27
2.1.2 实体-联系建模 29
2.2 面向对象建模语言 30
2.2.1 类图 31
2.2.2 用例图 34
2.2.3 交互图 35
2.2.4 状态图 38
2.2.5 活动图 40
2.2.6 实现图 41
小结 43
复习题 44
解答题 44
第3章 软件工程工具 46
3.1 项目管理工具 47
3.1.1 项目调度和控制 47
3.1.2 用战略眼光来安排项目和性能管理 48
3.1.3 项目管理与基于Web的协作及内容管理的统一 48
3.1.4 项目管理与基于Web的组合管理的统一 50
3.1.5 项目管理中的度量 51
3.1.6 项目管理中的风险管理 52
3.2 系统建模工具 54
3.2.1 需求管理 54
3.2.2 可视化UML建模 57
3.2.3 报表生成 59
3.2.4 数据库建模 59
3.3 集成开发环境 60
3.3.1 常规的编程任务 61
3.3.2 与软件建模集成 66
3.3.3 企业应用开发 67
3.3.4 与业务组件集成 68
3.3.5 与变更和配置管理集成 69
3.4 变更和配置管理工具 71
3.4.1 变更管理支持 71
3.4.2 版本管理支持 72
3.4.3 系统构建支持 74
3.4.4 再工程支持 75
小结 77
复习题 78
解答题 78
第4章 软件项目计划和跟踪 80
4.1 项目计划制定 80
4.2 项目进度安排 83
4.2.1 任务. 里程碑和可交付成果 83
4.2.2 用条形图表示任务调度 84
4.2.3 资源和资源日历 86
4.2.4 用条形图表示人工量驱动的进度安排 87
4.2.5 资源分配不足和过度分配 88
4.3 项目预算估算 90
4.3.1 进度驱动的预算估算 91
4.3.2 算法预算估算 94
4.4 跟踪项目进展 98
4.4.1 跟踪进度 99
4.4.2 跟踪预算 101
小结 106
复习题 107
解答题 107
第5章 软件过程管理 110
5.1 人员管理 111
5.1.1 选拔和激励人员 111
5.1.2 项目沟通 113
5.1.3 团队建设 116
5.2 风险管理 116
5.2.1 风险识别 117
5.2.2 风险评估 118
5.2.3 风险处理 120
5.3 质量管理 121
5.3.1 软件质量 121
5.3.2 质量控制 123
5.3.3 质量保证 126
5.4 变更和配置管理 129
5.4.1 需求变更 130
5.4.2 工件的版本 131
5.4.3 缺陷和扩展 132
5.4.4 度量 134
小结 136
复习题 137
第二部分 从需求分析经由体系结构设计到软件发布
第6章 业务对象模型 141
6.1 广告费用评估—业务 141
6.2 业务环境图 142
6.3 业务用例模型 143
6.3.1 业务用例和业务执行者 143
6.3.2 AEM业务用例模型 143
6.3.3 AEM可替换业务用例模型 144
6.4 业务术语表 145
6.5 业务类模型 146
6.5.1 业务实体 147
6.5.2 AEM业务类模型 147
6.5.3 AEM业务类模型的替换模型 148
小结 149
复习题 149
讨论题 149
案例题 149
解答题 150
案例分析 150
小案例—广告费用评估 150
练习 151
第7章 领域对象模型 152
7.1 联系人管理—领域 152
7.2 领域用例模型 153
7.2.1 用例和执行者 153
7.2.2 用例联系 153
7.2.3 联系人管理的用例模型 154
7.2.4 联系人管理的可替换用例模型 156
7.3 领域术语表 157
7.4 领域类模型 158
7.4.1 类和属性 159
7.4.2 类之间的联系 159
7.4.3 联系人管理的类模型 160
7.4.4 联系人管理的可替换类模型 161
小结 162
复习题 163
讨论题 163
案例题 163
解答题 163
案例分析 163
小案例—时间日志 164
练习 165
第8章 第1次迭代需求和对象模型 166
8.1 用例模型 167
8.2 用例文档 167
8.2.1 概要描述. 前置条件和后置条件 168
8.2.2 基本流程 168
8.2.3 子流程 169
8.2.4 异常流程 171
8.3 概念类 171
8.4 补充规格说明 172
小结 174
复习题 174
讨论题 174
案例题 174
解答题 175
案例分析 175
小案例—时间日志 175
第9章 体系结构设计 176
9.1 体系结构层和依赖性管理 176
9.1.1 体系结构模块 177
9.1.2 包依赖性 178
9.1.3 层依赖性 179
9.1.4 类依赖性 180
9.1.5 继承依赖性 181
9.1.6 方法依赖性 184
9.1.7 接口 187
9.1.8 事件处理 190
9.1.9 相识 194
9.2 体系结构框架 197
9.2.1 模型-视图-控制器 197
9.2.2 表示-控制-中介者-实体-基础 199
9.3 体系结构模式 203
9.3.1 外观 203
9.3.2 抽象工厂 204
9.3.3 责任链 205
9.3.4 观察者模式 205
9.3.5 中介者 207
小结 208
复习题 209
解答题 209
案例分析 209
小案例—联系人信息管理 210
练习 213
第10章 数据库设计和编程 214
10.1 从软件工程角度介绍关系数据库 214
10.1.1 表 215
10.1.2 引用完整性 216
10.1.3 概念和逻辑数据库模型 218
10.1.4 实现业务规则 219
10.1.5 数据库应用逻辑程序设计 220
10.1.6 索引 222
10.2 将临时对象映射成持久记录 225
10.2.1 对象数据库. SQL:1999和阻抗不匹配 225
10.2.2 对象-关系映射 226
10.3 用于电子邮件管理的数据库设计和创建 230
10.3.1 数据库模型 231
10.3.2 创建数据库模式 232
10.3.3 示例数据库内容 233
小结 234
复习题 234
讨论题 234
案例分析题 235
解答题 235
案例分析 235
小案例—联系人信息管理 235
第11章 类设计和交互设计 236
11.1 从用例需求中寻找类 237
11.1.1 从电子邮件管理系统的用例需求中寻找类 237
11.1.2 电子邮件管理系统的初始类设计 240
11.2 类设计的体系结构细化 241
11.2.1 电子邮件管理系统类设计的体系结构细化 244
11.2.2 体系结构细化后电子邮件管理系统的类设计 245
11.2.3 类的实例化 246
11.3 交互 246
11.3.1 序列图 247
11.3.2 通信图 249
11.3.3 交互概述图 249
11.4 电子邮件管理系统中的交互 251
11.4.1 “登录”交互 251
11.4.2 “退出”交互 252
11.4.3 “查看待发邮件”交互 253
11.4.4 “显示邮件文本”交互 254
11.4.5 “发送邮件”交互 254
11.4.6 “错误的用户名和密码”交互 255
11.4.7 “错误的选项”交互 256
11.4.8 “邮件过多”交互 257
11.4.9 “不能发送邮件”交互 257
小结 257
复习题 258
讨论题 258
案例分析题 259
解答题 259
案例分析练习 259
小案例—时间日志系统 259
小案例—联系人信息管理系统 260
第12章 编程和测试 261
12.1 基于软件工程的Java快速指南 261
12.1.1 类 261
12.1.2 类的关联与集合 264
12.1.3 Java中的数据库访问 270
12.2 测试驱动开发 276
12.2.1 JUnit框架 277
12.2.2 邮件管理系统测试驱动开发 279
12.3 验收测试和回归测试 283
12.3.1 电子邮件管理系统的测试脚本 285
12.3.2 测试输入. 输出和电子邮件管理系统的回归测试 286..
12.3.3 电子邮件管理系统中测试脚本的实现 288
12.4 第1次迭代运行时的截图 291
小结 294
复习题 295
解答题 296
指南和案例分析练习 296
小案例—时间日志系统 297
小案例—联系人信息管理系统 297
第13章 第1次迭代代码评注 298
13.1 代码概览 298
13.2 acquaintance包 300
13.2.1 IAConstants接口 300
13.2.2 IAEmployee接口 300
13.2.3 IAContact接口 301
13.2.4 IAOutMessage接口 302
13.3 presentation包 303
13.3.1 PMain类 303
13.3.2 PConsole类 304
13.4 control包 310
13.5 entity包 315
13.5.1 IEDataSupplier接口 315
13.5.2 EEmployee类 317
13.5.3 EContact类 318
13.5.4 EOutMessage类 320
13.6 mediator包 322
13.7 foundation包 329
13.7.1 FConnection类 329
13.7.2 FReader类 331
13.7.3 FWriter类 331
小结 332
第1次迭代问题和练习 332
第三部分 软件重构与用户界面设计
第14章 第2次迭代需求与对象模型 334
14.1 用例模型 334
14.2 用例文档 335
14.2.1 概要描述. 前置条件和后置条件 335
14.2.2 基本流程 336
14.2.3 子流程 337
14.2.4 异常流程 340
14.3 概念类和关系表 341
14.4 补充规格说明 342
小结 343
复习题 343
第15章 体系结构重构 344
15.1 重构的目标代码 344
15.2 重构方法 345
15.2.1 提取类 345
15.2.2 方法归类 346
15.2.3 提取接口 347
15.3 重构模式 349
15.3.1 标识映射模式 349
15.3.2 数据映射器 350
15.3.3 可替换的数据映射器策略 353
15.3.4 延迟加载 355
15.3.5 工作单元 362
15.4 重构后的类模型 363
小结 365
复习题 365
讨论题 365
案例分析题 366
解答题 366
第16章 用户界面设计与编程 367
16.1 用户界面设计准则 367
16.1.1 用户控制 368
16.1.2 界面一致性 369
16.1.3 界面容错性 369
16.1.4 界面可适应性 370
16.2 用户界面组件 370
16.2.1 容器 371
16.2.2 菜单 375
16.2.3 控件 376
16.3 用户界面事件处理 378
16.4 模式与用户界面 381
16.4.1 观察者模式 381
16.4.2 装饰模式 383
16.4.3 责任链模式 383
16.4.4 命令模式 384
16.5 邮件管理的用户界面 385
小结 388
复习题 389
解答题 390
第17章 基于Web的用户界面的设计与编程 391
17.1 Web客户端层可用的技术 392
17.1.1 基本HTML 392
17.1.2 脚本语言
第1章 软件开发生命周期 3
1.1 软件工程的精髓 4
1.1.1 软件系统比企业信息系统的范围小 4
1.1.2 软件过程是业务过程的一部分 5
1.1.3 软件工程不同于传统工程 6
1.1.4 软件工程不只是程序设计 7
1.1.5 软件工程需要建模 8
1.1.6 软件系统是复杂的 9
1.2 生命周期阶段 11
1.2.1 需求分析 11
1.2.2 系统设计 12
1.2.3 实现 13
1.2.4 集成和部署 13
1.2.5 运行和维护 15
1.3 生命周期模型 15
1.3.1 带反馈的瀑布式生命周期 16
1.3.2 迭代增量式的生命周期 17
小结 23
复习题 25
第2章 软件建模语言 26
2.1 结构化建模语言 27
2.1.1 数据流建模 27
2.1.2 实体-联系建模 29
2.2 面向对象建模语言 30
2.2.1 类图 31
2.2.2 用例图 34
2.2.3 交互图 35
2.2.4 状态图 38
2.2.5 活动图 40
2.2.6 实现图 41
小结 43
复习题 44
解答题 44
第3章 软件工程工具 46
3.1 项目管理工具 47
3.1.1 项目调度和控制 47
3.1.2 用战略眼光来安排项目和性能管理 48
3.1.3 项目管理与基于Web的协作及内容管理的统一 48
3.1.4 项目管理与基于Web的组合管理的统一 50
3.1.5 项目管理中的度量 51
3.1.6 项目管理中的风险管理 52
3.2 系统建模工具 54
3.2.1 需求管理 54
3.2.2 可视化UML建模 57
3.2.3 报表生成 59
3.2.4 数据库建模 59
3.3 集成开发环境 60
3.3.1 常规的编程任务 61
3.3.2 与软件建模集成 66
3.3.3 企业应用开发 67
3.3.4 与业务组件集成 68
3.3.5 与变更和配置管理集成 69
3.4 变更和配置管理工具 71
3.4.1 变更管理支持 71
3.4.2 版本管理支持 72
3.4.3 系统构建支持 74
3.4.4 再工程支持 75
小结 77
复习题 78
解答题 78
第4章 软件项目计划和跟踪 80
4.1 项目计划制定 80
4.2 项目进度安排 83
4.2.1 任务. 里程碑和可交付成果 83
4.2.2 用条形图表示任务调度 84
4.2.3 资源和资源日历 86
4.2.4 用条形图表示人工量驱动的进度安排 87
4.2.5 资源分配不足和过度分配 88
4.3 项目预算估算 90
4.3.1 进度驱动的预算估算 91
4.3.2 算法预算估算 94
4.4 跟踪项目进展 98
4.4.1 跟踪进度 99
4.4.2 跟踪预算 101
小结 106
复习题 107
解答题 107
第5章 软件过程管理 110
5.1 人员管理 111
5.1.1 选拔和激励人员 111
5.1.2 项目沟通 113
5.1.3 团队建设 116
5.2 风险管理 116
5.2.1 风险识别 117
5.2.2 风险评估 118
5.2.3 风险处理 120
5.3 质量管理 121
5.3.1 软件质量 121
5.3.2 质量控制 123
5.3.3 质量保证 126
5.4 变更和配置管理 129
5.4.1 需求变更 130
5.4.2 工件的版本 131
5.4.3 缺陷和扩展 132
5.4.4 度量 134
小结 136
复习题 137
第二部分 从需求分析经由体系结构设计到软件发布
第6章 业务对象模型 141
6.1 广告费用评估—业务 141
6.2 业务环境图 142
6.3 业务用例模型 143
6.3.1 业务用例和业务执行者 143
6.3.2 AEM业务用例模型 143
6.3.3 AEM可替换业务用例模型 144
6.4 业务术语表 145
6.5 业务类模型 146
6.5.1 业务实体 147
6.5.2 AEM业务类模型 147
6.5.3 AEM业务类模型的替换模型 148
小结 149
复习题 149
讨论题 149
案例题 149
解答题 150
案例分析 150
小案例—广告费用评估 150
练习 151
第7章 领域对象模型 152
7.1 联系人管理—领域 152
7.2 领域用例模型 153
7.2.1 用例和执行者 153
7.2.2 用例联系 153
7.2.3 联系人管理的用例模型 154
7.2.4 联系人管理的可替换用例模型 156
7.3 领域术语表 157
7.4 领域类模型 158
7.4.1 类和属性 159
7.4.2 类之间的联系 159
7.4.3 联系人管理的类模型 160
7.4.4 联系人管理的可替换类模型 161
小结 162
复习题 163
讨论题 163
案例题 163
解答题 163
案例分析 163
小案例—时间日志 164
练习 165
第8章 第1次迭代需求和对象模型 166
8.1 用例模型 167
8.2 用例文档 167
8.2.1 概要描述. 前置条件和后置条件 168
8.2.2 基本流程 168
8.2.3 子流程 169
8.2.4 异常流程 171
8.3 概念类 171
8.4 补充规格说明 172
小结 174
复习题 174
讨论题 174
案例题 174
解答题 175
案例分析 175
小案例—时间日志 175
第9章 体系结构设计 176
9.1 体系结构层和依赖性管理 176
9.1.1 体系结构模块 177
9.1.2 包依赖性 178
9.1.3 层依赖性 179
9.1.4 类依赖性 180
9.1.5 继承依赖性 181
9.1.6 方法依赖性 184
9.1.7 接口 187
9.1.8 事件处理 190
9.1.9 相识 194
9.2 体系结构框架 197
9.2.1 模型-视图-控制器 197
9.2.2 表示-控制-中介者-实体-基础 199
9.3 体系结构模式 203
9.3.1 外观 203
9.3.2 抽象工厂 204
9.3.3 责任链 205
9.3.4 观察者模式 205
9.3.5 中介者 207
小结 208
复习题 209
解答题 209
案例分析 209
小案例—联系人信息管理 210
练习 213
第10章 数据库设计和编程 214
10.1 从软件工程角度介绍关系数据库 214
10.1.1 表 215
10.1.2 引用完整性 216
10.1.3 概念和逻辑数据库模型 218
10.1.4 实现业务规则 219
10.1.5 数据库应用逻辑程序设计 220
10.1.6 索引 222
10.2 将临时对象映射成持久记录 225
10.2.1 对象数据库. SQL:1999和阻抗不匹配 225
10.2.2 对象-关系映射 226
10.3 用于电子邮件管理的数据库设计和创建 230
10.3.1 数据库模型 231
10.3.2 创建数据库模式 232
10.3.3 示例数据库内容 233
小结 234
复习题 234
讨论题 234
案例分析题 235
解答题 235
案例分析 235
小案例—联系人信息管理 235
第11章 类设计和交互设计 236
11.1 从用例需求中寻找类 237
11.1.1 从电子邮件管理系统的用例需求中寻找类 237
11.1.2 电子邮件管理系统的初始类设计 240
11.2 类设计的体系结构细化 241
11.2.1 电子邮件管理系统类设计的体系结构细化 244
11.2.2 体系结构细化后电子邮件管理系统的类设计 245
11.2.3 类的实例化 246
11.3 交互 246
11.3.1 序列图 247
11.3.2 通信图 249
11.3.3 交互概述图 249
11.4 电子邮件管理系统中的交互 251
11.4.1 “登录”交互 251
11.4.2 “退出”交互 252
11.4.3 “查看待发邮件”交互 253
11.4.4 “显示邮件文本”交互 254
11.4.5 “发送邮件”交互 254
11.4.6 “错误的用户名和密码”交互 255
11.4.7 “错误的选项”交互 256
11.4.8 “邮件过多”交互 257
11.4.9 “不能发送邮件”交互 257
小结 257
复习题 258
讨论题 258
案例分析题 259
解答题 259
案例分析练习 259
小案例—时间日志系统 259
小案例—联系人信息管理系统 260
第12章 编程和测试 261
12.1 基于软件工程的Java快速指南 261
12.1.1 类 261
12.1.2 类的关联与集合 264
12.1.3 Java中的数据库访问 270
12.2 测试驱动开发 276
12.2.1 JUnit框架 277
12.2.2 邮件管理系统测试驱动开发 279
12.3 验收测试和回归测试 283
12.3.1 电子邮件管理系统的测试脚本 285
12.3.2 测试输入. 输出和电子邮件管理系统的回归测试 286..
12.3.3 电子邮件管理系统中测试脚本的实现 288
12.4 第1次迭代运行时的截图 291
小结 294
复习题 295
解答题 296
指南和案例分析练习 296
小案例—时间日志系统 297
小案例—联系人信息管理系统 297
第13章 第1次迭代代码评注 298
13.1 代码概览 298
13.2 acquaintance包 300
13.2.1 IAConstants接口 300
13.2.2 IAEmployee接口 300
13.2.3 IAContact接口 301
13.2.4 IAOutMessage接口 302
13.3 presentation包 303
13.3.1 PMain类 303
13.3.2 PConsole类 304
13.4 control包 310
13.5 entity包 315
13.5.1 IEDataSupplier接口 315
13.5.2 EEmployee类 317
13.5.3 EContact类 318
13.5.4 EOutMessage类 320
13.6 mediator包 322
13.7 foundation包 329
13.7.1 FConnection类 329
13.7.2 FReader类 331
13.7.3 FWriter类 331
小结 332
第1次迭代问题和练习 332
第三部分 软件重构与用户界面设计
第14章 第2次迭代需求与对象模型 334
14.1 用例模型 334
14.2 用例文档 335
14.2.1 概要描述. 前置条件和后置条件 335
14.2.2 基本流程 336
14.2.3 子流程 337
14.2.4 异常流程 340
14.3 概念类和关系表 341
14.4 补充规格说明 342
小结 343
复习题 343
第15章 体系结构重构 344
15.1 重构的目标代码 344
15.2 重构方法 345
15.2.1 提取类 345
15.2.2 方法归类 346
15.2.3 提取接口 347
15.3 重构模式 349
15.3.1 标识映射模式 349
15.3.2 数据映射器 350
15.3.3 可替换的数据映射器策略 353
15.3.4 延迟加载 355
15.3.5 工作单元 362
15.4 重构后的类模型 363
小结 365
复习题 365
讨论题 365
案例分析题 366
解答题 366
第16章 用户界面设计与编程 367
16.1 用户界面设计准则 367
16.1.1 用户控制 368
16.1.2 界面一致性 369
16.1.3 界面容错性 369
16.1.4 界面可适应性 370
16.2 用户界面组件 370
16.2.1 容器 371
16.2.2 菜单 375
16.2.3 控件 376
16.3 用户界面事件处理 378
16.4 模式与用户界面 381
16.4.1 观察者模式 381
16.4.2 装饰模式 383
16.4.3 责任链模式 383
16.4.4 命令模式 384
16.5 邮件管理的用户界面 385
小结 388
复习题 389
解答题 390
第17章 基于Web的用户界面的设计与编程 391
17.1 Web客户端层可用的技术 392
17.1.1 基本HTML 392
17.1.2 脚本语言
猜您喜欢