Архитектура, управляемая моделью

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Архитектура, управляемая моделью (Model Driven Architecture, MDA) — создаваемая консорциумом OMG разновидность концепции «Разработка, управляемая моделями»: модельно-ориентированного подхода к разработке программного обеспечения. Его суть состоит в построении абстрактной метамодели управления и обмена метаданными (моделями) и задании способов её трансформации в поддерживаемые технологии программирования (Java, CORBA, XML и др.). Создание метамодели определяется технологией моделирования MOF (Meta Object Facility), являющейся частью концепции MDA. Название концепции не совсем удачно, так как она определяет вовсе не архитектуру, а именно метод разработки программного обеспечения.

Основные идеи[править | править код]

Для конструирования программного приложения должна быть построена подробная, формально точная модель, из которой потом может быть автоматически генерирован исполняемый программный код приложения.[1]

Основные шаги разработки:

  • Сначала разрабатывается модель предметной области проектируемого приложения, полностью независимая от имплементирующей технологии. Она называется Platform Independent Model (PIM).
  • Затем PIM автоматически трансформируется специальным инструментом в платформо-зависимую модель (Platform Specifical Model, PSM).
  • PSM переводится в исходный код на соответствующем языке программирования.

Такова схема в идеальном OMG-мире. В реальных современных проектах часть бизнес-логики приходится реализовать вручную. Но поскольку этот код отделен от генерированного системой, большой проблемы это не представляет.[1]

Примеры[править | править код]

Примером реализации MDA можно считать технологию CASEBERRY и платформу Flexberry, разрабатываемую с её помощью.

В основе разработки лежит UML-модель, создаваемая при помощи собственного инструмента создания UML-диаграмм. Есть возможность генерации как Windows, так и Web-приложений на языке C#. Генерируемый код делится на 2 части: первую часть генератор кода будет перезаписывать при внесении изменений в модель, вторая часть останется для него неприкасаемой. Таким образом, можно наращивать функциональность создаваемого приложения параллельно с внесением изменений в модель, при этом функциональность не будет утеряна при перегенерации кода.

Бизнес-логика вынесена в отдельный проект, для её реализации создаются заготовки, значительно облегчающие её (бизнес-логики) добавление.

Примечания[править | править код]

  1. 1 2 Starke, Gernot. Effektive Software Architekturen. — Hanser, München, 2011 (нем.)

Ссылки[править | править код]