应用 RSA 实现 EMF 的开发

简单EMF简介——构建ecore model Ecore的基本介绍 阅读详情
开发EMF模型仅限于XML Schema、IBM Rational Rose、Java source或者EMF Ecore。IBM Rational Software Architect(RSA)使许多应用程序开发任务能够在与其他商业应用程序开发工具的协调中充分享受到UML模型的好处。RSA和EMF的结合将给商业性的或者开放源代码的开发者提供一个强有力的工具。

导言

本文探讨运用IBM® Rational® Software Architect(RSA)来开发一种可以被转换为Eclipse Modeling Framework(EMF)模型的模型。为什么您想要这样做呢?因为EMF为我们提供了许多有用的特性,其中包括:

  • 默认的XML/XMI连续性
  • 模型改变通告
  • 反射的API
  • 适配器
  • 编辑器

于是您会问:“我为什么想要这些东西?”。因为由于RSA模型和EMF的结合,您能够方便快捷的创建一个数据模型并对其加以编辑。

在RSA中创建与平台无关的模型(PIMs)使您可以自由地将这些模型设定为特定平台的模型(PSMs)。这种重新定位目标可以通过应用UML概要文件和其他特定运行时的元数据更新发生在模型转换的过程中。这些模型同样可以被导出到其它格式以便别的应用程序使用,比如EMF和UML2。

这些转换不仅仅局限于RSA;它们同样可以发生在IBM® Rational® Software Modeler(RSM)中。如果您想获取RSA和RSM方面的更多信息,以及它们之间的不同之处,可以参阅资源部分。





回页首


思考RSA模型

RSA一瞥

RSA是一种综合性的设计和开发工具,它利用UML的模型驱动开发(MDD)来帮助您创建优良结构的应用程序和服务。请您参阅资源部分来了解关于RSA的产品简介和指南。

本文仅关注类图以及相关联的模型元素(类、包、关联、属性和枚举)。

一个简单的图书馆模型

这个简单的模型是基于EMF 指南中的IBM® Rational Rose®模型,并已经在RSA中被重新创建。它包含三个彼此间相互关联的类。图书馆既包含作者也包含图书,就像图1中显示的那样。正如您所期盼的,每本书拥有一个作者并且每位作者拥有一部书。“图书”这个类拥有一项枚举类型的属性。

关于RSA/RSM的更多的信息

请访问developerWorks RSA 专题


图1:RSA中的简单的图书馆模型
Sample Library Model

在高层次上和与您将要创建的EMF模型的比较中来理解此模型时非常重要的。





回页首


创建EMF模型的可选方案

当您使用RSA模型化您的数据模型和应用程序时,必须先来看一下EMF为创建一个用于产生代码的EMF模型所提供的工具。EMF以XML Schema、Rational Rose、EMF Ecore和带注解的Java™为它的生成器模型提供了输入源,也就是我们所知道的genmodel。 从UML2中编写RSA转换来提供自定义的转换是可能的。本文将重点关注在已经可以得到的可选方案上,而不需要构造一个特定的转换方式。RSA允许您导出一个其他模型格式的RSA模型,比如Ecore或者UML2模型。

从RSA模型到EMF Core(Ecore)模型

RSA和EMF都提供一种表示模型的机制。RSA模型是基于UML2标准的,这种模型不仅可以建模一个系统的静态数据模型,而且还可以对行为进行建模。EMF的模型更多的是关注于数据模型,以及一个用于操作处理和访问的API。

从RSA到Ecore的转换是创建一个EMF模型的最佳途径,因为可以从“EMF模型和项目创建”向导中直接使用它。

对于一个RSA模型,您只需要点击File->Export然后选择Ecore Model选项,就像图2中所示的那样。


图2:导出Ecore模型
Export Ecore Model

Ecore模型将包含两个Library包。这是因为RSA顶层模型元素及其所包含的都被转换为了EMF包。如果希望的话,您可以先编辑Ecore文件来删除一个多余的包,确保被包含的模型元素被移送到目标包中。

从RSA模型到UML2模型

