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

点赞:33555 浏览:155736 近期更新时间:2024-03-01 作者:网友分享原创网站原创

摘 要:模型驱动架构(MDA)是由对象管理组织(OMG)提出的应用模型技术进行软件开发的方法和标准体系,其核心理念是平台无关模型建模和平台特定模型转换.通过编程实现基于元对象机制2.0(MOF2.0)查询/视图/转换(QVT)标准定义开发的框架,该框架可以将元模型转换为特定N层应用程序类,实现主要程序功能,从而大大提高开发效率.验证了通过编程实现模型驱动转换的灵活性和功能实现的多样性,包括XML文件对模型规范的描述以及生成代码的完整性.

关 键 词 :模型驱动构架;建模;N层结构;转换规则;元模型的转换

0 引言

模型驱动架构(Model Driven Architecture MDA,MDA)是由对象管理组织(Object Management Group,OMG)提出的一个开放的、中立于软件供应商的开发架构.MDA广泛地支持不同的应用领域和技术平台, 成为应用领域和具体技术平台之间的杠杆,其目的是为了解决以下三个问题:1)用建模替代以代码为中心的软件开发方法;2)解决不同平台、不同技术路线之间的集成和互操作问题;3)解决新技术和新平台的适应性.MDA具有高效的实现系统集成和互操作、解决遗留系统问题、适应业务逻辑的快速变更以及缩短开发周期等优点.MDA的理念是将业务分析与业务实现分离,将软件开发人员的关注点转移到业务领域和业务建模.

本文的重点是编程实现一个典型源元模型转换到N层应用程序目标模型,通过目标模型直接实现应用程序的主要功能.期间将通过建模和元对象机制2.0(MetaObject Facility 2.0, MOF2.0)查询/ 视图/ 转换(QueryViewTranormation, QVT )介绍几种转换规则,以及可以用来产生目标应用程序所需的代码.

1.N层架构

N层架构为开发人员创建灵活的、可重复使用的应用程序提供了一个模型,并为一些企业的业务连续性提供了至关重要的优势.N层架构的典型特征包括安全性、可用性、可扩展性、可管理性、易维护和数据抽象.因此,本文将采用一个标准N层应用程序架构作为实验对象.

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

1.1 MVC2模式的表示层

近几年,实现MVC2模式的框架推出了很多,包括Struts、PureMVC、Gwittir、SpringMVC、Zend、ASP.NET MVC2等.目前Struts仍然是最成熟的解决方案,赢得了大多数开发商的信任,因此在本文采用Struts建模.

1.2 数据传输对象和依赖注入模式的业务层

业务层是表示层和数据访问层之间的抽象部分,以避免两层直接的紧耦合,并隐藏了表示层处理业务的复杂性.业务层会执行所有业务处理要求,其功能的实现是通过运行数据传输对象(Data Traner Object,DTO)模式和依赖注入(Dependency Injection,DI)模式的怎么写作,以确保对象之间的一个解耦合.DI可以减少组件之间的耦合,同时也避免了重复创建样板工厂代码.

1.3 数据访问对象模式的持久层

数据访问层是连接数据库的接口,实现对数据库的创建、检索、更新和删除等操作.数据访问对象(Data Access Object,DAO)模式用在应用程序中抽象固定的细节内容,其优点是可以改变持续机制,而不影响逻辑域.本文将采用Ja社区最常用的DAO模式Hibernate.

2.MDA模型改造

MDA建立了通用信息模型(Common Information Model,CIM)、平台无关模型(Platform Independent Model,PIM)和平台相关模型(Platform Specific Model,P)模型直接转换的可追溯机制.MDA模型转换本质上是CIM转换到PIM和PIM转换到P.本文将致力于把PIM到P的转型应用到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编译器:一个Ja程序生成的EMF API执行转换.输入的格式是一个符合QVT规范的XMI2.0格式的QVT元模型. 3 UML和N层架构元模型

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

3.1 UML元模型

基于典型UML模型的源元模型结构包含了数据类型和类.这些类中包含类型属性,它们的特点是多重性,类由业务类型参数组成.图3展示了源元模型,模型包含了UML包、抽象元类、UML类、UML业务类、UML数据类型,操作参数以及属性.

5.结语

针对模型转换技术中的实现问题,本文提出了一种基于编程实现源模型到目标模型的自动转换方法.通过编程实现了具体的算法和接口,符合建模标准的UML源模型就可以转换成一个N层目标模型,接着实现了模型的自动程序化,从而自动产生了可以运行的程序.通过文中实例,验证了这种方法的可行性,以及该方法的实用性和合理性.在下一步的研究中我们将研究跨平台的模型驱动转换问题.

UML模型到N层Web模型的模型驱动转换参考属性评定
有关论文范文主题研究: 关于模型的论文范文文献 大学生适用: 专科论文、专升本毕业论文
相关参考文献下载数量: 62 写作解决问题: 写作资料
毕业论文开题报告: 标准论文格式、论文摘要 职称论文适用: 刊物发表、高级职称
所属大学生专业类别: 写作资料 论文题目推荐度: 经典题目