站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题下一代模型驱动开发

下一代模型驱动开发

摘要: 本文跟踪了IBM Rational 自动化建模工具的发展历程,描述了IBM Rational Software Architect的高级能力,并且帮助读者决定他们是否可以从过渡到这个工具而获利。另外,文章中也讨论了在 IBM基于 Eclipse的软件开发平台(Software Development Platform)中使用集成工具的优势。

在2004年10月, IBM 发布了 IBM? Software Development Platform, 包括新一代的建模和模型驱动开发 (MDD) 工具。IBM Rational? Software Architect是该次发布的设计和构建的中心,是一个为了建立构架良好的应用和服务,与 Unified Modeling Language (UML)一起支持MDD的广泛的、集成的设计和开发产品。

Rational Software Architect 支持使用现代软件工业技术的应用和Web 开发(静态的和动态的),包括:

Rational Software Architect包括IBM Rational Application Developer for WebSphere Software (IBM WebSphere? Studio Application Developer产品的最新版本) 的所有能力,并且将他们增加到MDD技术中。结果:打包在单个产品中的一个集成的设计和开发解决方案。

本文的目的是从发展演化的角度来讨论Rational Software Architect,这是一个支持显著区别于那些由先前MDD产品支持的工作流和使用情景的下一代MDD产品。请注意这并不是Rational Software Architect的使用指南;IBM Rational计划不久将出版一部指南。

IBM Rational 建模工具的演化

为了理解Rational Software Architect 建模产品演化的规模,让我们简单回顾IBM Rational产品在这个方面的历史。

Rational Rose

IBM Rational Rose? 软件已经并且继续成为一个市场主导的可视化建模工具。它是一个独立的工具,在应用程序接口(API)层与市场主导的IDE结合,来支持各种编程语言和其它实现技术。然而,尽管Rational Rose已取得一定的成功,也推进了UML建模实践,但是仍然只有一小部分开发人员按照规定使用建模,Rational也已经尝试培训更多的人员。但是大多开发人员不想放弃他们的IDE而去使用额外的工具;他们想将可视化建模集成在IDE里面。

Rational XDE

为了满足这个需要,在2002年,IBM Rational推出了Rational XDE?软件,为当时出现的编程技术(Java 和 Microsoft .NET)提供了一个扩展的开发环境。我们把Rational XDE看成Rational Rose的下一代;严格地说,它并不是新版本的Rose(因而名字发生了变化),而且也未必取代Rose,因为我们有目的地限制Rational XDE只支持一定的IDE和实现技术。

