1.4 基于MDA的仿真模型开发方法

MDA是一种直接将模型用于理解和分析系统,构建、部署、维护和修改软件的过程中的软件系统设计与开发方法。MDA实际上就是把建模语言当做编程语言使用,而不仅仅是设计语言。这样可以保证采用UML(Unified Modeling Language)等软件工程工具建立的软件设计模型大部分可以直接进行运行、检验和生成最终软件产品。由于在软件开发中减少了将软件设计模型转换为人工编码的过程,避免了软件开发中的编码错误。即使软件系统出现运行错误,软件修改也可以直接基于UML的设计完成。基于UML的设计又具有直观、便于交流和理解的特点,并可以确保设计模型、相关的基础组件(中间件)和产生的软件代码能够随软件的更新不断进化并保持一致性,从而可以大大提高软件系统的开发效率。为保证设计模型能独立于系统实现,要求应用中的设计模型必须能够以平台无关的语言反映系统的功能。当前设计模型规范主要基于OMG(Object Management Group)组织建立的统一建模语言(UML)、元对象工具(Meta-Object Facility,MOF)和公用仓库元模型(Common Warehouse Metamodel,CWM)。

在基于MDA的软件开发中,应用的设计模型被定义为平台无关模型PIM(Platform Independent Model),主要与解决给定问题的通用的组件、算法和数据相关,而到具体目标平台的实现主要解决应用实现相关的问题。这些实现可以定义为平台相关模型PSM(Platform Specific Model)。与PIM的唯一性不同,对于一个给定问题,可能同时存在几个PSM。对于常用的中间件解决方案,OMG也制订了相关的PIM到不同中间件的映射方案,如CORBA、Web Services、XMI/XML、J2EE和.NET等。通常,PSM将是一个确定了中间件和考虑了目标平台的UML模型,PSM相关的源代码一般也可以基于工具驱动的方法完成;模型的编译、装配和绑定可以通过自动化的方法完成。