RSA的模型是一种对UML2标准模型的私有扩展(请参阅资源部分来获得更多关于UML2标准和Eclipse子项目的信息)。RSA包含一个内置的导出功能来完成从一个RSA模型到一个标准的UML2模型的转换。这一转换过程能够被用来开发EMF模型,但这种做法并不理想,因为它需要一个从UML2到Ecore的额外转换过程。只有在此之后Ecore模型才能被用来创建一个EMF模型。

将一个RSA模型转换到一个UML2模型,点击File->Export然后选择UML2 Model选项,就像图3中所示的那样。


图3:导出UML2模型
Export UML2 Model




回页首


创建EMF模型

为了开发利用EMF,就需要创建一个EMF发生器模型,就是我们所知道的genmodel

从Ecore创建一个新的EMF模型

利用一个标准的Ecore模型,您希望创建一个完全的EMF模型,以便在运用EMF的开发过程中充分利用它。

要创建一个完全的EMF模型,你可以使用所提供的EMF向导。首先点击File->New->Other,然后打开选项Eclipse Modeling Framework选择EMF模型向导。点击Next来继续该向导,就像图4所示的那样。


图4:EMF模型创建向导
EMF Wizard

输入一个名称来生成模型文件——例如,Library.genmodel——然后点击Next。就像图5所示的那样,选择load from an EMF core model,因为您已经在先前的RSA中创建了这些,点击Next


图5:从Ecore而来的EMF模型
EMF Wizard Source

在利用适当的Browse按钮之前,定位从RSA中导出的Ecore文件。点击Next就像图6中所示的那样。


图6:提供源Ecore
EMF Wizard Source Ecore

最后选择“Library ”包,然后点击Finish退出向导。

现在,您将得到一个按照您所制定的要求而创建的 Library.genmodel 文件。

观察新的EMF模型

现在您已经创建了 Library EMF模型,在它们的编辑器中打开新的资源来观察结果。从中可以打开元素并检查它们的属性,就像图7中所示的那样。


图7:Genmodel 和Ecore 的生成
Ecore generated

现在此模型已经被转换到EMF模型,EMF可以在这个模型中被充分利用。请参见资源部分来获得关于EMF的更多的特性。





回页首


总结

RSA和EMF在应用程序开发周期中都有着特定的用途,目的就是使您能够容易的跨工具使用。当工作在复杂的模型中时,使用RSA来开发模型就变得非常理想。RSA能够提供可视化的UML建模,利用概要文件使之适应UML语义的能力,以及从一种模型转换到另一种模型的能力。RSA具有将其模型转换到EMF core模型的能力。另外,使用EMF所支持的功能,您可以使用EMF core模型来产生一个完整的EMF模型。

同样需要注意到的是,RSA具有一项基于已经存在的EMF core模型创建模型的特性。在EMF core模型是唯一可得到的模型来源时,RSA模型是最理想的方法。

IBM Rational Software Architect与Eclipse集成开发体验及效率优化 本文深入探讨了IBM Rational Software Architect与Eclipse的深度集成,揭示了其如何从UML绘图工具进化为强大的模型驱动开发平台。文章提供了从精简安装、启动优化到插件配置的完整效率提升方案,并重点介绍了利用模型模板、双向工程及自动布局等核心功能,实现从绘图到高效建模的实战飞跃,助力开发者在复杂企业级系统设计中提升工作流与代码同步效率。 阅读详情

相关推荐

MDA/MDD 离你有多远?

本讲座简要介绍模型驱动架构和模型驱动开发(MDA/MDD)的概念及其技术发展趋势,以及 IBM Rational 软件对于 MDA/MDD 的支持。在本讲座中讲座涉及以下主题: 模型驱动架构(MDA) 模型驱动开发(MDD) IBM Rational Software Architect (RSA) MDA, SOA 和 RUP

IBM技术期刊 1722

emf开发_使用动态EMF建立元模型

Eclipse Modeling Framework(EMF)描述了数据模型,并允许从不同类型的数据模型工件(例如XML SchemaRationalRose®模型,Ecore模型或Java注释)轻松生成代码。 在代码生成过程中,EMF生成器会创建模型代码,其中包括类型安全接口和数据模型的实现类。 但是,在某些情况下,应用程序不需要这些类型安全的接口和实现类。 相反,需要可以在应用程序组件之...

