UML模型到N层Web模型的模型驱动转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UML模型到N层Web模型的模型驱动转换
苏红军;闫云山;尤振华
【摘要】模型驱动架构(MDA)是由对象管理组织(OMG)提出的应用模型技术进行软件开发的方法和标准体系,其核心理念是平台无关模型建模和平台特定模型转换.通过编程实现基于元对象机制2.0(MOF2.0)查询/视图/转换(QVT)标准定义开发的框架,该框架可以将元模型转换为特定N层应用程序类,实现主要程序功能,从而大大提高开发效率.验证了通过编程实现模型驱动转换的灵活性和功能实现的多样性,包括XML文件对模型规范的描述以及生成代码的完整性.
【期刊名称】《计算机应用》
【年(卷),期】2014(034)004
【总页数】4页(P1161-1164)
【关键词】模型驱动构架;建模;N层结构;转换规则;元模型的转换
【作者】苏红军;闫云山;尤振华
【作者单位】宁夏科学技术发展战略和信息研究所网络技术科,宁夏银川750001;宁夏科学技术发展战略和信息研究所网络技术科,宁夏银川750001;宁夏科学技术发展战略和信息研究所网络技术科,宁夏银川750001
【正文语种】中文
【中图分类】TP311
模型驱动架构(Model Driven Architecture MDA,MDA)是由对象管理组织(Object Management Group,OMG)提出的一个开放的、中立于软件供应商的开
发架构。

MDA广泛地支持不同的应用领域和技术平台, 成为应用领域和具体技术
平台之间的杠杆,其目的是为了解决以下三个问题:1)用建模替代以代码为中心的
软件开发方法;2)解决不同平台、不同技术路线之间的集成和互操作问题;3)解决新
技术和新平台的适应性。

MDA具有高效的实现系统集成和互操作、解决遗留系统问题、适应业务逻辑的快速变更以及缩短开发周期等优点。

MDA的理念是将业务分析与业务实现分离,将软件开发人员的关注点转移到业务领域和业务建模。

本文的重点是编程实现一个典型源元模型转换到N层应用程序目标模型,通过目
标模型直接实现应用程序的主要功能。

期间将通过建模和元对象机制2.0(Meta-Object Facility 2.0, MOF2.0)查询/ 视图/ 转换(Query-View-Transformation, QVT )介绍几种转换规则,以及可以用来产生目标应用程序所需的代码。

N层架构为开发人员创建灵活的、可重复使用的应用程序提供了一个模型,并为
一些企业的业务连续性提供了至关重要的优势。

N层架构的典型特征包括安全性、可用性、可扩展性、可管理性、易维护和数据抽象。

因此,本文将采用一个标准
N层应用程序架构作为实验对象。

本文使用图1所示架构模式,包括表示层、业务层、数据访问层和数据库/数据存储。

1.1 MVC2模式的表示层
近几年,实现MVC2模式的框架推出了很多,包括Struts、PureMVC、Gwittir、SpringMVC、Zend、 MVC2等。

目前Struts仍然是最成熟的解决方案,赢得了大多数开发商的信任,因此在本文采用Struts建模。

1.2 数据传输对象和依赖注入模式的业务层
业务层是表示层和数据访问层之间的抽象部分,以避免两层直接的紧耦合,并隐藏了表示层处理业务的复杂性。

业务层会执行所有业务处理要求,其功能的实现是通过运行数据传输对象(Data Transfer Object,DTO)模式和依赖注入
(Dependency Injection,DI)模式的服务,以确保对象之间的一个解耦合。

DI可
以减少组件之间的耦合,同时也避免了重复创建样板工厂代码。

1.3 数据访问对象模式的持久层
数据访问层是连接数据库的接口,实现对数据库的创建、检索、更新和删除等操作。

数据访问对象(Data Access Object,DAO)模式用在应用程序中抽象固定的细节
内容,其优点是可以改变持续机制,而不影响逻辑域。

本文将采用Java社区最常
用的DAO模式Hibernate。

MDA建立了通用信息模型(Common Information Model,CIM)、平台无关模
型(Platform Independent Model,PIM)和平台相关模型(Platform Specific Model,PSM)模型直接转换的可追溯机制。

