深圳市组创微电子有限公司
咨询电话
0755-8299 4126

软件开发

MDA软件设计方法


由于传统的软件开发模式其最终生成产品是程序代码,难以适应需求的快速变化。虽然目前部分生产环节已经有模型可以参与,但模型仍不能应用于大规模的软件开发中,因此软件开发过程中不可避免地出现非标准化与非自动化的问题。为了解决软件开发中存在的这些问题,OMG组织发布了模型驱动架构(Model Driven Architecture,MDA)。本文在介绍MDA开发过程的基础上,探讨了平台无关模型和平台相关模型的定义、映射和转化等,并将MDA开发方法和传统软件开发方法进行了分析比较。

一、MDA体系结构

模型驱动式软件开发是指通过对问题进行分析然后建模、转化和精化模型,最终生成可执行代码的过程。模型驱动架构是一种建立业务逻辑抽象模型并自动产生完备的应用程序的方法,其核心思想是通过计算无关模型(Computation Independent Mode,CIM)描述系统的行为与功能,用与使用平台无关的建模语言(例如UML)来构建在实现时无需关心所用技术的平台无关模型(Platform Independent Mode,PIM),随后平台无关模型通过一定的转化规则与辅助工具被转化为平台相关模型(Platform Specific Mode,PSM),最后PSM精化生成可执行代码。MDA软件开发方法将标准的系统模型放在了驱动架构的核心位置,如图1所示。MDA通过PIM和PSM将系统说明和实现技术与平台独立开来,确保软件开发成果不受需求变化与技术变迁的影响。

OMG模型驱动架构方法


MDA模型组织分为4层结构,如图2所示。下一个层次是上一个层次的应用,上一个层次是下一个层次的基础,MOF位于M3层,其是MDA框架中基础与核心的模型,同时也是M2层所有模型的元模型。M2层为MOF上不同模型所对应的模型语言,不同的领域通过M2层能够获取与所在领域相匹配的建模语言,为M1层的建模提供了建模符号。M1层是软件开发过程中建模人员采用模型语言为企业应用建立的模型描述,PIM,CIM,PSM应用模型就位于该层之中。最底层为M0层,即实例层,其将M1层的模型转化为具体的可使用的应用程序。

MDA四层体系结构


MDA的核心是由OMG制定的一系列标准,元对象设施(Meta Object Facilit,MOF)、统一建模语言(UnifiedModeling Languag,UML)、数据仓库元模型(CommonWarehouse Metamodel,CWM)、XML元数据交换(XML⁃based Metadata Interchange,XMI)以及对象约束语言(Object Constraint Language,OCL)。这些标准构成了一个构建模型驱动架构的基准,其不但决定了MDA的核心架构,并在State⁃of⁃art的系统建模中起到了关键性的作用。

二、MDA实现与基于模型驱动架构的软件开发

基于MDA的软件开发过程可分为:

(1)模型驱动软件开发过程。此方案中使用的模型为PIM和PSM,利用模型驱动代码的产生,具体操作步骤为代码通过模型产生,接着通过人工的方式进行商业逻辑代码的编写,最后将手工编写的商业逻辑代码进行部署及发布。

(2)通过模型驱动来控制系统运行时的行为。此时软件模型能够被一个操作系统运行时通用模型直接执行,该过程无需产生具体的软件代码,最后部署和发布的仅是模型,因为模型中已经将应用程序的各个层面均做出了表达。

基于MDA的软件开发包括建模、开发和发布三个阶段,如图3所示。

基于MDA的软件开发流程


模型阶段:创建无关平台模型PIM,并以此为核心,ISM和PSM均可通过PIM自动转换生成。该模型应用如XMI的MOF映射方法进行映射。

开发阶段:产生平台无关代码,即MDA工具自动产生和程序员手工编写客户端及服务器端的代码。MDA中代码的生成是MDA工程的最终目标,其具体是指PSM到代码的映射,映射生成ISM模型。

发布阶段:该阶段将诸多内容放在一起组成可运行组件,其包括模型、MOF映射、手工编写的代码和MDA运行时库及待发布的配置信息,最终将组建发布到运行平台上。

三、软件开发过程比较

虽然基于MDA的软件开发过程是一种新型模型驱动软件开发方法,与传统的软件开发方法相比具有以下优点:

(1)模型变换可自动实现。相比较传统的软件开发过程由手工完成模型与模型、模型与代码之间的变换,基于MDA的软件开发过程均是MDA开发工具自动完成的。

(2)便于维护,模型与代码同步。在基于MDA的软件开发过程中,模型通过转换即可直接生成可执行代码,无需要其他步骤,从而实现模型与代码的同步。软件开发人员对软件的维护重点从程序代码变为与技术平台无关、与业务逻辑相关的平台无关模型。

(3)开发效率高,软件可靠性强。MDA模型架构对系统的不同层次进行抽象,每一层代表的含义简单易懂,从而使得系统的整个框架可被软件开发人员清晰地了解与掌握,而不必困惑于具体的实现技术。由于模型通过转换即可直接生成可执行代码,使得开发过程中减少了编码环节,所以若构建PIM正确,整个系统的正确性便可得到保证。

(4)业务逻辑模型独立于技术实现平台。PIM模型可根据技术平台的不同,自动生成基于该模型的软件系统,从而实现PIM模型与技术实验平台的独立。

(5)模型是程序生成的基础设施。在基于MDA的软件开发过程中,模型被作为其生命周期中的设计工作,是程序生成的基础设施。模型通过一系列转化最终可自动生成可执行代码。

总结

本文在介绍和分析了MDA的架构和基于其软件开发过程的基础上,将其与传统软件设计方法进行了对比,说明了其在软件开发过程中的显著优势,并在文中最后设计基于MDA的决策支持系统,证明了使用MDA开发方法设计的软件系统独立于技术平台,通用性强、可移植性强,其可通过建模、转化和精化模型,直至最终生成可执行代码,大幅降低了设计成本且提高了开发效率。

以上就是我们深圳市组创微电子有限公司为您介绍的基于MDA的软件开发方法的研究。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS方案开发、蓝牙音频开发、儿童玩具方案开发、电子教育产品研发。

  • 返回顶部