cuxiong8996的博客 1215

ESP32搭配FT6236触摸屏:从芯片手册到完整I2C驱动代码的保姆级解析

本文详细解析了ESP32搭配FT6236触摸屏的I2C驱动开发过程,从芯片手册解读到完整代码实现。通过硬件架构分析、寄存器配置、I2C通信封装及触摸数据处理等步骤,提供了一套完整的驱动解决方案,帮助开发者快速掌握ESP32与触摸屏的交互技术。

weixin_29174385的博客 236

基于RSA模型转换框架的开发

转自:http://www.uml.org.cn/UMLTools/200807031.asp 本文内容包括: 1 内容简介2 模型转换3 RSA模型转换框架4 基于RSA模型转换框架的开发5 扩展模型转换6 总结参考资料 本文首先介绍模型转换的基本概念,然后介绍RSA模型转换框架,之后本文以两个具体的例子介绍如何在RSA开发

IT古董 1598

Eclipse 建模项目

Eclipse 建模项目旨在 Eclipse 社区中发展和促进基于模型的开发技术。它包括一系列子项目,提供了一套统一的建模框架、工具和标准实现Eclipse Modeling Framework (EMF) 是支持自动代码生成的软件建模框架。它用于其他许多获益于模型驱动软件开发的项目中。 "用 Eclipse Modeling Framework 实现模型驱动开发,第 1 部分 ":...

yangzibin的博客 854

用模型驱动Eclipse开发 ( by quqi99 )

用模型驱动Eclipse开发 ( by quqi99 ) EMFEclipse Modeling Framework)是一个模型架构和代码生成工具,它可以用来建构以结构化数据为基础的工具或者应用。作为MDA和Eclipse的结合体,它发展迅速,IBM的大部分工具产品如RSA等都将建立在它的基础之上。 样例 我们将构建一个简单的手机库管工具,它只维护种类信息,并不存储...

39

[zt]用模型驱动Eclipse开发

FROM:http://www.rcp.org.cn/bbs_topic.do?forumID=8&postID=163       EMFEclipse Modeling Framework)是一个模型架构和代码生成工具,它可以用来建构以结构化数据为基础的工具或者应用。作为MDA和Eclipse的结合体,它发展迅速,IBM的大部分工具产品如RSA等都将建立在它的基础之上。    ...

疯狂的菠菜 350

如何使用IBM Rational Software Architect实现模型驱动的软件开发

模型驱动架构(MDA)是OMG提出的新的方法学, 是一种新的系统开发方法,它强调整个系统开发过程由对软件系统的建模行为驱动,完成系统需求分析、架构设计、构建、测试、部署和运维工作。与传统的UML模型相比,MDA能够创建出机器可读和高度抽象的模型,这种模型通过转换(Transformation)技术可自动转换为代码、测试脚本、数据库定义以及各种平台部署描述。 0 评论: 宁

科华在线 3656

关于本体编程的实现

临近期末,我有一门课程的期末项目是做一个教育领域的本体应用系统,所以最近经常思考本体在这样一个系统中所起的作用,以及该如何实现。(本体是否只能在web环境下发挥作用,使用本体描述一个独立系统的模型是否值得?) 假设要做的是选课系统,很容易看出系统里应该有这些对象:课程、学生、教师,它们之间互有联系。现在的问题是,本体、Java类和数据库各扮演怎样的角色?我目前想到的方法有以下几个: ...

diaozhuo4700的博客 231

使用 EMF Query 查询 EMF 模型

 EMFEclipse 组织推出的建模框架。它能够帮助我们将模型(UML, XSD等)转换成为健壮且功能丰富的Java 代码。通过使用 EMF,我们编写的程序能免费的获得一个健壮的模型层,它通常比我们自己手工编写的模型层更为健壮。事实上,有很多商业产品都使用了 EMF 来作为其模型层。由于 EMF 的广泛使用,Eclipse 组织为其推出了众多的周边模块。本文将要介绍的是一个基于 EMF

