浅谈模型驱动
2013-08-29马佳佳郭晓军
马佳佳 郭晓军
(天津职业技术师范大学,天津 300222)
1 引言
随着现代信息技术的迅猛发展,利用计算机技术对信息进行规范化管理,己经成为企业发展必不可少的需求。面对一系列新的业务需求和新的技术的出现,如何采用高效,灵活的技术来适应这些变化,是一个迫切需要解决的问题。
软件系统和软件产品开发一般包括:需求分析、原形设计、软件编程、应用测试、应用维护等过程。其中,软件编程、应用维护的开发效率低与成本高一直是困扰软件发展的技术瓶颈。IT项目实践已证明,基于平台化的软件复用可提高软件开发效率,缩短开发周期,降低开发成本,并改善软件质量。而模型驱动应用开发平台工具(MDAPT),正是通过建立面向业务总线接口的统一软件架构平台和基于平台的业务模型驱动生成引擎,实现了基于业务设计模型的无需进行程序编码的业务应用平台及工具系统。从而彻底改变了软件系统的开发方式、效率与成本,研究成果在企业信息化、政务信息化领域、软件工程领域有广泛应用前景,并将取得明显的经济效益。
2 模型驱动的体系结构及开发生命周期
2.1 MDA 体系结构
在模型驱动中,模型是利用某种工具对同类事物或其他事物的表达方式,从建模的观点抓住事物的主要方面忽略次要方面,而软件系统就是用建模语言来表达的。模型可以分为3个层次的模块,各模型间通过模型映射机制相互映射,以保证模型的可追溯性(图1)。
图1 MDA 体系结构
(1)计算无关模型(CIM:Computational Independent Model):描述的是业务知识和业务过程,从业务角度描述这个系统要完成的工作;不涉及如何用软件来实现业务。
(2)平台无关模型(PIM:platform independent model):描述的是如何用软件系统来实现业务过程与软件系统的一些技术细节无关。
(3)平台相关模型(ISM:implementationspeciifcmodel):描述某种特定技术对软件系统功能的实现,各模型之间通过映射机制相互映射,保证了模型的可追溯性。
(4)实现相关模型(ISM:implement ation speciifcmodel):通过编程技术来实现系统。
2.2 模型驱动软件开发周期
MDA 软件开发与传统的软件开发有着本质的不同(图2),MDA 以生命周期以建模行为驱动,以模型的创建和变换展开。
图2 传统开发方式与MDA 开发方式对比
总得来说,MDA 的开发生命周期与传统的开发生命周期没有什么不同,他们的开发阶段相同,但是各个阶段的设计工作却是不相同的,MDA 的重点是系统的建模,关键是在使用MDA 方法之后,关注的焦点就会转移到更高的层次上:先是PSM,然后再转移到PIM 上。
3 模型驱动系统架构及功能简介
模型驱动架构(图3)是一种独立于特定平台和软件供应商的软件体系结构设计和开发方法,它适用于设计、部署、集成等软件开发的整个生命周期。MDA 以一种全新的方式将IT技术的一系列新的趋势性技术整合到一起。
图3 模型驱动系统架构
模型驱动开发系统所具有的功能:
(一)可运行的设计模型
(1)通过对象模型管理和展现层模型定义,实现业务对象的维护。(2)通过MDA 系统定义设计模型,数据库表可以自动创建,这样就便于维护,同时方便扩展维护逻辑及其他功能。(3)业务对象的操作可以通过动态菜单直接连接在系统菜单上。(4)支持遗留系统。系统有可以在一个数据库表上生成对象的功能,因此以前开发的C/S 系统可以很容易地转换为J2EE 平台上的应用。
(二)对象模型管理
(1)对建立UML 或其他建模工具的设计对象模型进行详细的描述。(2)可定义1-1、1-n 的对象关系模型。(3)实现对象与数据库两者之间的映射。对象可以映射到数据库表中,而对象属性则可以映射到表中的某个字段。
(三)展现层模型定义
(1)以窗口模式界面管理模型,一个基本的窗口可以完成对对象的增,删,查,改等基本的维护。(2)一个对象模型可以有多个窗口,每个窗口可以保持多个关联对象,而每个对象都可以在不同的TAB 上面显示出来。(3)实现布局的管理,包括Tab 和对象属性布局。
(四)运行模型的同步
业务对象和运行系统将元模型描述同步,实时反映对业务对象模型的修改。
(五)实现通用帮助的自动化
(1)单表帮助。(2)带有过滤条件及有数据权限的帮助。(3)多表帮助:从部门到人员,面面俱到。(4)弹出帮助、下拉框帮助。(5)结合元模型参考类型元素对实现复杂的界面有帮助。(6)个性化的界面组织。
(六)对象之间关联关系维护
(1)关系注册。(2)实现级联删除。(3)删除时的逻辑检查。
(七)系统和对象的扩展属性以及对象自定字段的扩展,不再需要程序来完成
通过上述功能的实现,相对于一些简单的内容,就不再需要程序员进行代码的编写,而由用户根据自己的实际需要,开发相应的功能。而对于特殊的业务逻辑则可以通过扩展的接口进行挂接,实现真正意义上的模型驱动开发。
4 MDA 的优点
解决传统软件开发方法中存在的需求变更适应性差、维护困难、开发效率低、轻便性差等问题,从而提高了软件质量,降低了软件开发成本,延长了软件生命周期。
5 总结
模型驱动实现应用系统带来的好处是显而易见的,如果将其应用在各种行业的业务模式上,它带来的作用也会更大;如果引入工作流模式,并将其推广到各种行业的系统定义平台,这样各行业专家可以通过可视化的界面来制定本行业的业务流程模型及各种规则模型,然后通过模型驱动实现系统的构建,并及时更新和补充相关业务系统。
[1]郭晓军,王太勇,秦旭达,王成恩,李海越.基于J2EE的成套电器企业集成平台框架与应用系统的研究.计算机集成制造系统.Vo1.11 NO.7,Ju1.2 0 0 5
[2]谭云杰,Thinking in UMl,北京:中国水利水电出版社,2009.
[3]王永涛,刘勇.基于MDA 的模型转换研究与应用[J].计算机工程.2011(16)
[4]邓建.业务过程软件的模型驱动开发技术研究[D].电子科技大学.2012
[5]吴明晖.面向服务的语义模型驱动企业应用软件开发方法及关键技术研究[D].浙江大学.2011
[6]张丽婷.模型驱动架构MDA 开发模式的研究与实现[D].北京交通大学.2008