uml模型到代码的转换

uml模型到代码的转换

ID:8796199

大小:167.00 KB

页数:5页

时间:2018-04-08

uml模型到代码的转换_第1页
uml模型到代码的转换_第2页
uml模型到代码的转换_第3页
uml模型到代码的转换_第4页
uml模型到代码的转换_第5页
资源描述:

《uml模型到代码的转换》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、UML模型到代码的转换Sean2003/09/041.概述UML在软件系统中的建模能力和在业界的认可程度是不用怀疑的。我们可以看到,越来越多的软件项目采用UML作为项目的分析设计的表述手段。然而,UML模型作为系统的模型描述最终是要变为各种可以编译运行的代码的。从UML模型到代码的过程,在过去是通过人工来进行翻译的。而现在,这个模型到代码的转换过程都是通过软件工具自动化的完成的。因为在UML的设计之初,就考虑到了模型到代码转化的自动化的问题,所以UML模型本身就是适合自动化过程的。如今,已经有很多UML工具实现了UML模型到代码的转化过程,如Ro

2、se,Together,Argo等等。这里给出了一个通用的模型到代码的转换方法,可以实现对UML模型到代码转化的定制。可定制的意义在于,可以为UML模型提供到不同编程语言的代码转换引擎。通常工具提供的有c/c++,Java等常用语言的转换模块。这里以实时嵌入式系统应用的SystemC为例,来定制自己的UML到代码的转换工具。当然可以利用这个转换引擎,实现UML模型到各种语言的转换。定制化的UML模型到代码的转换工具的意义,不但是可以生成自己的编程语言源码,而且这个转换模块还可以作为UML模型到其它模型描述形式的转换桥梁,比如UML模型的报表,模型

3、审计等。如下图。图表1模型转换引擎所处的位置1.转换实现2.1工具的选择作为UML模型的描述标准有OMG标准化组织的XMI。各种UML建模开发工具也都支持从UML内部元模型到XMI的转换工作。比如Rose通过插件的形式支持XMI格式的输出,Together也支持XMI格式的数据,Argo本身就是以XMI的格式为模型的保存格式的。XMI是一种XML的描述形式,虽然XML形式的表述在JDOM等XML解析器的支持下已经提供了方便的可编程性,但是由于JDOM等XML解析器只是通用的XML处理软件包,对于XMI的处理是有一定的差距的,在编程上比较麻烦。为此

4、俄国人做了一个XMI的java版本的处理软件包,为UML的模型处理提供了方便。在sourceforge上也可以看到基于这个开发包的XMI生成代码的开源项目。利用XMI是一个好的未来方向,但是现有的阶段各个UML开发工具对XMI的格式显现各有不同,比如togeher导出的XMI文档到Rose中以后模型描述会有所不同。这样就阻碍了实用性。当然随着XMI的发展和各个工具厂商的支持,从XMI来处理模型的方式是一个完美的解决。如果可以作到XMI的标准化,那么代码转换引擎就可以真正做到与UML绘制工具的无关性。先有阶段选择Together作为UML的绘制工具

5、,通过Together的开放API来操作Together中的UML模型,最为模型转换的数据元。由于Together的API是java语言的接口,所以转换引擎选用Java作为开发语言,这样可以更好的与Together实现无缝的集成。模型到代码的转换完全可以通过手工编码的方式来完成这个转换的工作。为了提高转换模块的灵活性和通用性。有几种技术方案可以选择。一个是jsp技术,一个是模板技术。这两中方式都是动态文本文件的产生技术,他们各有个的优势。从方便性上来说更倾向模板的方式。因为jsp要有jsp/servlet的执行容器才可以工作。这里选择Apache

6、的Velocity模板引擎。2.2模块实现2.2.1UML模型的获得Together为我们提供了开放API,可以用来操作整个Together的开发环境包括其中的模型。以下是开放API的开发包:com.togethersoft.openapi.ide负责处理与Together开发环境有观的APIcom.togethersoft.openapi.rwi负责处理与UML模型有关的APIcom.togethersoft.openapi.sci负责处理与代码编辑器有关的API通过正三方面的API开发包,可以完成对Together的全面控制,当然包括模型。T

7、ogether自己也是通过相同的模块插件方式来实现功能扩张的。下面是代码实现。图表2获得UML模型代码样例2.2.2SystemC模板编写详细的Velocity可以参考Velocity的开发手册。Velocity为动态生成文本文件提供了一个工作引擎。在Velocity模板中可以访问传入模板的java对象。这个转换模块就是接受模型对象scModle把模型数据传递给Velocity,再通过Velocity引擎把模型展开为SystemC代码。下面是SystemC的模板代码实例。图表3SystemC模板2.2.3集成利用Together的开放API把Sy

8、stemC代码转换模块集成到Together的开发环境。成为Together中的一个服务插件。图表4把转换模块集成到Together环境

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。