MDA模型转换本质上是CIM转换到PIM和PIM转换到PSM。

本文将致力于把PIM到PSM的转型应用到N层Web 应用程序。

2.1 建模方法
模型转换通常有三种方法:编程、模板和建模。

建模是本文用到的方法,包括了模型驱动和模型转换的概念。

目标是建立一个长期和富有成效的转换模型,并独立于执行平台。

建模的优点是转换规则是双向的,可以保持同步、一致性和模型的逆向工程。

图2阐明了建模的方法。

模型转换的依据是根据MOF2.0QVT元模型定义的模型
结构,MOF2.0 QVT元模型体现了一些在源模型和目标元模型转换之间相匹配的
结构,该模型是一种可重复和有效的模型,它的转换必须在一个执行平台上完成。

2.2 MOF 2.0 QVT
模型转换是MDA的核心,MOF2.0 QVT是这些模型变化的标准。

该标准定义了
开发转换模型的元模型。

QVT标准拥有一个混合特性,它包含了三种不同的转换
语言。

命令式语言更适合于复杂的转换,包括重要算法组件。

与声明性语言相比,命令式语言具有管理可选择转换的优势。

基于这个原因,选择在本文使用命令式语言。

操作映射语言支持命令式QVT组件,视图导航需要明确的命令以及目标模型元素的显式创建。

操作映射语言扩展了QVT的两个说明性语言,添加了必要的结构(顺序、选择、重复等)和OCL边缘效应的结构。

本文采用QVT的操作映射语言实现SmartQVT,SmartQVT是QVT操作语言的
一个开放源码的成果。

SmartQVT包含3个部件:1)QVT编辑:帮助最终用户编写QVT说明书。

2)QVT分析器:转换QVT文本语法到匹配QVT元模型协议的表达式。

3)QVT编译器:一个Java程序生成的EMF API执行转换。

输入的格式是一个符合QVT规范的XMI2.0格式的QVT元模型。

为了发展源模型和目标模型之间的转换算法,本章提出采用UML元模型和N层
架构元模型的元类。

3.1 UML元模型
基于典型UML模型的源元模型结构包含了数据类型和类。

这些类中包含类型属性,它们的特点是多重性,类由业务类型参数组成。

图3展示了源元模型,模型包含
了UML包、抽象元类、UML类、UML业务类、UML数据类型,操作参数以及
属性。

3.2 N层元模型
本文的目标元模型由三个基本部分组成。

图4展示了第一部分的目标元模型。


个元模型是DAO模式的简化版本。

主要包含了项目包、DAO元类、服务接口、
数据库中的表等。

图5展示了目标第二部分的元模型。

这个元模型是应用程序要处理的业务模式,
在下面的例子中我们选择DTO和DI模式的组件,将提出不同的元类来表示DI业
务包。

这个元模型结构代表了目标应用程序的业务逻辑,此逻辑是组成DTO组件的基础。

图6表示了目标第三部分的元模型。

此元模型表现了在用户界面中执行MVC2,主要包含了MVC2元类、各种类信息,以及实现各种功能的类。

这个元模型结构代表应用程序视图模型。

在这个模型中,servlet调用execute()的动作类的实例方法,此方法完成处理后调用映射findforward()与返回指定的JSP页面的方法。

本文采用自定义的转换规则对创建、删除、更新、显示操作进行转换。

首先开发EMOF模型对应到源和目标元模型,然后采用QVT业务转型语言映射。

以下代码是源模型到目标模型的主要算法,描述了源模型中“创建、删除、更新、显示”操作转换到目标模型中相关操作的实现逻辑和实现过程。

input umlModel:UmlPackage output crudModel:CrudProjectPackage begin end for
create BusinessPackage bp
for each pojo∈target model x=trans formationRuleTwoDto(pojo) link x to bp
end for
for each e∈source model x=transformationRuleTwoIService(e) link x to bp x=transformationRuleTwoSrviceImpl(e) link x to bp
end for
create UIPackage uip
create ViewPackage vp
vp=transformationRuleThreeView(e)
create ControllerPackage cp
cp=transformationRuleThreeController(e)
link vp to uip
link cp to uip
link dp to crud
link bp to crud
link uip to crud
return crud
end
源UML模型到N层结构目标模型的部分代码:
图7为PSM平台生成的N层程序目标模型,包含了实现程序功能的各种类包。