通过将Rational XDE构造成流行IDE的插件,我们鼓励大量开发人员采用建模和模型驱动开发。Rational XDE通过支持功能强大的引擎,允许基于模式的开发,也推进了MDD的发展;另外,也使得软件设计层复用达到一个新的高度。之后加入了具体的定制化的能力,为IBM Rational对 MDA提供了早期的支持((请参见下面的"对于模型驱动的体系结构的支持")。

2003年10月,合并到IBM之后,我们将Rational Rose 和 Rational XDE产品线加固到一个家族 -- IBM Rational Rose XDE Developer -- 这样,无论用户倾向于使用独立的建模工具还是一个直接集成在他们IDE的工具,他们都可以购买工具包,并根据自己的需要进行安装。

与Eclipse前所未有的结合的机会

即使在IBM并购Rational软件之前,这两个组织也是合作伙伴,致力于开发新的、更强大的方法来将MDD的能力集成进Eclipse框架和基于Eclipse的IDE 。这项工作早期的成果是在2003年添加到WebSphere Studio Application Developer中的轻量级作用的代码可视化和可视化编辑特性,这些特性是开发Java实施层模型的非常有效的方法。

该技术现在是IBM开发MDD工具的基础。不再是简单地与Eclipse集成,我们正在Eclipse之上构建新的MDD能力。这为Java 和 C/C++开发提供了前所未有的支持,也为集成其它生命周期工具提供了全新的能力。我们在2004年10月发布了新的工具,基于Eclipse的IBM Software Development Platform的远景逐渐变成现实。我们现在提供了软件开发的完整的集成平台,充分满足开发团队中每个角色的需要。软件开发可以真正成为一个核心业务流程,为我们的客户提供竞争的优势,新的收益和市场机会。

使用Eclipse我们现在能够为建模产品实现更深入和广泛的集成。我们能够影响基于角色的用户接口和工具扩展性;能够更好地将建模与生命周期的其它方面集成,比如需求管理。Rational Software Architect将先前定义的建模、开发和代码分析的实践转换成集成的、统一的设计和开发经验。在一个开放,而不是专有的环境中工作,所有的用户都可以更容易地根据需要定制他们的产品。


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

Rational Software Architect:集成的设计和开发

我们这个新的、基于Eclipse的Rational Software Architect是一个完整的设计和开发工具解决方案。如同我们前面所提及,它包括Rational Application Developer for WebSphere Software (WebSphere Studio Application Developer的新版本) 的所有能力,拥有代码可视化和可视化编辑特性;它是客户开始使用MDD的一个很好的入口。另外,它还包括Rational Web Developer for WebSphere Software (以前的 WebSphere Studio Site Developer) 全部的、更新的能力。

Rational Software Architec在Rational Application Developer的特性上构建,增加了对MDD的全力支持,包括UML 2建模、代码生成、模式、模型转换,以及实现 MDA开发风格的新途径。它并不是一个全新的产品,是特别为想要应用MDD的客户而设计的,展示了自然的演化和在IBM Rational工具中已拥有的能力。它特别为试图广泛应用MDD的用户而打包。

结构检查和控制

我们已经从客户处了解到,无论你将应用系统设计和构建得多么好,也总会在实现阶段经历代码层的演化,出现未检查的现象,最终导致架构性能的降低,严重影响软件的质量。

针对这个现象,软件架构师在实现之前检查已有的代码,以评估其真实的体系结构和质量。做这项工作的过程中,他们往往发现各种各样的问题:从设计到代码的不正确映射;代码级的改变引起设计和架构的依赖;编码标准、规则和样式方面不规范等。最终,应用系统的架构是由部署的代码来呈现的,所以软件架构师必须分析代码,以估计它的可维护性,并且在规则的辅助下,掌握架构的演化。

为了给这样的分析提供更自动的支持,Rational Software Architect引入了"Java 应用结构的检查和控制"特性。它支持基于模板的规则,并且使用高级别的软件可视化技术,允许用户看到J2EE 和 J2SE实现的架构。用户可以更容易地发现架构的不足之处,或者"反模式",比如循环依赖、集线器之类的一些已逐渐加入到应用程序源代码中的问题。

通过代码可视化和开发人员级别的测试,进行自动结构的检查和控制之后,软件架构师能够显著地提高他们所设计和部署的应用系统的质量。我们在Rational Software Architect中引入的先进特性将开始改变架构师和开发人员考虑开发过程的方法。

运行时支持和语言支持

客户已经告诉我们,在应用的运行时支持环境中设计和开发工具所扮演的重要角色。Rational Software Architect在WebSphere应用服务器上为Java应用提供了极大的运行时支持;它也允许由开放工业标准支持的Java虚拟机和数据相互操作性的多平台执行支持。此外,因为Rational Software Architect 包括支持BEA WebLogic Server的Rational Application Developer,所以,使用Rational Software Architect部署的应用也是隐式的多平台。Eclipse C/C++ Development Tool (CDT)作为IBM Rational Software Architect的一部分而打包在内,同时也扩展了对C和C++开发的支持。基于Eclipse的解决方案允许我们在Rational Software Architect中复用一些特性,来支持上述语言和JAVA中的MDD。

培养现代建模生态系统

我们最近了所发布了一系列Rational Software Architect,为不需要代码生成或者可视化的用户着重建模和设计这两方面。Rational Software Modeler支持UML 2的所有建模特性,并且通过Eclipse Modeling Framework (EMF)提供高级扩展的特性。Eclipse框架的开放性和健壮的扩展性使Rational Software Modeler适合支持曾为Rational Rose的成功作出一些贡献的、支持与生态系统类似的客户和第三方扩展的建模"生态系统"。

Rational Software Architect 和 Rational Software Modeler只是IBM Software Development Platform之后阐明策略的两个实例:帮助业务自动化并集成软件开发。我们希望各角色的实践者都能够拥有他们所创建和获得的单一的用户体验,通用的定义和资产的管理。团队的每个人都能够简单地选择与他们角色和责任相匹配的产品。IBM Software Development Platform是关于团队和组织生产率的。

对模型驱动架构的支持

MDD为使用模型开发软件展示了许多风格,其中,模型驱动体系架构(MDA)是由对象管理组织 (OMG).1创建的。MDA基于一些OMG标准之上,包括Unified Modeling Language (UML 2),以及涌现出来的关于如何最好地将建模应用到软件开发过程的哲理。MDA在抽象层定义了模型,然后定义映射和管理模型与各种实现技术之间关系的转换。以下是一些有用的MDA建模层的定义:

尽管MDA并不是一个标准,它明确提倡使用一些已有的OMG标准。MDA指定了:

一些客户称他们已经在应用MDA很长时间,并且IBM Rational员工与他们中的许多一起工作 - 以及OMG - 将MDA演化成当前状态。Rational Software Architect支持MDA的理论,也支持MDA建立的基本标准。

但是,我们不能将Rational Software Architect归为一个MDA工具,因为在某种程度上,MDA并不是一个标准,而且仍有一些争论。更重要的是,Rational Software Architect实际上支持一系列以代码为中心的、基于向导的设计和开发范例。换而言之,它支持MDA及其它的开发风格。


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

Rational Software Architect是否适合于你?

Rational Software Architect是IBM用于建模和模型驱动开发的最完整、最健壮的解决方案。但是它是否适合你?以下选择将帮助你回答这个问题。

你是否从事软件架构的工作?

我们近期发布的产品区分软件架构师与软件开发人员,以及软件架构师与数据架构师这几个角色。例如,这个更大的粒度反映在高度面向角色的IBM Software Development Platform的所有工具中。构建进我们产品名称中的角色定义和区别可以帮助用户基于他们的活动和责任,决定哪些工具最好地适合于不同的员工。但是,角色名字在企业、组织甚至项目线中变化,所以你应该把我们新产品的名称当作决定什么工具对开发团队的哪些人员最有用的起点。

软件架构师是开发团队中负责作出主要技术决定的人员。有时,是由一个人来负责,而这个人常常是项目的开发的领导人;有时,几个人,可能有一个来充当主要架构师,共同来承担这个角色;还有的时候,团队的所有开发人员在架构能力的同一时间操作-一个增长的趋势。经常地,较之他们的工作职位,架构师的概念往往与开发者关联更多些。

软件架构师的职责包括识别并记录应用架构的方面,包括需求、设计、实现和部署。这些方面需要不同的,但相关的应用视图。当然,在开始的架构设计和实际构建架构(真正在代码中运行的架构)之间也有区别。我们认为软件架构师需要一个帮助他们定义所需架构的工具,允许他们发现应用系统的真实架构,并且帮助他们协调两种视图。

Rational Software Architect能够完成这些所有的工作。它包括开发和查看实现中的帮助,以及维护和控制实现来保持架构集成。

如同我们上面所提到的,做架构工作的人员往往并不是架构师。可以从使用Rational Software Architect过程中获益的团队人员有:

请记着,Rational Software Architect包括Rational Application Developer的全部能力,一个完全的IDE。客户得到打包进一个产品的完整的设计和构建解决方案。针对那些要求UML 2建模能力而不需开发架构的用户,我们提供了Rational Software Modeler。

你是否使用IBM Rational的其它建模产品?

如果你已在使用IBM Rational软件,建议你有必要时,考虑移植到Rational Software Architect 或者 Rational Software Modeler。这些新产品的优点包括:

如果你的团队当前在使用Rational Rose 或者 Rational XDE,那么对你而言,移植到Rational Application Developer也是有道理的。WebSphere Studio Application Developer的代码可视化和可视化编辑特性已升级到UML 2并且在Rational Application Developer中继续存在。尽管它不支持通用建模或者完全的MDD,却支持UML入门级的使用。如果你正使用Rational Rose 或者 Rational XDE,主要为了从代码中截取图形文档,那么这个级别的UML支持就有可能满足了你的需要。

对于Java和Web开发,我们鼓励用户从当前建模工具过渡到Rational Software Architect。除了移植到基于Eclipse的工具的技术优势,IBM还提供了一系列移植和升级的途径。请参照http://www-306.ibm.com/software/awdtools/architect/swarchitect/support/index.html 以了解最新升级的支持信息。


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

另外的信息

如果对于IBM Rational Software Architect有疑问,请访问http://www-306.ibm.com/software/awdtools/architect/swarchitect/index.html.。本文基于发布在该网站的白皮书。


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

1 OMG, MDA 和他们扩展的表达均由OMG制定,满足设计的需要,并且关于大小写和标点符号均有特定用途。请参照 www.omg.org/mda 了解更多的信息。


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

关于作者<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="3"></td></tr><tr align="left" valign="top"><td>

</td><td></td><td width="100%">

Gary Cernosek 现在是IBM Software Group Rational的一位市场部经理。他负责分析和响应软件开发市场趋势,主要致力于软件设计和开发技术,特别是可视化建模和模型驱动开发领域。先前,他曾在Rational销售,技术培训,客户咨询部门工作。加入Rational之前,他是NASA集团太空梭和太空站系统的软件开发人员,在NASA工作8年多。Gary Cernosek从Texas大学Austin分校获得电机工程专业学士学位,之后在Houston大学Clear Lake分校获计算机系统设计专业硕士学位,主要研究方向是面向对象的软件工程。

</td></tr></table>

<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>


↑返回目录
前一篇: 模型驱动的复合文档开发
后一篇: ECLIPSE 小组开发环境实践: 第 1 部分