title: Model-driven application
text: # Model-driven application
  
  A model-driven application is a software application that the functions or behaviors are based on, or in control of, some evolutionary applied models of the target things to the application. The applied models are served as a part of the application system in which it can be changed at runtime. The target things are what the application deals with, such as the objects and affairs in business for a business application. Follows the definition of application in TOGAF, a model-driven business application could be described as an IT system that supports business functions and services running on the models of the (things in) business.
  
  ## History
  
  The ideal of the architecture for a model-driven application was first put forward by Tong-Ying Yu on the Enterprise Engineering Forum in 1999, which have been studied and spread through some internet media for a long time. It had influence on the field of enterprise application development in China; there were successful cases of commercial development of enterprise/business applications in the architectural style of a model-driven application. Gartner Group carried out some studies into the subject in 2008; they defined the model-driven packaged applications as "enterprise applications that have explicit metadata-driven models of the supported processes, data and relationships, and that generate runtime components through metadata models, either dynamically interpreted or compiled, rather than hardcoded." The model-driven application architecture is one of few technology trends to driven the next generation of application modernization, that claimed by some industrial researchers in 2012.
  
  ## Instance
  
  Business process management (BPM) is the significant practice to the model-driven application. According to the definition, a BPM system is model-driven if the functions are operated based on the business process models which are built and changed at the operational time but not the design or implementation time; the biggest advantage is that it can deal with the continuous changing of business process directly without modifying the code of the software.
  
  