使用 IBM Rational Application Developer for WebSphere Software 应对软件开发的挑战

IBM Rational Application Developer for WebSphere Software V7.5 新特性入门简介

本文介绍了 IBM Rational Application Developer for WebSphere Software V7.5 的新特性,及其为众多软件开发团队所提供的解决方案,以解决他们在交付 Web 和面向服务的应用程序时所面临的许多挑战。

Lee Ackerman, 高级产品经理, IBM

Lee Ackerman 是 IBM Rational Learning Services 和 Solutions 团队的高级产品经理。他专注于创建能够让 Rational 模型驱动开发工具的用户成功创建 J2EE 和 SOA 解决方案的智能资本资产。


developerWorks 投稿作者

S Mahate, 高级项目经理, WSO2 Inc

S. Mahate 是 IBM Rational 软件的高级产品经理,并拥有 20 年以上的软件开发经验。



2008 年 10 月 09 日

使用 IBM Rational Application Developer for WebSphere Software 的理由

当您考虑交付 Web 和面向服务的解决方案时,您需要回答许多问题,包括:

  • 如何有效地构建可伸缩的 Java™ 和 Java Enterprise Edition(JEE)应用程序或 Web 服务?
  • 如何控制或限制应用程序的再开发及减少缺陷的数量?
  • 在维护其他开发人员的代码时,使用什么方式可以更容易维护?
  • 如何在跨地域分布的团队中更有效地编码?
  • 如何提高应用程序的设计、质量,和性能?
  • 不考虑寻找具备足够技能的员工方面的困难,我们如何处理比以前更复杂的应用程序呢?
  • 如何创建可复用的资产,而不必重复每次都需要重头开始构建应用程序的轮回?
  • 如何交付基于行业标准、能实现互操作的应用程序?
  • 如何协调并确保计划的完整性?

您可以继续罗列,钻研额外的问题,例如可移植性、安全性、浏览器不一致,等等。这是一堆使人畏惧的难题。然而,我们该如何取得成功?

IBM® Rational® Application Developer for WebSphere Software V7.5 通过一组全面的特性扩展您的能力,提供解决这些难题的解决方案:

  • 利用基于注解的程序设计(annotation-based programming)和集成的 WebSphere 支持快速地开发并测试 Java EE 5 应用程序
  • 利用动态的、富 Ajax (或 AJAX, Asynchronous JavaScript and XML)的应用程序(Web 2.0)来扩展面向服务的体系结构(SOA)和 Java EE 资产
  • 发现、生成、部署并测试 Web 服务以整合商业应用程序
  • 快速且可视化地设计门户,然后结合 IBM® WebSphere® Portal 进行测试
  • 利用支持 IBM® WebSphere® Application Server V7.0 和 Java EE 5.0 标准的程序设计模型所带来的好处,该模型支持包括了 Enterprise Java™Beans 3.0、Java Persistence API(JPA)、Java™Server Faces 1.2(JSF)、Java API for XML(JAX)—— WebSphere 2.0、JAX-B 2.0、Java™Server Pages 2.1(JSP)、Servlet 2.5 在内等标准
  • 通过使用 Rich Internet Application(RIA)客户端扩展并发布服务和种子来简化开发
  • 使用用于 WebSphere Application Server 7.0、WebSphere Application Server 6.1、WebSphere Application Server 6.0、WebSphere 特性包支持(WebSphere feature pack support),及 WebSphere Portal V6.1 或 6.0 的集成测试环境
  • 容易地与 IBM® Rational® Team Concert 集成,增强您的团队协作能力

上面的列表是不完全的,还提供有更多的特性,包括那些由底层 Eclipse 平台和 Eclipse Web Tools Platform(WTP)项目所提供的特性。即使这样,这个列表也足以作为开始着手尝试的最佳起点。我们也许还可以用一种不同的方法来考察您可以使用 Rational Application Developer for WebSphere Software 的方式。


让功能来指导需要使用的特性

在评估您可以如何有效地使用这些特性时,考虑您执行的日常的、底层的任务会更有用。问问您自己如何能够使用 Rational Application Developer for WebSphere Software 来完成这些核心任务(参见图 1):

  • 设计解决方案
  • 生成解决方案
  • 识别并解决问题
图 1. 处于软件开发中心位置的 Rational Application Developer
绘有同心圆的图

当然,这不是您完成这些任务的唯一顺序。您从哪里开始使用这些工具将依赖于您处于软件交付循环的那个位置。


辅助设计的工具

在设计中,Rational Application Developer for WebSphere Software 让您可以选择多种方式简化您的任务,去使用领域专用的图形语言和编辑器,并且与支持工具相集成。让我们更仔细地观察一些特性,以及如何使用这些好点子。

