MDA 与实现 MDA 的 Rational 工具 RSA
——RSA“尝鲜会”归来
IT小混混
Mar.18, 2005
(转载请注明出处)
声明
IBM Rational工作组和UML软件工程组织联合在上海浦东软件园举办了IBM Rational 新产品“尝鲜会”,作者见到了即将发布的实现MDD的Rational新品。现将作者所能感受到的东西介绍给大家,由于发文时,作者还没有拿到讲座的slice,任何与原讲座内容有出入的地方,与顾春华(讲座人)无关,也与UML软件工程组织和IBM RSA无关。
任何错误或不足,请指正!
前言
MDA是对象管理组织OMG力图制定的实现MDD(Model-Driven Development)的标准,各大软件领导厂商也都积极参与MDA标准化的工作。现在IBM已经实现了MDD的基于Eclipse平台的产品Rational Software Architect,并在其中集成了过程管理、版本控制、代码复审等功能。由于Eclipse架构的平台开放性以及IBM和现今Eclipse的影响,相信会有很多人会采用RSA。今天的讲座对于RSA只是介绍性,作者也没有亲身操作体验RSA,有些特性领会也不深刻,只能结合讲座内容和作者在Eclipse开发上的经验对MDA和RSA做一个简要介绍。
1. MDA
1.1. MDD
MDD是Model-Driven Development是首字母简写,它以模型(Model)为开发过程的主要制品(Artifact),通过Model Transformation,Model Manipulation和Model Execution实现最终产品。所有这些都是基于UML2.0的。
1.2. MDA
MDA(Model-Driven Architecture)相关spec, article可以在OMG官方网站上找到。MDA定义了几个模型以及模型的转化。
l CIM (Computation-independent Model) 这个模型是来自于业务领域的,通过对业务领域建模产生。
l PIM (Platform-Independent Model) 这个模型通过CIM mapping过来,经过修改PIM进行平台无关建模。
l PSM (Platform-Specific Model) 这个模型通过PIM mapping过来,经过修改PSM进行平台相关的部分进行建模。
有了以上模型,就可以直接mapping到code,并实现模型与code的同步。根据实现的情况,可以对划分模型驱动成熟度(这部分没有记全,暂略)。
1.3. UML2.0
MDA实现的基础是基于UML 2.0的,由于有了UML2.0对模型描述的更加精确,才使得实现MDA成为了可能。
2. RSA
Rational Software Architect是IBM实现MDD的新一代工具,包含了IBM同时发布(上海大概会在月底展示)的几个版本中为Architect量身定做的版本。下面的介绍将不区分具体版本。
RSA具有以下几大特性:
l 基于Eclipse平台 由于Eclipse平台的开放性,她所实现的plug-in的extension/extension point机制,为对各个公司和厂商实现自己特定平台支持提供了强大IDE平台,况且现在Eclipse社区已经有了众多的contributors。
l Java的全面支持 RSA支持直接从Java代码生成模型,code和model实时同步以及从代码里提取模式等信息。并且已经预置了对GOF Patterns, J2EE Patterns等等的全面支持。
l 迁移Rose & XDE 对迁移Rational Rose和XDE的支持,使得对以往用他们做的模型都可以迁移到RSA。
l c/c++的支持 未做演示。
l RUP集成 Rational Unified Process实现的是对开发流程的指导,RSA集成了RUP,并且建模过程中可随时调出RUP相应的指导。
l 配置管理 RSA集成了ClearCase来实现配置管理。
l Code Review RSA实现的代码复审,可以有用户自己编辑规则,对代码进行检查,给出修改建议,实现修改帮助等。
l MDD 在第3部分详细介绍
l 其他
3. 用RSA实现MDD
这部分主要讲RSA在实现MDD上的表现。
任何实现MMD的工具,都是在模型的实现和模型的mapping上。RSA主要是通过对Eclipse Wizard, View, Editor的贡献来实现的。具体到MDA上又与RUP的几个模型视图对应起来。
l CIM -- Business Model
l PIM1 – Use Case Model
l PIM2 – Analysis Model
l PSM – Design Model
每个model都有相应的profile,在创立模型的时候就对模型之间进行了映射,所以不管你在哪个模型上做了修改,其它模型也会相应地改变。
很多通用的model和profile都可以通过IBM RAS(Reusable Asset Specification)获得,你所做的RAS也可以作为自己的资产库以备今后重用(模型复用)。当然Contribute到相应的社区,也反过来能推动整个RAS的发展。
采用RSA,你所做的工作就是如果没有相应的支持,只要做了相应的支持工作(最多的工作还是PSM的实现,有了对自己各个特定平台PSM的实现,就可以用统一的上层统一的模型转化过来),就可以更加专注于业务领域的模型。
关于作者
田海立,系统分析师,兴趣方向:系统分析、软件架构。
个人blog: http://blog.csdn.net/thl789,可以通过
[email protected]或
[email protected]直接与他联系。