本文追踪了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 开发(静态的和动态的),包括:
Java 2, Enterprise Edition (J2EE) 和 Web services 技术
物件管理组织 (OMG)的模型驱动架构 (MDA) 和以服务为导向的架构 (SOA)
JavaServer Faces (JSF)支持快速应用开发的能力
支持基於资产开发的可重用资产规范 (RAS)
Rational Software Architect包括IBM Rational Application Developer for WebSphere Software (IBM WebSphere Studio Application Developer产品的最新版本) 的所有能力,并且将他们增加到MDD技术中.结果集结在单个产品中的一个整合的设计和开发解决方案.
本文的目的是从发展演化的 角度来讨论Rational Software Architect,这是一个明显有别於那些由先前MDD产品支持的工作流程和使用情景的下一代MDD产品.
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的plug-in工具,我们鼓励大量开发人员采用塑模和模型驱动开发.Rational XDE藉由支持功能强大的引擎,允许模式导向的开发方式,也推进了MDD的发展;另外,也使得软体设计层重复使用达到一个新的境界.之后加入了具体的客制化的能力,为IBM Rational对 MDA提供了早期的支持.
2003年 10月,合并到IBM之后,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集成,IBM正在Eclipse之上建构新的MDD能力.这为Java 和 C/C++开发提供了前所未有的支持,也为集成其它生命周期工具提供了全新的能力.我们在2004年10月发布了新的工具,基於Eclipse的IBM Software Development Platform的远景逐渐变成现实.使用Eclipse我们现在能够为塑模产品实现更深入和广泛的集成.我们 能够影响基於角色的用户接口和工具扩展性;能够更好地将塑模与生命周期的其它方面集成,比如需求管理.
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的用户而打包.
结构检查和控制
IBM已经从客户处了解到,无论你将应用系统设计和建构得多麼好,也总会在部署阶段经历程式码这个层次问题,出现未检查的现象,最终导致架构性能的降低,严重影响软体的品质.
针 对这个现象,软体架构师在部署之前检查已有的程式码,以评估其真实的设计架构和品质.做这项工作的过程中,他们往往发现各式各样的问题:从设计到反应程式码的不正确;程式码的改变引起设计和架构的依赖;编码标准,规则和样式方面不规范等.最终,应用系统的架构是由部署的程式码来呈现,所以软体架构师必须分析程式码,以评估系统的可维护性,并且在规则的辅助下,掌握架构的演化.
为了给这样的分析提供更自动的支持,Rational Software Architect引入了"Java 应用结构的检查和控制特性.它支持基於模组的规则,并且使用软体视觉化技术,允许用户看到J2EE 和 J2SE部署后的的架构.用户可以更容易地发现架构的不足之处,或者是否有"反模式",比如循环依赖,集线器之类的一些已逐渐加入到应用程序原始程式码中的问题.
通过程式码视觉化和开发人员层级的测试,进行自动结构的检查和控制之后,软体架构师能够显著地提高他们所设计和部署的应用系统的品质.IBM在Rational Software Architect中引入的先进特性将开始改变架构师和开发人员考虑开发过程的方法.
运作时支持和语言支持
在应用的运行时支持环境中设计和开发工具所扮演的重要角色.Rational Software Architect在WebSphere应用服务器上为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.
对模型驱动架构的支持
MDD为使用模型开发软体展示了许多风格,其中,模型驱动体系架构(MDA)是由物件管理组织 (OMG)提出的.MDA基於一些OMG标准之上,包括Unified Modeling Language (UML 2),以及涌现出来的关於如何最好地将塑模技术应用到软体开发过程的思维.MDA在抽像层定义了模型,然后定义映射和管理模型与各种实现技术之间关系的转换.以下是一些有用的MDA塑模层的定义:
计算无关模型 (Computation-Independent Model , CIM) - 不考虑结构或者处理的情况下,处理系统环境和需求.
平台无关模型 (Platform-Independent Model , PIM) - 不考虑与特定平台相关的细节,处理系统的操作.
平台相关模型 (Platform-Specific Model, PSM) - 将PIM和与特定平台相关的细节结合起来.
平台模型 (Platform Model, PM) - 对於使用 PIM 定义组成特定平台的技术概念,元素和服务.
转化模型(Transformation Model, TM)- 定义并指定从特定PIM转换到PSM所需的转换.
尽管MDA并不是一个标准,它明确提倡使用一些现有的OMG标准.MDA指定了:
Meta-Object Facility (MOF)用於定义原始模型.
UML 2用於指定应用开发模型和转换.
MOF Query / View / Transform (QVT)用於指定转换.
Rational Software Architect支持MDA的理论,也支持MDA建立的基本标准.但 是,我们不能将Rational Software Architect归为一个MDA工具,因为在某种程度上,MDA并不是一个标准,而且仍有一些争论.更重要的是,Rational Software Architect实际上支持一系列以程式码为中心的,基於物件导向的设计和开发范例.换而言之,它支持MDA及其它的开发风格.
你是否使用IBM Rational的其它塑模产品
如果你已在使用IBM Rational软体,建议你有必要时,考虑移植到Rational Software Architect,这个新产品的优点包括:
Eclipse 集成
通过EMF的塑模方式和高度工具扩展性.
更容易使用.
UML 2, 是最新的塑模技术.
Rational Software Architect中的新的结构检查和控制特性.
Eclipse之上,使用C++的MDD.
支援复杂转化的能力.
使用静态次序图表方法将程式码视觉化的能力.
程式码检查的能力.
在Rational Software Architect中使用Java IDE和MDD工具.
如果你的团队目前在使用Rational Rose 或者 Rational XDE,那麼对你而言,移植到Rational Application Developer也是有道理的.WebSphere Studio Application Developer的程式码视觉化和视觉化编辑特性已升级到UML 2并且在Rational Application Developer中继续存在.尽管它不支持通用塑模或者完全的MDD,却支持UML入门级的使用.如果你正使用Rational Rose 或者 Rational XDE,主要为了从程式码中截取图形档,那麼这个层次的UML支持就有可能满足了你的需要.