您可以将现有的代码可视化为 UML 图,包括类图、序列图、主题图,和浏览图(参见图 2)。UML 展示方式让您看到了简化了的代码。通过使用它,您可以隐藏不相关的细节和方面,这样您就可以关注那些真正重要的事情。需要注意的是,该可视化是代码直接的 UML 展示。因而,它与代码自动地保持同步,而不需要任何“代码-UML生成”的双向工程。

图 2. UML 类图
UML 图视图

此抽象及可视化主题可以在数据库模型、XML schemas 和 Web 服务描述语言(Web Services Description Language,WSDL)文档上应用(参见图 3)。这些工具不仅是只读的视图,它们还是可编辑的。另外,这些工具是专用于您需要工作的领域的。它们被裁剪为适用于数据库、XML schemas,和 Web 服务,但它们令您能够专注于工作的重要方面,并隐藏不必要的细节。

图 3. WSDL 编辑器
含有 Claim、Person、Address,和 Receipt 的图

Web 站点结构和导航图展示了 Web 站点的摘要。您可以很容易地进行集体讨论(brainstorm)并创建出 Web 站点的高层概要。Web 站点结构和导航图支持页面模板、页面片段、样式表,和主题。该工具还允许您创建 HTML、JSP、JSF 页面。

可见即所得(WYSIWYG)的编辑器和拖拽选项板简化了 HTML、JSP、JSF、Dojo,或其他用户界面组件的编辑。如果不需要担心语法的话,设计页面的布局就更加容易了。创建模板也非常类似于创建页面的过程,当模板创建了之后,可以将其应用于所有的页面。专家模式(Expert mode)可以让您在任意时刻访问代码。关键是您可以根据完成手边任务所必需的细致程度来访问。

如讨论的一样,这些可视化隐藏了不相关的细节。与其看到所有与 XML schemas 相关的细节,观察隐藏了所有不必要和不相干细节的可视化结果会容易得多。另外,它们已经被裁剪为适用于您所在的领域。还有另外一个值得考虑的好处 —— 它们使得与团队中其他成员的交流变得更容易。

与过去相比,现在的开发更是一个团队化的工作,您需要与来自多个团队的团队成员进行交互,从而确保每个人都了解需求,了解缺陷,并且与其他开发人员相一致地工作。即使在不是每种角色上的每个团队成员都使用 Rational Application Developer 的时候,和其他角色上的其他人员分享信息也是很重要的。

举例来说,将开发人员的活动追溯到需求是设计和实现阶段的重要方面。为了对此提供支持,Rational Application Developer 集成了 IBM® Rational® RequisitePro®。这样,您可以确定一些东西为什么添加到了解决方案中。同样,您可以使用追溯功能确定变更对需求的影响。

Rational Application Developer 还与 Rational Team Concert 进行了集成。这一集成使得分布式的项目团队能够实时地、在基于上下文背景中协作,令软件开发更自动化、透明、且可预测。

Rational Team Concert 还提供工作项(可以是缺陷、增强,或会话)。团队成员可以查询工作项并且与其他团队成员分享查询结果。而且还帮助提供上下文背景,并改善交流,您可以追踪并评论每个工作项。

团队成员还可以拿到那些工作项,并且将它们分配到迭代计划中。迭代计划采用 wiki 类型的界面,允许团队查看目标迭代的项目进展。由此产生了带有从实际的开发工作中所收集数据的透明化的开发过程,在此,开发人员和项目经理能够追踪项目,并且尽可能早地确定出风险。

通过加入了抽象、领域专用的工具、集成和对沟通的关注,Rational Application Developer for WebSphere Software 使得您可以从容地在面临当今不断增长的复杂性和挑战的情况下设计解决方案。


辅助生成解决方案的工具

现在,让我们来看看如何使用 Rational Application Developer for WebSphere Software 来生成解决方案。

通过使用以下这些机制,Rational Application Developer 可以帮助您生成解决方案(或者一部分):

  • 抽象
  • 领域专用的图形语言和编辑器
  • 自动化

通过从机器码转移到更高层次的程序设计语言 —— 利用抽象和自动化 —— 计算机科学已经大幅向前发展了。因此,我们看到了开发人员生产力的重大提高。然而,仍旧存在改进的空间,因为仍旧有许多开发人员不得不执行的机械重复任务。

Rational Application Developer 有许多帮助开发人员可以在不了解准确语法的情况下创建各种 Java EE 工件的向导和图形编辑器,因而能够让您将注意力更集中于手边的问题上。这些向导包括 WSDL 可视化、Java EE 部署描述符、清单、JPA 映射,及其他。

