APP下载

基于模型驱动架构的软件开发技术分析

2021-07-22牛小明

中国科技纵横 2021年7期
关键词:代码生成架构定义

牛小明

(中央宣传部电影数字节目管理中心,北京 100055)

1.模型驱动架构的结构与相关标准、应用模型

1.1 结构

模型驱动架构的结构大体可以分为4个层次,一般用M0、M1、M2、M3代称:(1)M3是元—元模型层,包含模型语言定义,用于定义M2元模型的抽象一级建模支撑,即模型语言定义是M2所有元模型的元模型。模型语言定义具有自描述特征,可以对自身这个元模型进行描述,因此M3的模型语言定义是整个模型驱动架构的基础层,也是最核心的标准,其他层模型或元模型的语义都来源于M3的模型语言定义,相当于整体的公共定义标准;(2)M2是元模型层,集成了所有来源于模型语言定义下的模型语言,因此通过M2能够根据不同领域要求获取对应的建模语言。而M2提供的建模语言将成为M1建模符号,支撑人们在M1上进行软件建模及开发;(3)M1是模型层,该层是建模人员最常接触的,也是软件模型开发的“工作平台”,在该层建模人员能够通过模型语言对软件模型进行描述。另外,模型驱动架构中的CIM(计算无关模型)、PIM(平台无关模型)、PSM(平台特定模型)、ISM(实现特定模型)等都处于M1层;(4)M0是实例层,是M1整体模型的实例化,即M0包含了M1模型的具体应用程序,该层是模型驱动架构中模型描述与应用的最终层,达到该层就说明开发的软件已经可以投入使用。

1.2 相关标准

为了实现模型驱动架构中各层模型的定义、映射与转换,模型驱动架构开发者提出了相关标准,包括MOF、UML、CWM、XMI、QVT、OCL,具体内容见表1。

表1 模型驱动架构的相关标准

1.3 应用模型

结合上述(1.1),模型驱动架构中包含CIM、PIM、PSM、ISM4种应用模型,具体内容为:(1)CIM是一种描述系统需求、功能、环境、行为的模型,无法展示系统内部结构因此被定义为业务模型。在模型驱动架构中CIM非常重要,因为只有在CIM的支持下,才能实现PIM、PSM模型;(2)PIM是一种业务逻辑模型,当中并没有任何与平台实现、技术相关的信息,因此具有平台无关性,而这一特性让PIM能够在所有技术平台中实现;(3)PSM是PIM转换而来的专用模型,同时与PIM的区别在于:PIM内的业务逻辑在PSM模型中同样存在,但PSM还包括了平台实现与技术相关的信息;(4)ISM就是PSM实例化后的特定模型,包括PSM的程序代码、装载规格、部署说明等相关信息,可以将其定义为一个能实际运作的软件系统[1]。

2.模型驱动架构的应用优势

2.1 模型转换自动化

传统软件开发中虽然没有模型概念,但实质上整个开发过程也是模型到模型的转换过程,因此开发人员需要通过代码技术推动模型转换,而这个过程全期依赖人工,在以往人们基本没有想过模型转换是否能够自动化。但随着模型驱动架构的出现,模型转换自动化就不再是可望而不可及的目标,直接利用模型驱动架构的相关工具就能自动生成代码,模型自然也能自动转换,相比之下模型驱动架构在软件开发中具有明显优势。

2.2 可维护性强

在模型驱动架构的软件开发过程中,代码是通过模型转换的方式自动生成的,因此模型与代码同步,这使得建模人员在系统维护中不再需要特别关注程序代码,只要注重PIM模型即可,如果存在维护要求,则对PIM模型进行管理,代码会得到自动维护,因此可维护性较强。

2.3 开发效率与质量提升

模型驱动架构特体系结构使得系统层次抽象,这让建模人员能够更好的了解系统架构,不再会被具体技术而干扰,只要关注PIM,并创建PIM就能够实现建模,这就让软件开发效率与软件质量提升。

3.模型驱动架构下的软件开发技术

3.1 整体开发过程概览

在模型驱动架构下围绕CIM模型利用模型技术对每个软件开发步骤进行描述,随后利用模型转换工具构建PIM模型,再通过PIM模型进行转换,可得PSM模型,随即PSM将转换是ISM,这样就完成了软件开发。相比之下,模型驱动架构的软件开发过程与传统软件开发过程中的环节基本一致,均是从明确需求开始,逐渐过渡到需求分析、开发设计、编码测试、运行检查的过程,但区别在于模型驱动架构的软件开发是借助模型和模型之间转化,使得模型相互组合来实现软件开发的,如果是传统软件开发技术,就要不断的输入代码,且模型驱动架构软件开发具有自动化特征,传统软件开发技术则全面依赖人工,孰优孰劣一眼可见。

3.2 详细流程

结合某软件开发商的软件开发过程,对软件开发技术的流程进行分析,整体流程可以分为分为两个步骤,分别为创建PIM与PSM映射转换、代码生成,各步骤具体内容如下。

(1)创建PIM与PSM映射转换。该开发商在模型驱动架构的软件开发过程中,要求建模人员要先从CIM模型中的模型语言定义中使用平台无关语言建模,得到PIM模型,该模型被定义为一种“向用户提供信息查询服务的软件”,随后依照特定平台与映射规则(实现语言的映射规则)对PIM进行转换,这样可以得到PSM模型。通过PSM模型可以得到程序代码与测试框架。通体而言,该步骤的主要任务就是创建与软件开发要求相关的PIM模型,并且围绕PIM模型通过映射、转换手段得到PSM模型,在过程中需要注意的要点有:1)PIM和PSM的模型定义;2)PIM和PSM的模型间映射和转换定义;3)执行PIM到PSM的转换工具。另外,在该步骤的开发过程中建模人员一定要清楚的知道,PIM建模必须根据软件开发需求展开,只有这样PSM模型才能符合要求,最终的ISM模型也才能投入实际应用[2]。

(2)代码生成。在得到PSM模型之后,该开发商建模人员利用模型驱动架构进行代码生成,目的是映射PSM模型得到ISM,这个过程也被称为PSM实例化。在代码生成中,建模人员必须根据ISM模型的实际运行环境等设立针对性的映射解决方案,再依照解决方案创建应用于模型驱动架构平台内相关模块之间的工程项目,促使项目与PSM模型绑定,这样启动代码生成工具即可自动生产代码,实现PSM实例化,得到ISM模型。

4.结语

在模型驱动架构的结构与相关标准、应用模型基础上,本文对其软件开发技术的每个步骤进行了论述,同时还说明了模型驱动架构的应用优势。整体上,模型驱动架构应用优势明显,值得推广,只要采用文中方法,经过两个步骤的开发就能够实现软件开发目的。

猜你喜欢

代码生成架构定义
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
Lustre语言可信代码生成器研究进展
LSN DCI EVPN VxLAN组网架构研究及实现
代码生成技术在软件开发中的应用
基于XML的代码自动生成工具
一种基于FPGA+ARM架构的μPMU实现
修辞学的重大定义
山的定义
基于关系数据模型代码生成器的设计与实现