模型驱动应用

模型驱动应用（Model-Driven Application）是功能与行为基于或受控于可演变的应用目标事物模型的应用软件。 其中的模型称为“应用模型”，所表征的目标就是应用系统所处理的事物（例如对业务应用系统而言，就是业务的对象或事务）。这些应用模型是应用系统的一部分，可以在运行期改变。应用模型可以决定一个模型驱动的应用系统是哪一种应用系统。例如，参照 TOGAF 对“应用”的定义 ，“模型驱动业务应用”可以这样定义：基于业务（事物）模型运行的业务功能与服务支撑信息技术系统。

历史
模型驱动应用的架构思想最初由余彤鹰1999年提出，在企业工程论坛和一些网络媒体中长期传播，在中国企业应用软件开发行业有一定的影响，并且出现了按照这一架构思想开发商业化的企业应用平台的成功案例。2008年，国际著名信息技术产业咨询研究机构 Gartner Group 也对此课题做了研究，提出了“模型驱动打包应用”（Model-Driven Packaged Applications）概念。在Gartner IT术语中定义：模型驱动打包应用是一种企业应用，具有元数据驱动的流程、数据或联系的模型；通过元数据模型来动态生成运行期组件，或动态解释、编译，而不是硬编码。其关键在于这些模型是由业务分析师或用户维护的。他们在一系列报告中指出，这种应用风格的关键特征在于“其行为通过直接操纵显式的业务流程模型形成，而非通过一组参数或参数表”。

实例
业务流程管理系统（BPMS）是体现了模型驱动应用架构风格的典型例子。根据定义，如果一个BPMS的功能和操作基于运行期（而非系统设计或实施期间）可创建、修改的业务流程模型，它就是模型驱动的。模型驱动带来的最大好处体现在系统将可以通过修改模型直接适应/处理业务流程的持续变化，而无需修改软件。一些产业研究认为，这种模型驱动的应用架构，是推动下一代应用现代化的几个重要技术趋势趋势之一。

区别
特别需要留意，模型驱动应用架构与 OMG 倡导的模型驱动架构（MDA）和更一般化的模型驱动工程（MDE）不同。后者是一种软件设计与开发途径，通常并不限定应用系统的架构风格或运行期构造。

参考资料 

软件架构
软件工程
软件开发
系统架构