首页>参考读物>计算机科学与技术>综合

Enterprise Java with UML中文版
作者 : CT Arrington
译者 : 马波 李雄锋
出版日期 : 2003-07-01
ISBN : 7-111-12246-1
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 418
开本 : 16开
原书名 : Enterprise Java with UML
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书是第一本全面介绍用UML对Java应用程序进行建模的指南。作者通过具体的开发实例深入浅出地介绍了用UML这个建模工具开发面向对象系统的方法,对不同解决方案的优缺点进行比较,分析在开发过程中开发团队所碰到的各种常见问题。在介绍用建模工具开发系统时,本书还提供了开发企业级应用系统的策略以及相关技术,包括XML、servlet、Enterprise JavaBeans、Swing Components、CORBA及RMI等,并讨论如何在不同的技术组合中做出权衡、如何与相关的Java技术相结合进行系统开发。
  本书内容翔实,讲解透彻。通过本书,读者可以对UML建模技术以及面向对象的分析和设计有一个全面而深入的认识和了解。
  随书附带的光盘中包含书中的示例代码。
  对软件系统建模,就是要理解和熟练运用UML。现有的UML图书虽然已经很多,但是像本书这样完全从实战出发讨论实际应用的却少之又少。本书荣获Amazon读者五星评价,被公认为最佳UML入门图书之一。
  作者通过一个样例考勤卡系统,对整个软件开发过程进行细致入微的分析和讨论——从用户需求到最终实现,从建立各种UML图表到完成最后代码,让读者从实际操作中全面系统地理解和掌握UML,学习Java企业级开发的核心知识,使读者对软件开发过程有全新的理解。同时,本书还澄清了许多盲点和误区。所有这些内容,你在下一个项目中就可以参考使用!
  通过本书,你可以:
   进一步加深对面向对象分析与设计的理解
   学会如何在Java开发中灵活使用UML
   广泛了解各种UML软件模型,从中做出正确选择
   学会如何用UML来描述其他的技术和类库,如servlet、XML以及Swing
   本书附带光盘中包括:
   考勤卡系统的全部设计文档和源代码
   如何安装并使用Sun的J2EE运行考勤卡系统的说明

图书特色

CT Arrington是CapitaI One公司的构架师和开发经理,他的专长是n层系统的构架设计。

作者简介

CT Arrington:暂无简介

译者简介

马波 李雄锋:暂无简介

译者序

