首页>参考读物>计算机科学与技术>软件与程序设计

Enterprise Java with UML中文版(第2版)
作者 : Charles Thomas Arrington, Syed H.Rayhan
译者 : 马波
出版日期 : 2005-09-19
ISBN : 7-111-17273-6
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 498
开本 : 16开
原书名 : Enterprise Java with UML(Second Edition)
原出版社: John Wiley & Sons
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书第1版在业界广受好评。这是本书的第2版,它详尽而全面地向读者展示了如何在软件系统开发的整个过程中利用UML构建更好的企业级Java系统。作者深入研究了开发团队可能遇到的各种问题,并解释说明了以各种不同组合使用各种技术的利弊。作者通过一步步深入探究开发过程,展示了在每一步中如何使用UML,它如何影响实现方案,以及如何最终转化为Java代码。此外,本书还示范了如何利用UML选择合适的技术以满足应用的需求。这种方法将帮助读者创建强大的解决方案,共享设计思想,并能在整个开发周期内追踪设计决议。
  在新的一版中还提供了采用J2EE、UML-EJB映射、J2EE设计模式、Web服务以及其他诸多技术进行开发的信息。本书以Java开发者为读者,帮助读者:
  ●深入理解面向对象建模理论和实践
  ●批评性地复审各种UML软件模型
  ●使用UML从用户的角度创建详细的问题概要
  ●使用各种Java技术提供一种可视的、平衡考虑了各种因素的解决方案并撰写文档
  本书的配套网站上可以下载书中所演示应用的完整代码以及其他一些软件,它们可以辅助读者开始使用UML、Java和Web服务。

图书特色

图书前言

OMG  简  介
  对象管理组织(Object Management Group,简称OMG)是一个具有开放式成员资格的非营利性组织,它为实现软件应用互操作而定义并维护各种计算机工业规范。为了实现组织目标,OMG针对分布式计算制定了开放的标准和规范,这些标准和规范涵盖了从分析、设计,到基础软件设施,再到几乎所有企业级中间件平台上定义的应用对象和构件的方方面面。OMG的成员包括了计算机业界几乎所有的大型公司和数以百计的中小型公司。现在,绝大部分对企业应用和Internet计算的发展方向起决定作用的公司都是OMG指导委员会的成员。
  OMG的旗舰规范是多平台的模型驱动架构(Model Driven Architecture,简称MDA),它也是OMG未来各个规范的基础。通过统一建模和中间件空间,MDA实现了对应用系统整个生命周期的支持:从分析和设计,到实现和部署,再到维护和演进。基于标准的、平台独立的统一建模语言(Unified Modeling Language,简称UML)模型,基于MDA的应用和标准可以在多个中间件平台上无差异地表述和实现。很大一部分实现可以由支持MDA的工具自动产生,支持MDA的工具还能产生跨平台的调用,从而真正实现互操作环境。由于UML模型不随具体实现技术的变化而改变,因而基于MDA的开发能够最大化软件ROI—它实现了跨企业应用集成。MDA于2001年9月被各OMG成员采纳并成为OMG规范的基础,这是分布式计算领域前所未有的一次进展。欲进一步了解MDA,请访问www.omg.org/mda。
  OMG的建模规范构成了MDA的基础。这些规范包括:统一建模语言(UML),元对象工具(MetaObject Facility,简称MOF),XML元数据交换规范(XML Metadata Interchange,简称XMI)以及公共数据仓库元模型(Common Warehouse Metamodel,简称CWM)。作为分析和设计表述的工业标准,UML针对需求获取阶段定义了用例图和活动图,针对设计阶段定义了类图和对象图,针对部署阶段定义了包图和子系统图,此外还有其他6种类型的图可供使用。MOF为应用系统定义了标准的元模型,从而使在多种工具和知识库之间实现UML模型的交换成为可能。而XML标准化了用于交换的数据格式。最后,CWM在数据仓库领域建立了元模型,最终完成了OMG在建模空间实现标准化的目标。
  公共对象请求代理架构(Common Object Request Broker Architecture,简称CORBA)是OMG制定的一个厂商中立、系统独立的中间件标准。基于OMG/ISO接口定义语言(Interface Definition Language,简称IDL)和Internet ORB交互协议(Internet Inter-ORB Protocol,简称IIOP),CORBA已经成为一项成熟的技术,市场上已有多达70种ORB(Object Request Brokers)以及数以百计的相关产品。通过提供包括目录、分布式事件处理、事务、容错以及安全在内的大量健壮服务,CORBA不但满足了基本业务计算的各种需求,还进一步上升到了Internet和企业计算的层次。CORBA的各种专用版本还成为了分布式实时计算和分布式嵌入式系统的基础。
  基于上述技术基础,OMG领域工具(OMG Domain Facilities)标准化了贯穿各个领域的供应和服务链中的公共对象,这些领域包括电讯、医疗保健、制造、运输、金融和保险、生物技术、公共事业、航空以及军事和民防后勤。这些领域工具最初用OMG IDL定义;因而应用范围限于CORBA。目前OMG成员正在通过构建相应领域架构的UML模型对其进行扩展以支持MDA,随后按照标准MDA进程将在这些平台上制定标准并进行实现,例如Web服务、XML/SOAP、企业级JavaBeans以及其他技术。作为OMG的第一个基于MDA的规范,Gene Expression Facility在该组织走上MDA道路后不到6个月内被采纳。在一个详尽的UML模型基础上,该规范完全由流行的XML语言实现。
  简而言之,OMG为计算机工业提供了一个开放的、厂商中立的、历经验证的过程来建立和推广标准。OMG将其所有的规范都公布在网站www.omg.org上,大家可以免费获取。来自OMG数以百计的成员公司中的代表每年都会五次汇集于世界各地召开为期一周的会议,讨论、推进OMG的技术。OMG欢迎各界嘉宾莅临会议。如果希望得到邀请,请通过电子邮件发送请求到info@omg.org或者登录网站www.omg.org/news.meetings/tc/guest.htm。
  OMG成员资格向所有公司、科研院所或者政府部门开放。欲进一步了解OMG,请联系OMG总部,电话+1-781-444-0404,传真+1-781-444-0320,电子邮件info@omg.org,或者登录网站www.omg.org。

