知识大全 基于RSA模型转换框架的开发
Posted 模型
篇首语:花门楼前见秋草,岂能贫贱相看老。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于RSA模型转换框架的开发相关的知识,希望对你有一定的参考价值。
基于RSA模型转换框架的开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
内容简介模型转换框架(Model Transformation Framework)是ibm最新开发平台RSA(Rational Sofare Architect)中的重要组成部分 其主要功能是在模型驱动的开发过程中 为实现各种模型之间的转换提供基础平台的支持 基于这个框架 能够很容易地实现模型之间的转换程序 以及扩展已有的转换
本文首先介绍模型转换的基本概念 然后介绍RSA模型转换框架 之后本文以两个具体的例子介绍如何在RSA开发平台中以模型转换框架为基础创建和扩展模型转换
模型转换
MDA(Model Driven Architecture 模型驱动的体系结构)和MDD(Model Driven Development 模型驱动的开发)是当今软件领域最热门的话题 相比于传统的以代码为中心的开发模式 MDA和MDD则是以模型为中心 在开发的各个阶段 都使用模型来描述系统特征
模型转换贯穿于MDD的全过程 系统开发初期 为了刻画系统特征 一般会创建系统的分析模型 分析模型是一个比较粗糙的模型 相当于草图的作用 只用于辅助分析 随着系统的特征越来越清晰 系统的设计模型会慢慢形成 设计模型能够比较精确地描述系统 是系统实现的基础 从设计模型可以很容易地导出系统的实现模型 实现模型包括具体的代码 脚本 配置文件等等 这是一个自顶向下 逐层细化的过程 从高层的抽象模型开始 经过一系列的模型转换 最终生成底层的系统实现
图 模型转换
由此可见 模型转换在模型驱动的开发和设计中起著非常重要的作用
RSA模型转换框架
RSA(Rational Sofare Architect)是IBM的新一代软件开发平台 代号为Atlantic RSA基于开放/可扩展的Eclipse 构建 全面支持UML 标准和模型驱动的开发方法 RSA为开发当今日益复杂的应用系统提供了一个强大的的开发环境 整合了UML建模 J EE XML web services C++开发工具以及RUP过程指南等诸多功能 是软件架构师/开发人员的首选工具
为了支持模型驱动开发过程中各种模型之间的转换 RSA提供了一个功能强大 易于扩展的模型转换框架(Model Transformation Framework) 该框架是一个基于规则的执行引擎 基于该框架 可以很方便地定义模型转换规则 实现各种模型之间的转换 RSA模型转换框架实现了模型转换的注册和配置管理 提供了统一的运行界面 以及各种开发向导
RSA预装有一些常用的模型转换 包括UML JAVA UML CPP UML EJB 这三个转换分别以UML模型为输入 生成对应的Java程序 CPP程序和EJB 关于如何使用RSA预装的模型转换 请读者参阅RSA的相关文档
下面简单介绍RSA模型转换相关的一些概念
Transformation(转换) 以源模型对象为输入 目标模型对象为输出 实现模型之间的转换 每个转换由若干条转换规则组成
Rule(转换规则) 以源模型对象中某部分为输入 目标模型对象的对应部分为输出 实现了功能逻辑上相对独立的一部分转换任务
Transformation Context(转换上下文) 转换上下文是转换过程中转换规则之间共享数据的容器 在转换的执行过程中 转换上下文会在规则的实现之间传递 每一个规则可以向上下文中存放需要共享的数据 也可以从中获取所需的数据
Transformation UI 模型转换框架会为每个转换提供一个默认的配置管理界面 让用户指定源模型 目标模型 以及所需的一些转换属性 如果需要定制更加复杂的界面元素 则需要模型转换的开发人员对默认的界面加以扩展
至此 读者应该已经对RSA模型转换框架有了总体的了解 本文余下部分将结合具体的例子 介绍如何在RSA中基于模型转换框架开发新的模型转换和扩展已有的模型转换
基于RSA模型转换框架的开发
本节以一个具体的模型转换为例 介绍如何在RSA中基于模型转换框架开发新的模型转换 这个转换名为Model Text 接受的输入为UML模型中的Class Package 或者Model 如果输入为Class 则遍历类的属性 方法 参数 将这些信息输出到控制台 如果输入为package或者model 则遍历package和model下面的每一个类 将类的信息打印到控制台
创建新的插件工程
通过新建工程向导创建一个插件工程 由于模型转换框架是作为eclipse插件集成在RSA中 因此模型转换工程也必须是一个eclipse插件工程 这样才能够使用转换框架提供的组件
添加TransformationProviders扩展点
为了创建一个新的模型转换 需要从TransformationProvider扩展点进行扩展 首先添加所需的插件
图 开发模型转换所需的插件
然后添加TransformationProviders扩展点 该扩展点的ID为 ibm re transformationProviders
创建模型转换的入口 TransformationProvider
从TransformationProviders扩展点扩展 添加TransformationProvider
图 创建TransformationProvider
添加TransformationProvider之后需要创建对应的实现类 这个类需要继承自模型转换框架提供的接口 ibm re AbstractTransformationProvider 是模型转换框架执行引擎调用模型转换的入口点 主要提供两个方法
createTransformation 创建模型转换的实例 返回给调用引擎
validateContext 验证模型转换的执行上下文 从上下文中可以获取源模型和目标容器 进行验证 验证的结果会反映在模型转换的配置管理界面上 本例验证源模型是否Class Package或者Model
创建Transformation
本例的Model to Text转换在plug in xml中定义如下
< Transformation
version=
name= %Transformation nsole
transformGUI= ibm xtools transform samples modeltotext TransformGUI
keywords= %Transformation keywnsole
author= %Transformation author
groupPath= %Transformation groupPath
sourceModelType= UML
description= %Transformation descripnsole
document= doc/clasl
targetModelType= None
id= ibm xtools transform samnsole root >
< /Transformation>
version=
name= %Transformation nsole
transformGUI= ibm xtools transform samples modeltotext TransformGUI
keywords= %Transformation keywnsole
author= %Transformation author
groupPath= %Transformation groupPath
sourceModelType= UML
description= %Transformation descripnsole
document= doc/clasl
targetModelType= None
id= ibm xtools transform samnsole root >
Transformation的主要属性Id 注册在模型转换框架中唯一的id 可以通过这个id引用这个模型转换
name 模型转换的名字 也即最终显示在Transformation弹出菜单中菜单项的内容
sourceModelType 源模型的类型 如UML Resource等等 本例选择UML
targetModelType 目标模型的类型 由于本例是将源模型中类的信息输出到控制台 所以选择None
transformGUI 自行定制的配置界面的实现类名 如果不指定 则转换框架会提供一个缺省的界面
document 该模型转换相关文档存放的位置
为transformation定义规则
每个模型转换都由若干转换规则组成 每条规则实现了逻辑上相对独立的一部分转换功能 若干条规则组合在一起实现整个转换功能 转换规则的实现类应该实现模型转换框架中提供的 ibm re AbstractRule接口 一般需要实现如下两个方法
createTarget 从转换上下文对象中获取源模型对象 生成目标模型中相应的对象canAccept 该方法会在执行转换规则之前调用 验证源模型 通过验证则调用规则 否则执行引擎会忽略该规则
本例定义了 条转换规则 ClassRule OperationRule ParameterRule PropertyRule 分别操作源模型中的类 操作 参数和属性对象 并输出信息到控制台
转换规则需要在模型转换实例初始化的时候添加
UML Package uml = UML Package eINSTANCE;
addByKind(uml getClass_() new ClassRule());
addByKind(uml getProperty() new PropertyRule());
addByKind(uml getOperation() new OperationRule());
addByKind(uml getParameter() new ParameterRule());
这段代码将 条规则添加到模型转换中 并指定每条规则所能够接收的源模型对象的类型
运行测试
至此 Model to Text转换已经编写完成 下面开始运行测试 由于模型转换本身是一个Eclipse插件工程 所以必须从RSA中再启动一个RSA Workbench实例 将Model to Text插件加载运行
workbench启动之后 切换到modeling视图 选择Modeling菜单 >Transform >Configure Transformations 打开模型转换配置界面 可以看到 Model to Text转换已经注册到模型转换框架中
图 Model to Text转换已经注册到模型转换框架中
创建一个UML模型 新建一个类Account 并添加一些属性和操作
图 Account类
然后在Account类上右击 从弹出菜单中选择Transformations > Class to Text > console 开始执行转换 该转换接收Account类作为源模型对象 将Account类的信息输出到控制台
Class: Account
Attribute: id
Attribute: balance
Operation: setID
Parameter: id
Operation: getID
Parameter: ReturnResult
Operation: setBalance
Parameter: balance
Operation: getBalance
Parameter: ReturnResult
在模型编辑器中创建一个Component 作为输入再次执行Model to Text转换 由于Component不能通过源模型认证 因此模型转换框架在配置界面上报告错误
图 源模型对象验证错误
cha138/Article/program/Java/hx/201311/27199相关参考
基于Spring框架的WebSphere应用开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 基于微软ASP.NET AJAX框架开发幻灯片播放网页
基于微软ASP.NETAJAX框架开发幻灯片播放网页 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 基于ASP.NET MVC框架开发Web论坛应用程序[1]
基于ASP.NETMVC框架开发Web论坛应用程序[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 基于ASP.NET MVC框架开发Web论坛应用程序[3]
基于ASP.NETMVC框架开发Web论坛应用程序[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 基于ASP.NET MVC框架开发Web论坛应用程序[2]
基于ASP.NETMVC框架开发Web论坛应用程序[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
多线程开发的捷径:构建Java并发模型框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Jav
知识大全 基于hibernate的开源通用查询框架-bba96
bba框架当前版本包含 bbacore核心框架封装HibernateCriteria提供方便的查询以及分页支持查询参数 bbastruts基于Struts的开发框架依赖core提供便捷的CRU
MicrosoftSyncFramework(MSF)为我们提供了进行同步应用开发的基础框架和API这些API即有基于托管代码的也有基于非托管代码的也就是说我们既可以开发基于NET平台使用托管AP
今天进入可开发前的准备阶段在开发项目前要求每位开发小组成员都必须先阅读以下约定严格按以下约定来进行开发 系统框架 ·系统总框架采用SUNJEE框架使用JAVA/XML技术和组件技术基于
两阶段增长模型的框架假设企业第n年现金流量增长率为g,n+1年以后增长率均为g,则对企业两个阶段时间间隔的划分成为计算其现金流量的关键点。2005年与2006年全国注册会计师《财务成本管理》辅导教材在