应用 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模型是最理想的方法。

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

相关推荐

27、场景集成与对象切片行为建模:综合方法解析

本文探讨了软件开发中两个关键问题:场景集成与对象切片行为建模的综合方法。针对场景集成,提出了一种基于范畴论余极限构造的方法,将UML序列图形式化为类型图,并通过原型工具验证了其可行性与通用性。同时,分析了对象切片行为建模,基于非侵入式事件观察机制提出了一种新的类切片组合方式,支持多个设计团队独立开发并在后期无缝集成。文章通过案例分析和实际应用说明了这些方法在提升软件开发效率和质量方面的潜力,并展望了未来研究方向。

peach的博客 70

IBM Rational Software Architect与Eclipse集成开发体验及效率优化

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

weixin_29292535的博客 527

60、面向服务设计质量的度量

本文探讨了面向服务架构(SOA)中服务设计质量的度量方法,重点分析了内聚性、耦合性、可重用性、可组合性和粒度等关键质量属性。通过回顾相关工作并结合两个保险行业的实际案例(ServiceDesignA 和 ServiceDesignB),提出了适用于服务设计层面的度量指标,如 SFCI、SOCI、SRI、SCI 和 SGI 等,并验证了其有效性。研究结果表明,这些度量方法能够有效评估服务设计质量,发现设计缺陷,支持开发、测试和治理规划。

kotlin6android的博客 57

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

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

cuxiong8996的博客 1216

Cadence 17.4 PSpice仿真555定时器输出方波

这里利用555定时器组成多谐振荡器产生1Hz的方波并用PSpice仿真其输出的方波波形。555定时器是一种广泛应用的中规模集成电路。根据其内部组成的不同,可分为双极型(555B)和CMOS型(555C)两类。两种类型的定时器各有所长。双极型定时器具有较大的驱动能力,其输出电流可达200mA,可直接驱动发光二级管、扬声器、继电器等负载。而CMOS型定时器的输入阻抗高、功耗低。

tj_nonstoper的博客 1万+

Springboot+Vue 实现鸿蒙商城管理系统开发实践

通过使用 Springboot 和 Vue 技术栈,我们成功实现了鸿蒙商城管理系统的开发。系统具备用户管理、商品管理、订单管理、库存管理和统计分析等功能,支持 Web 端和鸿蒙端的访问和操作。在开发过程中,我们充分利用了 Springboot 的快速开发优势和 Vue 的组件化开发特点,提高了开发效率和系统的可维护性。同时,通过与鸿蒙设备的集成,实现了多设备之间的数据交互和协同工作,提升了用户体验。

ZXJ_SXT的博客 1324

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

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

IT古董 1605

大疆OcuSync vs 传统2.4GHz:深度拆解无人机图传射频模块的硬件差异

本文深度对比了大疆OcuSync与传统2.4GHz无人机图传射频模块的硬件差异,涵盖芯片组、天线系统、PCB设计、散热方案及生产测试等核心环节。重点解析OcuSync的全定制SoC芯片、智能MIMO天线阵列及精密PCB布局如何实现革命性性能提升,为无人机图传技术发展提供专业参考。

u5v6w7的博客 806

Eclipse 建模项目

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

yangzibin的博客 854

Spring Boot 微服务 API 网关实战:Spring Cloud Gateway 整合,搞定路由转发 + 统一认证 + 限流熔断(企业级落地)

摘要:本文详细介绍了SpringCloud Gateway在微服务架构中的核心作用与实现方案。作为API网关,它解决了服务入口分散、认证冗余、流量失控等痛点,提供路由转发、统一认证、限流熔断等能力。文章通过图书管理系统案例,演示了SpringBoot整合Gateway的全流程,包括基础路由配置、JWT全局认证、局部参数校验、Sentinel限流熔断以及Nacos动态路由等核心功能实现。特别强调了企业级落地中的关键注意事项,如路由顺序、过滤器执行顺序、HTTPS配置等。该方案能有效构建统一、安全、高效的微服务

lamehsl的专栏 1381

231003-四步MacOS-iPadOS设置无线竖屏随航SideCar

新建虚拟屏幕参考文献。

专注机器学习之路 7485

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

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

43

【Python搞定车载自动化测试】——Python实现车载以太网DoIP刷写(含Python源码)

随着智能电动汽车行业的发展,汽车=智能终端+四个轮子,而人工智能也发展越来越快,Python语言使用越来越广,本章节主要介绍如何使用Python语言基于Pytest自动化框架来实现DoIP诊断自动化测试。首先回顾一下DoIP诊断基础知识:DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。

