译者序
前言
致谢
第一部分适应性流程
第1章J2EE适应性基础.
1.1快速开发的需要
1.2企业挑战
1.3J2EE平台
1.4定义适应性基础
1.4.1为什么需要基础
1.4.2为什么是适应性
1.5确定快速开发的基础
1.5.1人员
1.5.2工具
1.5.3框架
1.5.4实践
1.5.5标准
1.5.6流程和过程
1.5.7培训
1.5.8持续的改进
1.6基础投资的优点
1.7关键的成功因素
1.7.1获得开发人员的认可
1.7.2教育
1.7.3管理层支持
1.8小结
第2章快速应用程序开发
2.1RAD的常见元素
2.1.1时间盒式开发
2.1.2与领域相关的语言
2.1.3软件重用
2.1.4高效率工具
2.1.5快速建立原型
2.2使用原型
2.2.1建立原型的方法和原型类型
2.2.2抛弃式和进化式原型的选择
2.3小结
第3章应用适应性方法
3.1为什么要使用方法学
3.2瀑布生命周期模型
3.2.1经典的瀑布模型
3.2.2优点和缺陷
3.2.3示例研究
3.3迭代式开发
3.3.1迭代式方法的优点
3.3.2迭代式流程
3.4RUP的介绍
3.4.1用例驱动的流程
3.4.2在RUP中使用迭代式开发
3.4.3RUP流程的阶段
3.4.4原则
3.4.5RUP的元素
3.4.6计划
3.4.7企业项目的支持
3.4.8RUP的缺点
3.5敏捷方法
3.6XP的介绍
3.6.IXP实践
3.6.2计划
3.6.3设计
3.6.4编码
3.6.5测试
3.6.6XP的角色
3.6.7对J2EE项目采用XP
3.7小结
第二部分敏捷架构
第4章快速开发的设计
4.1架构和设计目标
4.2RAD架构和设计
4.2.1发挥团队力量
4.2.2使用最佳特性的框架
4.2.3预先思考
4.2.4注意重用设计
4.2.5应用正交设计
4.2.6采用分层架构
4.3走近J2EE架构
4.3.1两层架构和多层架构
4.3.2企业JavaBean
4.3.3远程和本地客户端视图
4.3.4分布式组件
4.3.5选择合适的设计
4.3.6以Web为核心的架构
4.3.7以田B为核心的架构
4.4小结
第5章软件建模
5.1为什么要使用模型
5.1.1交流
5.1.2验证
5.2架构的多视图
5.3统一建模语言
5.3.1用例图
5.3.2活动图
5.3.3类图
5.3.4交互图
5.3.5状态图
5.3.6部署图和件图
5.4常见缺陷
5.5建模工具
5.5.1选择建模工具
5.5.2UML支持
5.5.3模型验证
5.5.4正向工程和反向工程
5.5.5设计模式支持
5.6为什么.建模工具会失败
5.7成功使用建模工具
5.8小结
第6章代码生成
6.1什么是代码生成
6.2被动代码生成器
6.2.1使用ApacheVelocity生成代码
6.2.2被动代码生成的优点
6.3主动代码生成器
6.3.1主动代码生成的优点
6.3.2主动代码生成器和样板代码
6.4面向属性编程
6.4.1属性是什么
6.4.2属性和预处理器指令
6.4.3J2SE5.0的注释与属性
6.5XDoclet的介绍
6.5.1安装ⅪDcclet
6.5.2设置Ant构建文件
6.5.3创建会话bean
6.6使用主动生成的代码
6.7小结
第7章快速开发和数据库
7.1数据库的困境
7.1.1企业数据的价值
7.1.2对象—关系阻抗不匹配
7.2数据访问选项
7.2.1Java数据库连接
7.2.2对象/关系映射工具
7.2.3实体bean
7.2.4Java数据对象—
7.3代码生成和O/R映射
7.3.1Hibernate的介绍
7.3.2Middlegen的介绍
7.4设置数据库
7.4.1MySQL的介绍
7.4.2创建数据库模式
7.4.3运行数据库脚本
7.5生成持久层
7.5.1使用Ant运行Middlegen
7.5.2Middlegen的GUI
7.5.3HibemateO/R映射文档
7.5.4从映射文档到Java文件
7.5.5完成往复过程
7.6小结
第8章模型驱动的架构
8.1MDA工具的承诺
8.2MDA的介绍
8.2.1平台
8.2.2模型..
8.2.3映射
8.3MDA与传统建模的比较
8.3.1优点
8.3.2缺陷
8.4MDA兼容工具
8.5AndroMDA的介绍
8.5,1使用XMI与模型交互
8.5.2PIM标记
8.5.3MDACartridge
8.5.4Cartridge的剖析
8.5.5Cartridge模板
8.5.6应用AndroMDA
8.5.7AndroMDA3.0
8.6小结
第三部分快速语言
第9章脚本
9.1为什么用脚本语言
9.2脚本语言的特性
9.2.1团队经验
9.2.2跨平台
9.2.3与Java类的集成
9.3Jython介绍
9.3.1安装Jython
9.3.2运行脚本
9.3.3Jython语言
9.3.4与Java集成
9.3.5构建用户界面原型
9.3.6创建Jythonservlet
9.4Groovy
9.5小结
第10章使用规则
10.1业务规则
10.1.1业务规则是什么
10.1.2业务规则的结构
10.1.3业务规则的动态特性
10.2软件的业务规则
10.2.1硬编码的规则
10.2.2规则定义语言
10.2.3系统和业务逻辑的紧耦合
10.2.4规则重复
10.3规则引擎
10.3.1基于规则的系统
10.3.2企业系统的规则引擎
10.4Jess的介绍
10.4.1安装Jess
10.4.2Jess示例
10.4.3Jess和Java
10.5Java规则引擎APl
10.6企业级别的规则引擎
10.6.1企业规则引擎特性
10.6.2规则引擎评估条件
10.7小结
第11章面向方面编程
11.1为什么使用AOP
11.1,1正交关注点
‘11.1.2代码混乱和分散
11.1.3解决正交关注点的传统方法
11.2AOP的介绍
11.2.1概念和术语
11.2.2单驼峰和龙
11.2.3编织方法
11.3AspecU的介绍
11.3.1AspectJ和Eclipsse
11.3.2Aspecd编译器
11.3.3AspecU示例
11.4语言和框架
11.5AspectWerkz的介绍
11.5.1XML的方面定义
11.5.2作为元数据注释的方面
11.5.3AspectWerkz编织选项
11.5.4面向方面的中间件
11.6应用“方面”
11.6.1开发“方面”
11.6.2产品化“方面”
11.6.3AOP和其他模式
11.7小结
第四部分动态环境
第12章最优构建
12.1时间和动作
12.1.1软件生产线
12.1.2软件开发的时间和动作
12.2构建流程
12.2.1设计构建流程
12.2.2J2EE构建需求
12.2.3热部署是什么
12.3Ant的介绍
12.4使用Ant实现最小构建
12.4.1构建依赖的重要性
12.4.2定义Ant中的构建依赖关系
12.5使用子项目
12.6查看构建依赖关系
12.7标准的构建目标
12.8项目的组织
12.8.1源代码目录
12.8.2类库目录
12.8.3构建目录
12.8.4发布目录
12.9与IDE的集成
12.10使用Jython扩展Ant
12.10.1创建新的Ant任务
12.10.2编译Jython类
12.10.3测试新任务
12.11小结
第13章集成式开发环境
13.1为什么使用IDE
13.2Eclipse的介绍
13.2.1Eclipse是什么
13.2.2安装和运行Eclipse
13.2.3Eclipse工作区
13.2.4Eclipse工作台模式
13.2.5使用插件工具扩展工作台
13.3企业级开发所需的IDE特性
13.3.1代码向导
13.3.2编辑器对多文件类型的支持
13.3.3Ant集成
13.3.4使用代码生成器
13.3.5服务器控制和应用程序部署
13.3.6建模支持
13.3.7数据库访问
13.4使用Eclipse调试J2EE应用程序
13.4.1Java平台调试器架构
13.4.2调试J2EE应用程序
13.4.3热交换
13.4.4JSP调试
13.4.5调试指南’
13.5小结
第14章测试驱动的开发
14.1测试作为开发模式
14.1.1测试驱动开发的优点
14.1.2测试驱动开发的代价
14.2JUnit的介绍
14.3生成单元测试
14.3.1使用Eclipse生成单元测试
14.3.2单元测试和MDA
14.3.3使用AndroMDA生成测试用例
14.4彻底测试
14.4.1模拟对象是什么
14.4.2使用模拟对象
14.4.3模拟对象类型
14.4.4动态模拟对象
14.4.5静态模拟对象和动态模拟对象的选择
14.5小结
第15章高效的质量保证
15.1质量保证
15.1.1项目环境
15.1.2测试流程
15.1.3RAD项目测试
15.2自动化测试
15.2.1J2EE测试的挑战
15.2.2自动化测试工具
15.3功能测试
15.4HttpUnit的介绍
15.4.1HttpUnit和JUnit
15.4.2使用HttpUnit编写测
15.5负载测试和压力测试
15.6JMeter的介绍
15.6.1使用JMeter测试MedRec
15.6.2创建一个线程组
15.6.3配置元素
15.6.4逻辑控制器
15.6.5采样器
15.6.6侦听器
15.6.7执行测试计划
15.6.8分析结果
15.7JMeter使用指南
15.8小结
附录
附录A缩略词
附录B参考用书...