RSA 中 UML 建模元素的扩展与定制.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RSA 中 UML 建模元素的扩展与定制 本文介绍了使用 IBM Rational Software Architect 进行 UML 建模元素的扩展与定制的基本实现方法。通过对一个实例场景的引用,文章重点阐明如何在 RSA 中基于 Eclipse 插件技术完成对 RSA 中 UML 建模元素的容器,即 Palette 的静态、动态扩展,以及对 Palette 扩展工具项定制时需要注意的技术难点。 1 摘要 RSA为基于UML进行业务建模并完成底层代码生成的开发人员提供了可视化的建模环境,开发人员可以因此方便的从Palette中拖取合适的UML元素来表达业务语义。但是在很多时候,开发人员希望在Palette中定制自己的工具项,从而便捷的使用具有更丰富业务概念和关系语义的UML元素。本文基于RSA 6.0中UML建模元素的容器--标准palette插件,从静态配置和动态加载两种途径提供了扩展Palette的基本方法和其中需要关注的技术难点。文章也举例说明了如何在具体实现中嵌入对Palette扩展工具项所生成的UML元素的定制。 HYPERLINK /developerworks/cn/rational/r-rsa-uml-profile/ \l ibm-pcon 回页首 2 引言 IBM? Rational Software Architect -- IBM软件开发平台的一部分,是IBM在2003年2月并购Rational以来首次发布的Rational产品。RSA作为一个集成化的设计和开发工具,支持使用UML进行模型驱动的开发以得到架构良好的应用和服务。RSA是在Eclipse 3.0 的基础之上创建的,因而支持Eclipse 提供的使用特性,其中最为主要的就是Eclipse插件技术。 本文所要讨论的Palette就是使用Eclipse插件技术嵌入到RSA工具环境中的一个UI组件。假设有如下的场景: 开发人员使用RSA为一个网上电子零售业务进行业务建模,在建模过程中需要大量重用如下4个业务角色: 提供商 消费者 商品 零售商 使用RSA建模环境下原有的Palette,需要反复拖入Class元素并为每个这样创建的Class赋予相应的构造型(Stereotype)以表达如上之一的业务角色。如下是使用RSA中未扩展的UML建模环境进行建模时的界面: 图1 使用RSA经典UML建模环境进行网上电子零售业务建模 为了提高建模的效率,开发人员希望在Palette中定制代表了这些业务角色的新元素。本文基于上面的实例总结了开发人员在进行Palette扩展时所采用的基本实现技术和难点。 HYPERLINK /developerworks/cn/rational/r-rsa-uml-profile/ \l ibm-pcon 回页首 3 基于RSA的Palette静态扩展 从前面的讨论可以知道,RSA是构建在Eclipse3.0的基础之上的。Eclipse的插件结构是Eclipse重要的基础设施和体系结构,其中应用扩展点是两个或者多个插件完成协作的基础。基于RSA的Palette静态扩展方法就是通过Eclipse,定义单独的插件来完成Palette扩展点的定义,从而增加新的建模功能。 本节将通过一个简单的零售业务建模的例子向您逐步展示如何来对RSA的Palette进行扩展。在零售业务建模中,我们需要四类角色:零售提供商、商品、消费者和零售商。为了提供更好的操作感觉和交互过程,我们将扩展Palette面板,这样进行零售业务建模就如同UML建模一样的直观快捷。 同RSA平台中其他插件一样,Palette也是通过扩展点来进行定义的,所以,必须要在插件清单plugin.xml文件中声明所需要的扩展点,并且提供相应的实现类。对于Palette而言,要声明的扩展点就是com.ibm.xtools.presentation.paletteProvider,要提供的实现类必须实现ernal.services.palette.IPaletteProvider接口。当然,也可以使用缺省的ernal.services.palette.DefaultPaletteProvider类,因为DefaultPaletteProvider已经完全实现了IPaletteProvider接口,在RSA的一些建模插件中,可以查找到使用的都是这个缺省的Palette提供类。 就palette而言,只有这样的声明是不够的,更加完整的扩展声明如清单1所示。 清单1 一个完整的Palette扩展声明 其中,比较重要的部分就是contribution节点,该节点声明了要为Palette添加内容,他的属性factoryClass必须要指定一个实现类,提供生成相应工具的工厂方法。在Contribu

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档