测试领域技术分享 3795

[zt]用模型驱动Eclipse开发

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

疯狂的菠菜 352

FreeRTOS系统从入门到精通万字保姆级教程

例如,在基于ARM的硬件平台上,可能需要实现针对ARM处理器的上下文切换代码,并确保FreeRTOS能够正确地响应和处理ARM架构的中断。需要注意的是,在删除任务之前应确保任务已经完成了其所有重要的工作,并且没有其他的任务依赖于它,以避免数据丢失或系统不稳定。任务的优先级设定是其中的关键环节。在复杂的系统中,可能会有大量的任务需要同时运行,而这些任务的重要性和紧急程度各不相同。这通常包括创建初始任务(这些任务将负责系统的初始化和后续任务的调度)、设置系统时钟(以确保任务的准时调度和延时功能的正确性)等。

大模型大数据攻城狮的专栏 2069

64.qt quick-qml使用高德地图插件实现V2版本(新增:位置搜索、路径规划、轨迹编辑等)

qt quick-qml高德地图插件(新增:位置搜索、路径规划、轨迹编辑等) Qt地图插件,使用简单方便,不用浏览器内核,运行高效迅速 跨平台支持,(Qt Windows(MinGW, MSVC)\Linux(桌面、嵌入式)\Android\IOS\等) 在线更新瓦片地图下载,并且支持缓存保存离线地图实现.........

抵抗时间扭曲,坚持做一件有意义的事 6129

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

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

科华在线 3657

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

关于本体编程的实现

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

diaozhuo4700的博客 233

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

基于RK3588的多模态婴儿监测系统:视觉、听觉与环境传感融合实战

多模态融合通过整合视觉、听觉与环境传感器数据,实现更精准的状态识别与风险预警。其原理在于交叉验证不同模态信息,降低单一信号误报率,技术价值体现在边缘计算场景下的实时性与隐私保护。典型应用包括婴儿监护、老人跌倒检测及家庭安防。在RK3588平台上,利用NPU加速姿态估计、哭声分类与传感器融合,构建本地化智能监测方案,有效解决传统设备误报高、响应慢的问题。

weixin_34224941的博客 582

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

规范化软件开发过程解决方案——统一研发管理过程

一、Trufun服务目标 规范软件开发过程     优化软件开发流程 保证软件开发质量     提高软件开发效率     西安楚凡科技有限公司(Trufun)是全球领先的软件开发行业应用生命周期管理(ALM)和CASE工具解决方案提供商,倡导"实用、简洁"的产品理念,为企业实现产品开发与服务支持间的规范化应用平台,在管理软件研发全过程的同时,支持当前各种规范标准,实现企业的战略目标。 二、

企业级UML2建模工具、MDA工具、数据库建模工具、需求管理工具、集成开发平台 2314

基于 GMF 的流程分析工具的设计与实现

本文在 GMF2.0 的基础上,用一个自上而下的流程分析建模工具为例,完整的描述了从如何建模,如何修改模型,以及如何客户化生成的代码框架的整个过程,主要涉及布局,UI 外观,模型操作以及对多个 Editor 的支持等等。 前言 GMF(Graphical Modeling Framework)是Eclipse的一个开源项目,它在结合了EMF和GEF的基础上,为基于模型的图形化编辑器的开发提供了...

yiliner 675

专家访谈: Chris Gerken 谈模型驱动的开发

 引言 WebSphere 咨询师 Chris Gerken 回答了有关模型驱动的开发(Model-Driven Development,MDD)的问题,以及如何创作并使用可执行模式、Java™ Emitter Templates (JET) 和 Design Pattern Toolkit (DPTK) 来生成应用程序源代码。MDD 转换现在被用作可执行模式。它们自动执行约定、最佳实践和指导方针

IBM技术期刊 1888

本体编程的实现

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

web开发自学 159

Trufun 2007产品新特性

和世界同步,第一个支持UML最新规范UML2.1:在UML2.0刚刚发布之际,Trufun就已经开始着手研发支持UML2.0的工具,并且2006年3月份发布 支持UML2.0的Plato 2006。目前最新规范UML2.1已经发布,Trufun Plato 2007成为世界上第一个支持UML2.1的UML建模产品。UML2.1是UML的最新规范,未来软件开发的统一建模语言,其众多新特性为软件工程...

gaofen100 84
上一篇: 使用 EMF Query 查询 EMF 模型
下一篇: 构建 Eclipse 插件在 EMF 模型中浏览内容
CS_Mercy
博客等级 码龄18年 12粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值