作者简介

Charles Thomas Arrington, Syed H.Rayhan:Charles Thomas Arrington:  C.T. Arrington 是Capital One公司的构架师和开发经理,他致力于用Java进行N层构架系统的构建和开发。他拥有长达11年的软件开发经验,经验涉及各种领域。此外,他还是Rational Software认证的教师,以及Sun认证Java程序员、开发者和构架师。 Syed H. Rayhan 是一位用Java进行企业应用开发的构架师。目前,他是一家《财富》排名前100强的金融公司的咨询师,主要负责用J2EE系统实现复杂的对客户抵押业务的支持。他拥有长达9年的企业应用开发经验,主要客户为《财富》前500强金融公司。他的兴趣包括分布式应用构架、面向对象的分析和设计、设计模式,目前又对Web服务情有独钟。
Syed H.Rayhan:  Syed H. Rayhan 是一位用Java进行企业应用开发的构架师。目前,他是一家《财富》排名前100强的金融公司的咨询师,主要负责用J2EE系统实现复杂的对客户抵押业务的支持。他拥有长达9年的企业应用开发经验,主要客户为《财富》前500强金融公司。他的兴趣包括分布式应用构架、面向对象的分析和设计、设计模式,目前又对Web服务情有独钟。

译者简介

马波:暂无简介

图书目录

