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

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

Основные идеи

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

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

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

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

Примеры

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

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

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

Примечания

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

Ссылки

  • Вадим Залива. , 3 сентября 2009
Источник —

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