CS_Mercy的专栏 1071

构建 Eclipse 插件在 EMF 模型中浏览内容

通过本文,了解如何使用 EMF.Edit 和 Common Navigator Framework (CNF) 创建基于树形查看器的模型导航插件。构建一个 Eclipse 插件,使用户能够操作和浏览基于 Eclipse Modeling Framework (EMF) 的模型的内容。文中对开发插件提供了分步指导,实现了可通过 EMF 编辑框架提取模型内容的适当结构,并在基于 CNF 的视图部件显示

CS_Mercy的专栏 815

Eclipse Modeling Framework 实现模型驱动开发,第 1 部分

创建 UML 模型并生成代码文档选项<!--document.write(打印本页);//-->打印本页<!--document.write(将此页作为电子邮件发送);//--> 将此页作为电子邮件发

CS_Mercy的专栏 812

使用 Eclipse Modeling Framework 进行建模,第 3 部分

 Eclipse Modeling Framework(EMF)中包含了一个开放源代码的工具 JMerge,这个工具可以使代码生成更加灵活,可定制性更好。本文使用一个例子来展示如何将 JMerge 添加到一个应用程序中,并为不同的环境定制 JMerge 的行为。概述本系列文章的 前一篇介绍了有关 Eclipse 的 Java Emitter Templates (JET)和代码生成的知

CS_Mercy的专栏 641

【设计模式精讲】3.统一建模语言(UML)速览

【摘要】:同一段设计,有人用两百条群消息仍说不清,有人用一张图五分钟达成共识。UML 的价值不是把系统画得复杂,而是选择合适视角,准确回答“有哪些角色”“谁依赖谁”“运行时谁先调用谁”“对象经历哪些状态”。本文以 Mermaid 为绘图工具,介绍类图、序列图、状态机图、用例图和活动图,重点讲透前三种。类图部分不再把不同关系硬排成一条强弱链,而是区分使用与整体关系、类型关系,并给出与 C++ 所有权和多态机制一致的代码;随后用订单事件和订单生命周期演示时序与状态表达,最后总结选图方法和常见误区。

码工许师傅 452

UML(统一建模语言)详细笔记

UML(统一建模语言)详细笔记

质量不太好的博客 824

面向对象设计中的 UML 类图指南

UML 类图不仅仅是文档;它们是软件设计的关键思维工具。通过掌握类、属性和操作的符号,并理解继承、聚合、组合和依赖之间细微的差异,您可以创建准确反映系统架构的模型。

Warren Lynch 的博客 344

ValidX分组验证详解:不同场景使用不同验证规则

一个 DTO 引发的连环事故: 创建时必填、更新时禁止:UserDTO 里用户名注册时必须填、编辑资料时却不用改;ID 新增时不能传、修改时必须带。于是团队拆了 CreateUserDTO 和 UpdateUserDTO 两个类,字段复制一份,改字段时漏改一处,线上悄悄出现"更新把用户名清空了"的 bug。 同一字段两套规则:订单号在"下单"和"查询"两个接口里一个必填、一个可空。为了一个字段写两个 DTO,Controller 里到处是 if (dto.getX() != null) 的补丁式判断。 审

vipxieliang的博客 659

Vectorless dynamic动态功耗分析——Voltus

power 计算工具会根据设计信息和用户提供的activity和switching约束来生成虚拟的worst-case的power vector,难点在于哪些instances视为switching,在没有仿真的前提下如何确定开关的时间,使用timing文件(TWF)

qq_44347276的博客 2739

光伏发电Simulink模型-光伏电池模型-基于DC-DC变换器的光伏发电模型-10W功率太阳能电池模型-太阳能光伏电池模型

1、光伏发电电池模型2、光伏电池模型(附带论文)3、基于DC-DC变换器的光伏发电模型4.10W功率太阳能电池模型5、太阳能光伏电池模型

上一篇: 使用 EMF Query 查询 EMF 模型
下一篇: 构建 Eclipse 插件在 EMF 模型中浏览内容
CS_Mercy
博客等级 码龄18年 12粉丝 45原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值