一个软件工程师的成长之路,拙见以为,简单的说可以是:从对数据结构和算法的认识为开始,对几门语言的熟练掌握为发展,对软件工程过程的理解为关键,对系统构架的认识和运用为目标。期间实现“质”的飞跃又在第三步,它是从coder提升到developer的必经之路。而现代软件工程的一个核心内容就是对开发全过程建模:从需求到分析,从设计到实现再到部署。对软件系统建模,目前来看,也就是对UML的理解和熟练运用。这必须是踏踏实实走好、不能也不可能绕开的一步。
  同样,对任何一个企业、组织来讲,科学、严格的建模过程和基于模型的交流协作也是软件开发中非常重要的一环。任何不进行建模就着手开发的企图,只能以拙劣的设计,并由此导致不能满足用户需求,不可复用以及难以维护而收场。
  统一建模语言(UML)是对面向对象系统建模的开发标准。对于一个软件开发人员而言,用UML进行系统设计,用UML与同事进行交流,并能够从UML模型中建立起系统。但是UML体系庞大,内容繁杂,学习使用都有一定的难度。
  像众多渴望成长的软件工程师一样,译者在刚接触到UML时,也是兴奋加忙乱,逮住三位大师的三卷本一阵猛啃,但是却一直不得要领,其他许多这方面的书籍也大多隔靴搔痒,直到遇到Martin Fowler的《UML Distilled》和本书。Fowler大师的书简洁、清晰,读之有醍醐灌顶、豁然开朗之感,但也正因为其简洁,适于反复揣摩、参考,而不适合做学习UML之样例使用。相比之下,本书内容翔实,循循善诱,著者思路清晰,讲解透彻,且耐心之至——从著者的“致谢”中就可以看出:“……我无法表达对我的家庭的感谢,感谢他们原谅我这种极端自私的行为(废寝忘食的著述——译者注)。我占用了多少个夜晚和周末?又有多少个早晨,我睡眼惺忪地醒来,因为睡眠不足和进度缓慢而脾气暴躁?……”对著者的孜孜不倦由此可见一斑。
  作者具有极其丰富的面向对象设计和实践经验,他坚信:面向对象的分析和设计结合好的软件工程实践能够在健康、稳定的环境中产生优秀的系统。而本书正式对这一理念的最好诠释和示范。
  本书的价值在于对整个软件系统开发过程进行了细致入微的分析、讨论,并通过开发一个样例系统的全过程示范了好的实践方式——作者完全从一个实践者的角度对系统开发中可能遇到的问题一一进行解答,从与相关人员的交流到相关技术的评估、选择;从每一张图如何做到每一段描述、说明如何写。从用户需求到最终实现,在整个开发的每一个环节上,作者都安排了“配套”内容:先讲解了UML(用例、顺序图、类图等等)在此环节上的用途,然后又用考勤卡系统亲自示范相关内容。一路走来我们进行了技术选择(这是多么详细而有用的一个过程!),建立各种UML图表,直到完成代码——所有这一切都是有理有据,落到实处的,你在下一个项目中就可以参考使用!译者就是这样做的,并感觉不但学习了UML,对软件开发过程也有了新的理解,更重要的是澄清了许多盲点和错误观念,真是受益匪浅。
  对于经验丰富的读者,可以关注建立模型的章节,这些章节包含了各种实用技巧和面临各种选择时的评估模板——这在一般的讲述UML理论的书籍中是很少见到的;对于初学者,可以详细揣摩随后的样例系统示范部分,体会理论是如何联系到实际的。
  毫不夸张地说:本书讲述了每一个开发人员都应该具备的知识。It's a MUST read!
                                  慢慢享受吧。
                                  马波 李雄锋
                                  2003年4月

图书目录

第1章 用UML对Java建模导论
1.1 什么是建模
1.1.1 简化
1.1.2 不同的视角
1.1.3 通用符号
1.2 UML
1.3 用UML对软件系统建模
1.3.1 客户的角度
1.3.2 开发者的角度
1.4 建模过程
1.4.1 需求收集
1.4.2 分析
1.4.3 技术选择
1.4.4 构架
1.4.5 设计和实现
1.5 下一步

第2章 利用UML收集需求
2.1 准备好了吗
2.2 什么是好的需求
2.2.1 寻找合适的人
2.2.2 倾听相关人员的需求
2.2.3 开发一个可理解的需求
2.2.4 详细和完整地描述需求
2.2.5 重构用例模型
2.3 收集用户需求的准则
2.3.1 集中在问题上
2.3.2 不要放弃
2.3.3 不要走得太远
2.3.4 对过程要有信心
2.4 如何检测不好的需求
2.4.1 问题1:进度压力太大
2.4.2 问题2:愿景不明朗
2.4.3 问题3:过早的构架和设计
2.5 下一步

第3章 为考勤卡应用程序收集需求
3.1 听相关人员说
3.2 构建用例图
3.2.1 寻找参与者
3.2.2 寻找用例
3.2.3 确定参与者和用例之间的关系
3.3 描述细节
3.4 收集更多的需求
3.5 修订用例模型
3.5.1 修订用例图
3.5.2 修订用例文档
3.6 下一步

第4章 用UML进行面向对象分析简介
4.1 准备好了吗
4.1.1 可靠的需求
4.1.2 用例分级
4.2 什么是面向对象分析
4.2.1 分析模型
4.2.2 与用例模型的关系
4.2.3 面向对象分析的步骤
4.3 寻找候选对象
4.3.1 寻找对象的准则
4.3.2 寻找对象的步骤
4.4 描述行为
4.4.1 寻找行为的准则
4.4.2 描述行为的步骤
4.5 描述类
4.5.1 描述类的规则
4.5.2 描述类的步骤
4.6 下一步

