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,可以通过haili.tian@gmail.com或tianhaili@nju.org.cn直接与他联系。