PSM模型生成的第一个单元是UIPackage,它是一个包括九个Jsp文件的viewPackage。

ControllerPackage包含迁移的映射元素,后者包含18个委托代理。

PSM模型生成的第二个单元是BusinessPackage,它包含了三个服务接口。

PSM 模型生成的第三个单元是DaoPackage,有包含属性的三个Pojos对象,三个Dao接口,接口包含了参数和方法。

针对模型转换技术中的实现问题,本文提出了一种基于编程实现源模型到目标模型的自动转换方法。

通过编程实现了具体的算法和接口,符合建模标准的UML源模型就可以转换成一个N层目标模型,接着实现了模型的自动程序化,从而自动产生了可以运行的程序。

通过文中实例,验证了这种方法的可行性,以及该方法的实用性和合理性。

在下一步的研究中我们将研究跨平台的模型驱动转换问题。

【相关文献】
[1] Apache Software Foundation [EB/OL]. [2013-06-12]. .
[2] Model Driven Architecture (MDA) [EB/OL]. [2013-06-12].
/mda/index.htm
[3] BEZIVIN J, HAMMOUDI S, LOPES D, et al. Applying MDA approach for Web service platform [C]// EDOC ’04: Proceedings of the Eighth IEEE International Enterprise Distributed Object Computing Conference. Piscataway: IEEE, 2004: 58-70.
[4] MBARKI S, ERRAMDANI M. Model driven transformations: from analysis to MVC 2 Web model [J]. International Review on Computers and Software, 2009,4(2): 612-620 [5] LIU Y, KANG J, LYU W. Overview of model-driven architecture [J]. Computer Science, 2006, 33(3): 224-228. (刘亚军,康建初,吕卫锋.模型驱动体系结构研究综述[J].计算机科
学,2006,33(3):224-228.)
[6] KANG N, ZHANG Z. Model driven architecture and analysis of its theory of mapping [J]. Computer Simulation, 2007, 22(7): 145-148. (康南,张忠能.模型驱动体系结构及其映射规则原理分析[J].计算机仿真,2007,22(7):145-148.)
[7] LI L. The application of MDA approach [J]. Computer Systems & Applications, 2008,
17(1): 97-100. (李丽.模型驱动架构的应用[J].计算机系统应用,2008,17(1):97-100.)
[8] ZHANG D, LI S. Aspect-oriented MDA development approach [J]. Computer Applications and Software, 2008, 25(1): 73-75 (张德芬,李师贤.面向方面的MDA开发方法[J].计算机应用与软件,2008, 25(1):73-75.)
[9] WANG X. Research on application of MDA in Web service composition technology [D]. Zhenjiang: Jiangsu University,2009(王孝强. MDA在Web服务合成技术中的应用研究[D].镇江:江苏大学,2009.)
[10] FAN Y, WANG C. Overview of model driven architecture [J]. Journal of Chongqing Vocational & Technical Institute, 2008, 17(6): 99-102. (樊银亭,王春清.模型驱动架构综合研究[J].重庆职业技术学院学报,2008,17(6):99-102.)
[11] ZHAO Y, WANG L, JIANG Z. Research on rapid software development framework based on MDA [J]. Aeronautical Computing Technique, 2011, 41(3): 82-92. (赵耀宏,王丽芳,蒋泽军.基于MDA的快速软件开发框架的研究[J].航空计算技术,2011,41(3):82-92.)
[12] DONG S, LIN K. Comparison research on MDA, cloud computing and SOA [J]. Computer Science, 2012, 39(B06): 207-209. (董淑英,林克成.MDA与云计算、SOA的比较研究[J]. 计算机科学,2012,39(B06):207-209.)
[13] WANG X, XUE J, WEI Y. Analysis and research of software developing method based on MDA [J]. Public Communication of Science & Technology, 2013(10): 215-216. (王晓娟,薛佳楣,韦韫韬.基于MDA软件开发方法的分析与研究[J].科技传播,2013(10):215-216.)。

相关文档
最新文档