第5章 考勤卡应用程序分析模型
5.1 用例分级
5.1.1 分级系统
5.1.2 评估"Export Time Entries"用例
5.1.3 评估"Create Charge Code" 用例
5.1.4 评估"Change Password"用例
5.1.5 评估"Login"用例
5.1.6 评估"Record Time"用例
5.1.7 评估"Create Employee"用例
5.1.8 选择第一次迭代的用例
5.2 寻找候选对象
5.2.1 寻找实体对象
5.2.2 寻找边界对象
5.2.3 寻找控制类
5.2.4 寻找生命周期类
5.3 描述对象交互
5.3.1 为"Login"添加假设的行为
5.3.2 为"Login"构建顺序图
5.3.3 验证" Login"序列
5.3.4 其他用例的顺序图和类图
5.4 描述类
5.4.1 寻找"Login"中的关系
5.4.2 寻找"Export Time Entries"中的关系
5.4.3 寻找"Record Time''中的关系
5.5 下一步

第6章 从选择技术的角度描述系统
6.1 准备好了吗
6.2 将分析类分组
6.2.1 边界类:用户界面
6.2.2 边界类:系统接口
6.2.3 控制类、实体类和生命周期类
6.3 描述每一个组
6.3.1 用户界面复杂度
6.3.2 用户界面的部署约束
6.3.3 用户的数量和类型
6.3.4 可用带宽
6.3.5 系统接口类型
6.3.6 性能和可伸缩性
6.4 考勤卡应用程序的技术需求
6.4.1 寻找分析类的分组
6.4.2 用户界面复杂度
6.4.3 用户界面的部署约束
6.4.4 用户的数量和类型
6.4.5 可用带宽
6.4.6 系统接口的类型
6.4.7 性能和可伸缩性
6.5 下一步

第7章 为边界类评估候选技术
7.1 技术模板
7.2 Swing
7.2.1 令人生畏的细节
7.2.2 优势
7.2.3 不足
7.2.4 兼容技术
7.2.5 采用成本
7.2.6 合适性
7.3 Java servlet
7.3.1 令人生畏的细节
7.3.2 优势
7.3.3 不足
7.3.4 兼容技术
7.3.5 采用成本
7.3.6 合适性
7.4 XML
7.4.1 令人生畏的细节
7.4.2 优势
7.4.3 不足
7.4.4 兼容技术
7.4.5 采用成本
7.4.6 合适性
7.5 考勤卡系统的技术选择
7.6 结论
7.7 下一步

第8章 为控制类和实体类评估候选技术
8.1 RMI
8.1.1 令人生畏的细节
8.1.2 RMI的一般用法
8.1.3 优势
8.1.4 不足
8.1.5 兼容技术
8.1.6 采用成本
8.2 JDBC
8.2.1 令人生畏的细节
8.2.2 优势
8.2.3 不足
8.2.4 兼容技术
8.2.5 采用成本
8.2.6 RMI和JDBC的合适性
8.3 EJB 1.1
8.3.1 令人生畏的细节
8.3.2 优势
8.3.3 不足
8.3.4 兼容技术
8.3.5 采用成本
8.3.6 合适性
8.4 技术选择范例
8.5 下一步

第9章 软件构架
9.1 准备好了吗
9.1.1 清晰准确地理解所面对的问题
9.1.2 清晰准确地理解候选技术
9.2 软件构架的目标
9.2.1 可扩展性
9.2.2 可维护性
9.2.3 可靠性
9.2.4 可伸缩性
9.3 UML和构架
9.3.1 包
9.3.2 包依赖关系
9.3.3 子系统
9.4 软件构架的准则
9.4.1 内聚性
9.4.2 耦合性
9.5 建立软件构架
9.5.1 构架师
9.5.2 过程
9.6 考勤卡系统的样本构架
9.6.1 确立目标
9.6.2 将类分组并评估各个类
9.6.3 展示技术
9.6.4 抽取子系统
9.6.5 针对准则和目标对构架进行评估
9.7 下一步