对 Java Enterprise Edition 5 的支持包括了一个包含了注解(annotations)的简化程序设计模型。Annotations 是在 plain old Java object(POJO)中的插入指令,使开发人员可以在不离开源码编辑器,或者使用注解编辑器的情况下输入信息。注解允许开发人员编写将由相关文件提供的数据,例如单独的部署描述符。注解提供更直观且便利的方法,因为关于某个类的具体信息被输入到了注解所应用的代码元素中。

注意:之前讨论的 UML 可视化也识别并提供对注解的支持。

Rational Application Developer 也对代码的自动化或生成提供一流的支持,包括 Java EE 5 工件内容助手(Java EE 5 artifact Content Assist)、实时输入验证,和对于 Enterprise JavaBeans 3.0 及 JPA 的重构选项。

另外,Rational Application Developer 还支持通过使用模型到文本的转换(model-to-text transformations)来创建您自己的自动化。这些转换利用您的最佳实践和方法来生成基于文本的元素,例如代码、部署描述符,等等。这些工具中的基本思想是识别出需要经常重复的样本(Exemplar)或模式(Pattern)。样本抽取了由模式来解决问题的最佳解决方案,并且由具有技能的开发人员创建。其他的开发人员只需要应用转换来生成满足模式的代码,而无需知道实现的细节。Rational Application Developer 拥有一个能帮助您识别模式方案(schema)并创建转换设计、输入模型,和相关模板集的 Exemplar Analysis 工具。

图 4. 样本创作
左边是样本、右边是转换,底部是选项卡

使用了 Web 2.0 协作原则和响应技术的 Rich Internet Applications(RIAs)的领域也是一个实践者的热门领域。Rational Application Developer for WebSphere Software 利用对 Dojo toolkit for AJAX 的支持(包括带有 Content Assist、验证、重构,和概要视图的全特性的 JavaScript 源代码编辑器 )来辅助 RIAs 的客户端开发。您可以通过使用内含的 Dojo 选项板可视地创建拖拽的页面并修改 Dojo 实体属性来可视地构建 Web页面。Java 对象方法可以通过 Web Remoting 框架来进行发布,包括 Representational State Transfer(REST)服务。使用 AJAX 代理能够构建来自各种各样的 Web 2.0 服务提供者的混合。

关键的要点是利用 Rational Application Developer 为您生成解决方案的许多方面,因而使得您避免重复、低层次的细节,和机械的工作。这样,您就可以将编码时间和工作放在需要创造力和更高层次价值的领域。


帮助找到并解决问题的工具

不可避免的是所有由人类进行的活动都是易于出错的。任何写出的代码也都必然有缺陷。缺陷不仅仅是运行时异常,还可能是在期望红色按钮的地方设置了蓝色的按钮,或者会是不可读的代码或永远不会被执行的代码。

Rational Application Developer 可以通过三种方式帮助您确定问题:

  • 自动化
  • 抽象
  • 最佳实践

Rational Application Developer 包含能够让您在代码运行之前就确定出缺陷的静态分析工具。利用这种工具,您可以分析工程,找到各种类型的问题,例如设计原则、Java EE、Java 最佳实践、性能问题,及其他。

图 5. 静态分析规则集
浏览视图中的分析领域和规则

静态分析(Static Analysis)可以快速简单地运行。因而,您和您余下的团队可以将其用作日常开发工作的一部分。结合代码检查,静态分析还可以成为对质量的关注的一个重要部分。静态分析让您可以关注应用程序中引发的问题的更有创造性的方面,因而使得花在代码检查上的时间更有生产力。静态分析工具的额外的好处是它使得开发人员了解了最佳实践。这是可能的,因为静态分析工具提供了它可以识别的每个问题的实例,以及如何解决该问题的描述。

Rational Application Developer 还提供了概括应用程序从而确定性能和内存问题的功能。除了支持您设立并收集性能及内存数据之外,还有提供了用于解释结果的工具和视图。分析由多种视图来支持,例如表格、图,和 UML 时序图(参见图 6 和 7)。

图 6. 执行统计
基础时间、调用,等等的列
图 7. UML 时序图
带有四个生命线的图

Rational Application Developer 还通过提供对您的 Java 代码、JSP、XSLT、JavaScript、Python WebSphere Application Server 管理脚本,及 DB2 存储过程详尽的调试支持来帮助您确定代码中的缺陷。Java 和混合的语言调试器(图 8)提供了与各种程序设计语言的无缝集成。

图 8. Java 调试器
Java 调试器集成

