Разработка, управляемая моделями, или Model-Driven Development (MDD) — процесс принятия проектных решений на основе оперирования легко воспринимаемыми человеком моделями, при котором порлучения итогового результата в виде программного продукта становится формализованной процедуров. Другое название MDD — Model Driven Architecture (MDA).
В MDA различают два уровня моделей: модели, не зависящие от платформы — PIM (Platform Independent Model) и модели, зависящие от платформы — PSM (Platform Specific Model). PIM описывает систему на уровне абстракции, которая позволяет рассматривать ее вне зависимости от способов конкретной реализации. Для того, чтобы PIM могла быть реализована, ее необходимо преобразовать в модель, учитывающую особенности применяемой платформы, т.е в PSM. Модель платформы содержит формализованные сведения о способе реализации функций, заданных в PIM.
Для представления PIM обычно используют диаграммы классов UML. Особенности предметной области представляются через уточнение семантики объектов и ассоциаций PIM. Предусмотрена возможность внесения в диаграмму дополнительной информации. Для этого используются стереотипы и тэговые значения. Тэговые значения позволяют задавать именованные значения для отдельных элементов диаграммы. Например, для атрибута name при помощи стандартного тэгового значения caption задается название "Наименование", а при помощи тэгового значения documentation для этого атрибута задается текст-комментарий. Это позволяет более четко представить назначение объекта.
В стандарт UML входит язык определения Object Constraint Language (OCL) для описания ограничений на сущности и структуры, представленные в UML-диаграммах. Ограничения могут относиться как к предметной области, так и к специфике ее реализации на конкретной программно-аппаратной платформе. Язык OCL является частью общей спецификации UML, но, в отличие от других частей языка, имеет не графическую, а линейную нотацию. Например, ограничение "не более 15 кг" на вес конструкции "узел" в OCL будет выгледеть следующим образом:
context Узел inv:
self.вес <15
Ограничения являются важной частью PIM. В качестве примеров реализации ограничений выступают типы данных, диапазоны значений, шаблоны ввода данных (маски ввода) и т.д.
В программах преобразования PIM в PSM и последующей генерации программного кода применяют базы знаний и шаблоны программного кода. В базе знаний формализуются отдельные отношения между элементами диаграммы классов в контексте модели платформы и дополнительной информации в виде тэговых значений и стереотипов.
Рис. 1.  Схема преобразования модели PIM в модель PSM
Схема преобразования модели PIM в модель PSM представлена на рис. 1. Для преобразований элементов разных типов создаются шаблоны - марки.
Другой путь - применение XMI. UML-модель, созданная при помощи какого-либо инструмента UML визуального проектирования, представляется в виде XMI-файла (Metadata Interface). Использование спецификации XMI позволяет упростить совместное использование метаданных различными средствами. XMI объединяет в себе язык расширенной разметки Extensible Markup Language (XML) с репозиторием мета объектов Meta Object Facility (MOF) и универсальным языком моделирования UML.