第10章 设计入门
10.1 什么是设计
10.2 准备好了吗
10.3 设计的必要性
10.3.1 生产力和士气
10.3.2 一种具有适应能力的交流工作
10.3.3 进度安排和工作分配
10.4 设计模式
10.4.1 益处
10.4.2 使用
10.5 规划设计工作
10.5.1 为整个设计建立目标
10.5.2 建立设计准则
10.5.3 寻找独立的设计工作
10.6 设计包或者子系统
10.7 考勤卡系统的设计工作
10.8 下一步

第11章 设计TimecardDomain包和TimecardWorkflow包
11.1 确定工作目标
11.1.1 性能和可靠性
11.1.2 重用
11.1.3 可扩展性
11.2 对前一步工作进行评审
11.2.1 分析模型的评审
11.2.2 对系统构架约束进行评审
11.2.3 针对目标进行设计
11.3 将设计应用于用例
11.3.1 "Logia''用例的设计
11.3.2 "Record Time"用例的设计
11.3.3 "Export Time Entries''用例的设计
11.4 评估设计方案
11.5 实现
11.5.1 User实体bean
11.5.2 Timecard实体bean
11.5.3 LoginWorkflow无状态会话bean
11.5.4 RecordTimeWorkflow有状态会话bean
11.5.5 支撑类
11.5.6 ChargeCodeHome
11.5.7 ChargeCodeWrapper.java
11.5.8 Node.java
11.6 下一步

第12章 为生成HTML页面进行设计
12.1 设计目标
12.1.1 目标1:支持视图的模块结构
12.1.2 目标2:简单化HTML的生成
12.1.3 目标3:支持偏好
12.1.4 目标4:可扩展性和封装
12.2 按目标进行设计
12.2.1 按目标1进行设计:支持视图的模块结构
12.2.2 按目标2进行设计:简单化HTML的生成
12.2.3 按目标3进行设计:支持偏好
12.2.4 按目标4进行设计:可扩展性和封装
12.3 填充细节
12.3.1 登录界面
12.3.2 时间条目
12.4 实现
12.4.1 IHtmlProducer.java
12.4.2 ComboBoxProducer.java
12.4.3 FormProducer.java
12.4.4 PageProducer.java
12.4.5 SubmitButtonProducer
12.4.6 TableProducer.java
12.4.7 TabularInputFormProducer.java
12.4.8 TextFieldProducer.java,
12.4.9 TextProducer.java
12.4.10 IConcreteProducer.java
12.4.11 ProducerFactory.java
12.4.12 FormProducerGeneric.java
12.4.13 PageProducerGeneric.java
12.4,14 TableProducerGeneric.iava
12.4.15 TabularInputFormProducerGeneric.Java
12.5 下一步

第13章 TimecardUI包的设计
13.1 确定设计目标
13.1.1 可扩展性
13.1.2 可测试性
13.2 评审先前的步骤
13.2.1 评审构架约束
13.2.2 评审分析模型
13.3 针对目标进行设计
13.4 每个用例的设计
13.4.1 为"Login"用例进行设计
13.4.2 为"Record Time''用例进行设计
13.5 实现
13.5.1 LoginServlet.java
13.5.2 RecordTimeServlet.java
13.5.3 BasicServlet.java
13.6 下一步

第14章 BillingSystemInterface的设计
14.1 认清目标
14.1.1 清晰度
14.1.2 性能和可靠性
14.1.3 可扩展性
14.1.4 重用潜力
14.2 分析模型的评审
14.3 构架的评审
14.4 设计
14.4.1 输出指定用户的顺序图
14.4.2 输出所有用户的顺序图
14.4.3 参与类
14.5 实现
14.5.1 ExportCriteria.java
14.5.2 ExportFile.java
14.5.3 ExportTimeEntriesApplication.java
14.6 小结
附录A 术语表
附录B 额外资源
附录C 光盘中的内容

教学资源推荐
参考读物推荐
作者: 刘亚利 刘孟辉
作者: 冉玉杰 编著
作者: (美)马特·米勒(Matt Miller)著
作者: [美]查克·希曼(Chuck Hemann) 肯·布尔巴里(Ken Burbary) 著