第1章  用UML对Java建模 1
1.1  什么是建模 2
1.1.1  简化 2
1.1.2  不同的视角 2
1.1.3  通用符号 3
1.2  UML 3
1.3  用UML对软件系统建模 10
1.3.1  客户的角度 10
1.3.2  开发者的角度 10
1.4  建模过程 11
1.4.1  需求收集 11
1.4.2  分析 11
1.4.3  技术选择 11
1.4.4  架构 11
1.4.5  设计和实现 12
1.5  网站上的内容 12
1.6  下一步 12
第2章  利用UML收集需求 13
2.1  准备好了吗 13
2.2  什么是好的需求 14
2.2.1  寻找合适的人 14
2.2.2  倾听相关人员的需求 15
2.2.3  开发一个可理解的需求 15
2.2.4  详细和完整地描述需求 18
2.2.5  重构用例模型 20
2.3  收集用户需求的准则 26
2.3.1  集中在问题上 26
2.3.2  不要放弃 26
2.3.3  不要走得太远 26
2.3.4  对过程要有信心 27
2.4  如何检测不好的需求 28
2.4.1  问题1:进度压力太大 28
2.4.2  问题2:愿景不明朗 29
2.4.3  问题3:过早的架构和设计 30
2.5  下一步 30
第3章  为考勤卡应用程序收集需求 31
3.1  听相关人员说 31
3.2  构建用例图 32
3.2.1  寻找参与者 33
3.2.2  寻找用例 34
3.2.3  确定参与者和用例之间的关系 35
3.3  描述细节 36
3.4  收集更多的需求 43
3.5  修订用例模型 45
3.5.1  修订用例图 45
3.5.2  修订用例文档 47
3.6  下一步 55
第4章  用UML进行面向对象分析简介 57
4.1  准备好了吗 57
4.1.1  可靠的需求 57
4.1.2  用例分级 58
4.2  什么是面向对象分析 59
4.2.1  分析模型 59
4.2.2  与用例模型的关系 59
4.2.3  面向对象分析的步骤 60
4.3  寻找候选对象 60
4.3.1  寻找对象的准则 60
4.3.2  寻找对象的步骤 62
4.4  描述行为 66
4.4.1  寻找行为的准则 67
4.4.2  描述行为的步骤 68
4.5  描述类 70
4.5.1  描述类的准则 71
4.5.2  描述类的步骤 72
4.6  下一步 75
第5章  考勤卡应用程序分析模型 77
5.1  用例分级 77
5.1.1  分级系统 77
5.1.2  评估“Extract Time Entries”用例 80
5.1.3  评估“Create Charge Code”用例 80
5.1.4  评估“Change Password”用例 81
5.1.5  评估“Login”用例 81
5.1.6  评估“Record Time”用例 82
5.1.7  评估“Create Employee”用例 82
5.1.8  选择第一次迭代的用例 83
5.2  寻找候选对象 83
5.2.1  寻找实体对象 84
5.2.2  寻找边界对象 87
5.2.3  寻找控制类 87
5.2.4  寻找生命周期类 88
5.3  描述对象交互 88
5.3.1  为“Login”添加假设的行为 88
5.3.2  为“Login”构建顺序图 89
5.3.3  验证“Login”序列 91
5.3.4  其他用例的顺序图和类图 92
5.4  描述类 94
5.4.1  寻找“Login”中的关系 95
5.4.2  寻找“Extract Time Entries”中的关系 96
5.4.3  寻找“Record Time”中的关系 96
5.5  下一步 97
第6章  从选择技术的角度描述系统 99
6.1  准备好了吗 99
6.2  将分析类分组 100
6.2.1  边界类:用户界面 100
6.2.2  边界类:系统接口 101
6.2.3  控制类、实体类和生命周期类 101
6.3  描述每一个组 101
6.3.1  用户界面复杂度 102
6.3.2  用户界面的部署约束 103
6.3.3  用户的数量和类型 104
6.3.4  可用带宽 105
6.3.5  系统接口的类型 106
6.3.6  性能和可伸缩性 107
6.4  考勤卡应用程序的技术需求 108
6.4.1  寻找分析类的分组 108
6.4.2  用户界面复杂度 108
6.4.3  用户界面的部署约束 109
6.4.4  用户的数量和类型 110
6.4.5  可用带宽 110
6.4.6  系统接口的类型 111
6.4.7  性能和可伸缩性 111
6.5  下一步 113
第7章  为共享服务评估候选技术 115
7.1  技术模板 115
7.2  Java日志类库 116
7.2.1  惊人的细节 116
7.2.2  优势 125
7.2.3  不足 126
7.2.4  兼容技术 126
7.2.5  采用成本 126
7.3  应用程序异常处理 126
7.3.1  异常处理的简要回顾 126
7.3.2  应用程序异常处理的目标 130
7.3.3  优势 133
7.3.4  不足 133
7.3.5  兼容技术 133
7.3.6  采用成本 133
7.4  使用JCE保护数据 134
7.4.1  术语 134
7.4.2  惊人的细节:用对称加密算法保护数据 135
7.4.3  用非对称加密算法进行数据和密钥交换 139
7.4.4  密钥管理 145
7.4.5  优势 146
7.4.6  不足 146
7.4.7  兼容技术 146
7.4.8  采用成本 146
7.5  使用JSSE进行安全通信 146
7.5.1  惊人的细节 147
7.5.2  优势 152
7.5.3  不足 153
7.5.4  兼容技术 153
7.5.5  采用成本 153
7.6  Java管理扩展API——JMX 1.2 153
7.6.1  JMX整体架构 153
7.6.2  JMX术语 154
7.6.3  惊人的细节 155
7.6.4  优势 176
7.6.5  不足 176
7.6.6  兼容技术 176
7.6.7  采用成本 176
7.6.8  适用性 177
7.7  结论 177
7.8  下一步 177
第8章  HTML产生框架 179
8.1  设计目标 179
8.1.1  目标1:支持视图的模块结构 180
8.1.2  目标2:简化HTML的生成 180
8.1.3  目标3:可扩展性和独立性 181
8.2  按目标进行设计 182
8.2.1  按目标1进行设计:支持视图的模块结构 182
8.2.2  按目标2进行设计:简化HTML的生成 185
8.2.3  按目标3进行设计:可扩展性和独立性 186
8.2.4  HTML产生框架的设计 187
8.2.5  Core包 187
8.2.6  内容基元包 188
8.2.7  表单基元包 188
8.2.8  布局基元包 189
8.3  实现 190
8.3.1  Core包 191
8.3.2  ContentElements包 193
8.3.3  FormPrimitives包 199
8.3.4  Layout包 205
8.3.5  单元测试HTML基元 212
8.3.6  一个特定应用的HTML产生器 214
8.4  优势 219
8.5  不足 219
8.6  兼容技术 219
8.7  采用成本 219
8.7.1  UI设计人员 219
8.7.2  Java开发者 219
8.8  适用性 220
8.9  下一步 220
第9章  为用户界面类评估候选技术 221
9.1  Swing 221
9.1.1  惊人的细节 222
9.1.2  优势 230
9.1.3  不足 230
9.1.4  兼容技术 230
9.1.5  采用成本 230
9.1.6  适用性 231
9.2  Java  servlet 232
9.2.1  惊人的细节 234
9.2.2  示例:网上调查系统 238
9.2.3  优势 250
9.2.4  不足 250
9.2.5  兼容技术 251
9.2.6  采用成本 251
9.2.7  适用性 252
9.3  JSP 253
9.3.1  惊人的细节 253
9.3.2  优势 256
9.3.3  不足 256
9.3.4  兼容技术 256
9.3.5  采用成本 256
9.3.6  适用性 257
9.4  JSP和servlet 257
9.5  为考勤系统选择技术 259
9.6  结论 260
9.7  下一步 260
第10章  为系统接口评估候选技术 261
10.1  XML 261
10.1.1  惊人的细节 262
10.1.2  优势 263
10.1.3  不足 264
10.1.4  兼容技术 264
10.1.5  采用成本 264
10.1.6  适用性 264
10.2  SAX 265
10.2.1  惊人的细节 265
10.2.2  优势 274
10.2.3  不足 274
10.2.4  兼容技术 274
10.2.5  采用成本 274
10.3  DOM 274
10.3.1  惊人的细节 275
10.3.2  优势 281
10.3.3  不足 281
10.3.4  兼容技术 281
10.3.5  采用成本 281
10.4  JMS 282
10.4.1  术语 283
10.4.2  惊人的细节 284
10.4.3  优势 302
10.4.4  不足 302
10.4.5  兼容技术 302
10.4.6  采用成本 302
10.5  结论 303
10.6  下一步 303
第11章  为系统接口评估Web服务技术 305
11.1  揭开Web服务的神秘面纱 305
11.1.1  SOAP协议 309
11.1.2  UDDI 313
11.1.3  WSDL 315
11.2  Java中的Web服务 319
11.2.1  JAXP 319
11.2.2  JAXR 323
11.2.3  JAX-RPC 333
11.3  结论 340
11.4  下一步 340
第12章  为控制类和实体类评估候选技术 341
12.1  RMI 341
12.1.1  惊人的细节 341
12.1.2  RMI的一般用法 344
12.1.3  优势 347
12.1.4  不足 347
12.1.5  兼容技术 347
12.1.6  采用成本 348
12.2  JDBC 348
12.2.1  惊人的细节 349
12.2.2  优势 353
12.2.3  不足 353
12.2.4  兼容技术 354
12.2.5  采用成本 354
12.2.6  RMI和JDBC的适用性 354
12.3  EJB 2.0 355
12.3.1  惊人的细节 358
12.3.2  优势 362
12.3.3  不足 363
12.3.4  兼容技术 363
12.3.5  采用成本 363
12.3.6  适用性 364
12.4  技术选择范例 364
12.5  结论 365
12.6  下一步 366
第13章  软件架构 367
13.1  准备好了吗 367
13.1.1  清晰准确地理解所面对的问题 367
13.1.2  清晰准确地理解候选技术 368
13.2  软件架构的目标 368
13.2.1  可扩展性 368
13.2.2  可维护性 369
13.2.3  可靠性 369
13.2.4  可伸缩性 369
13.3  UML和架构 369
13.3.1  包 370
13.3.2  包依赖关系 371
13.3.3  子系统 373
13.4  软件架构的准则 375
13.4.1  内聚性 375
13.4.2  耦合性 375
13.5  建立软件架构 375
13.5.1  架构师 376
13.5.2  架构建立过程 376
13.6  考勤系统的样本架构 378
13.6.1  确立目标 378
13.6.2  将类分组并评估各个类 378
13.6.3  展示技术 383
13.6.4  针对准则和目标对架构进行评估 383
13.7  下一步 384
第14章  设计入门 385
14.1  什么是设计 385
14.2  准备好了吗 385
14.3  设计的必要性 385
14.3.1  生产力和士气 386
14.3.2  一种具有适应能力的交流工具 386
14.3.3  进度安排和工作分配 387
14.4  设计模式 387
14.4.1  益处 387
14.4.2  使用 388
14.5  规划设计工作 388
14.5.1  为整个设计建立目标 389
14.5.2  建立设计准则 390
14.5.3  寻找独立的设计工作 391
14.6  设计包或者子系统 391
14.7  考勤系统的设计工作 392
14.8  下一步 392
第15章  设计TimecardDomain包和TimecardWorkflow包 393
15.1  确定工作目标 393
15.1.1  性能和可靠性 393
15.1.2  重用 394
15.1.3  可扩展性 394
15.2  对前一步工作进行评审 394
15.2.1  评审分析模型 394
15.2.2  评审架构约束 400
15.3  针对目标进行设计 401
15.4  将设计应用于用例 402
15.4.1  “Login”用例的设计 402
15.4.2  “Record  Time”用例的设计 405
15.4.3  “Extract  Time  Entries”用例的设计 407
15.5  设计方案评估 412
15.6  实现 413
15.6.1  EJB实现策略 414
15.6.2  User实体bean 414
15.6.3  Timecard实体bean 419
15.6.4  TimeEntry实体bean 424
15.6.5  LoginWorkflow无状态会话bean 425
15.6.6  RecordTimeWorkflow有状态会话bean 429
15.6.7  支持类 429
15.6.8  用JUnit进行单元测试 434
15.7  下一步 437
第16章  设计TimecardUI包 439
16.1  确定设计目标 439
16.1.1  可扩展性 439
16.1.2  可测试性 439
16.2  对前一步工作进行评审 440
16.2.1  评审架构约束 440
16.2.2  评审分析模型 441
16.3  针对目标进行设计 444
16.4  每个用例的设计 445
16.4.1  “Login”用例的设计 445
16.4.2  “Record Time”用例的设计 448
16.5  实现 451
16.6  下一步 460
第17章  BillingSystemInterface的设计 461
17.1  认清目标 461
17.1.1  清晰度 461
17.1.2  性能和可靠性 461
17.1.3  可扩展性 461
17.1.4  可重用性 462
17.2  分析模型的评审 462
17.3  架构的评审 462
17.4  设计 463
17.4.1  “Extract Time Entry”的SOAP/XML请求 463
17.4.2  “Extract Time Entry”的SOAP/XML响应 465
17.4.3  “Extract Time Entries”用例的设计 468
17.4.4  实现 470
17.5  结论 493
附录A  配套网站上的内容 495
附录B  额外资源 497

教学资源推荐
作者: Brian W.Kernighan,Rob Pike
作者: [美] 丹尼尔·卡斯沃姆(Daniel Kusswurm) 著
作者: [美]本贾尼·斯特劳斯特卢普(Bjarne Stroustrup) 著
参考读物推荐
作者: 王小科 寇长梅 等编著
作者: 洪石丹
作者: [美]詹姆斯·R.佩恩(James R. Payne) 著