Rational Team Concert 客户端还提供对向您的团队成员传递调试会话(debug session)的支持,不论他们就位于您旁边的工作间,还是相隔 10 个时区。这是一个实时的传递,接手从您那里传递来的会话的成员,可以接着您在调试中停下的地方继续调试。当他们完成时,可以将会话传递给您。该特性是省时的,因为需要重新创建故障的所有工作都不必重复了。

Rational Application Developer for WebSphere Software 还提供对测试管理活动的支持,例如那些调用测试、控制测试执行、收集测试结果,以及分析测试结果的活动。您可以在远程的机器上运行测试,或者将现有的 JUnit 测试案例导入到 Testing and Performance Tools platform(TPTP)测试案例中。您还可以使用数据池来分离测试数据和测试逻辑,搜索并生成来自测试结果的报告,并且与 IBM® ClearQuest® 测试管理软件集成。

除了能够在寻找问题时使用自动化以外,自动化结合最佳实践在将来为您提供帮助。您可以以许多方式使用抽象,例如当您在时序图中使用可视化时一样,作为在代码运行时达到代码之上的层次的方式。

当您确定了问题之后,Rational Application Developer 以三种相似的方式帮您找到解决方案:

  • 自动化
  • 最佳实践指南
  • 抽象

虽然这些是相同的概念,但是 Rational Application Developer 的实现方面是不同的。

举例来说,此处您使用静态分析,但此处的意图是看看它如何帮助您解决识别出的问题。举例来说,您可以应用 Quick Fixes,简单地点击鼠标按钮,自动地解决问题(图 9)。当有多个修复的情况下,您可以选择您想要应用的解决方案。

图 9. Quick Fix 选项
顶部是代码及修复,底部是树形视图

提示:书写代码时,Quick Fix 选项也可用。这可以像添加导入项一样简单,也可以像创建类或实现接口一样复杂。

有时候要进行亲自调查来找出如何解决问题。在这种情况下,使用强大的调试工具是必不可少的。在 Rational Application Developer 中,开发人员可以在调试会话中修复他们的代码,并且在不必重头开始的情况下继续调试(图 10)。调试器还允许开发人员变更并检查元素的值(图 11)。

图 10. 变量视图
名字和值的注释
图 11. 变量监视器
关于结果字符串的弹出的详情

在开发团队中,有许多角色、可交付件,和采用的步骤。您如何确保不仅您了解最佳实践的方法,而且团队的其余人员也了解呢?一种方法是遵照软件开发过程。Rational Application Developer 提供了包含从 IBM® Rational Unified Process®(RUP®)中获得的知识的过程指导。

提示:如果您和您的团队已经创建并发布了您自己的基于 RUP 的过程,您可以使用该过程代替 Rational Application Developer 中包含的版本。

当您使用 Rational Application Developer 时会动态地出现过程指导和用户辅助(参见图 12)。该指导覆盖角色、工作项,和活动。另外,Tool Mentors 提供了关于如何执行任务的具体的指导。

图 12. 过程浏览器
左边是树形视图,右边是图

Rational Team Concert 还提供控制软件开发的各个阶段中的活动的可执行的过程框架,例如如何在发布的最后一个周期过程中提交代码。这些集成帮助减少与软件开发相关联的风险,并且令应用程序开发更可预测。

当您实现对代码的变更时,您可以使用 UML 可视化来了解元素之间的依赖性。随着变更的实现,您需要编制文档并且与团队的余下成员传达那些变更。您可以使用 UML 可视化来获取并编制这些变更。同样,当生成 Java 文档时,您可以选择自动生成 UML 类图。

解决方案中的代码的寿命远远超过系统的第一个版本。随着您寻找让代码更容易理解并支持的方式的同时,您还需要考虑重构该代码的最佳方式(在不改变功能的情况下变更代码的结构)。Rational Application Developer 也可以帮助您做这件事,因为它支持重命名 Java 类、移动类和包、由具体的类创建接口、将内嵌的类转变为顶层的类,以及从老方法中的代码段中抽取方法。该软件检查对 JavaDoc 中名称的所有引用,以及各种 XML 文件,从而确保在没有任何断裂的链接的情况下进行重构。UML 图作为重构的一部分,也自动地更新。


总结

当您要处理当今的开发工作所面临的挑战的时候,Rational Application Developer for WebSphere Software 是您兵工厂中的关键工具。当我们要设计、生成、确定和解决时,—— 我们使用简化、抽象、自动化、领域特性、集成,和最佳实践。

当您使用 Rational Application Developer for WebSphere Software 时牢记这些思想 —— 它们将帮助您提高生产力并且还将令开发更有趣且更高产。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=345091
ArticleTitle=使用 IBM Rational Application Developer for WebSphere Software 应对软件开发的挑战
publish-date=10092008