Модельно-ориентированная архитектура
Архитектура, управляемая моделями ( MDA ) — это подход к проектированию программного обеспечения для разработки программных систем. Он предоставляет набор рекомендаций по структурированию спецификаций, которые выражены в виде моделей. Архитектура, управляемая моделями, является разновидностью предметной инженерии и поддерживает на основе моделей проектирование программных систем . Он был запущен Object Management Group (OMG) в 2001 году. [ 1 ]
Обзор
[ редактировать ]Model Driven Architecture® (MDA®) «предлагает подход к извлечению пользы из моделей и архитектуры для поддержки полного жизненного цикла физических, организационных и ИТ-систем». Модель — это (представление) абстракция системы. MDA® обеспечивает ценность, создавая модели на различных уровнях абстракции, от концептуального представления до мельчайших деталей реализации. В литературе OMG говорится о трех таких уровнях абстракции или архитектурных точках зрения: независимая от вычислений модель (CIM), независимая от платформы модель (PIM) и модель, специфичная для платформы (PSM). CIM описывает систему концептуально, PIM описывает вычислительные аспекты системы без ссылки на технологии, которые могут использоваться для ее реализации, а PSM предоставляет технические детали, необходимые для реализации системы. Однако в руководстве OMG отмечается, что эти три архитектурные точки зрения полезны, но это всего лишь три из многих возможных точек зрения. [ 2 ]
Организация OMG предоставляет спецификации, а не реализации, часто в качестве ответов на запросы предложений (RFP). Реализации исходят от частных компаний или групп с открытым исходным кодом.
Сопутствующие стандарты
[ редактировать ]Модель MDA связана с несколькими стандартами, включая унифицированный язык моделирования (UML), механизм метаобъектов (MOF), обмен метаданными XML (XMI), корпоративные распределенные объектные вычисления (EDOC), метамодель разработки программного обеспечения (SPEM). и метамодель общего склада (CWM). Обратите внимание, что термин «архитектура» в архитектуре, управляемой моделями, относится не к архитектуре моделируемой системы, а скорее к архитектуре различных стандартов и форм моделей, которые служат технологической основой для MDA. [ нужна ссылка ]
Исполняемый UML — это профиль UML, который использовался при рождении MDA. Теперь вместо этого OMG продвигает fUML . (Язык действий для fUML — ALF.)
Торговая марка
[ редактировать ]Группа управления объектами владеет зарегистрированными товарными знаками на термин «архитектура, управляемая моделью» и его аббревиатурой MDA, а также товарными знаками для таких терминов, как «Разработка приложений на основе моделей», «Разработка приложений на основе моделей», «Разработка приложений на основе моделей», «Программирование на основе моделей», «Системы, управляемые моделями». и другие. [ 3 ]
Темы об архитектуре, управляемой моделью
[ редактировать ]подход MDA
[ редактировать ]OMG фокусирует архитектуру, управляемую моделью®, на прямом проектировании, то есть создании кода на основе абстрактных, разработанных человеком диаграмм моделирования (например, диаграмм классов). [ нужна ссылка ] . Этими усилиями руководит группа ADTF (Целевая группа по анализу и проектированию) OMG. С некоторым юмором группа выбрала ADM (MDA наоборот) для названия исследования реверс-инжиниринга. ADM декодирует модернизацию, основанную на архитектуре. Целью ADM является разработка стандартов для обратного проектирования устаревших систем на основе моделей. [ 4 ] Метамодель обнаружения знаний (KDM) является наиболее продвинутой из этих попыток и описывает информационные системы с точки зрения различных активов (программ, спецификаций, данных, тестовых файлов, схем баз данных и т. д.).
Поскольку концепции и технологии, используемые для реализации проектов, а также концепции и технологии, используемые для реализации архитектур, меняются в своем собственном темпе, их разделение позволяет разработчикам систем выбирать из лучших и наиболее подходящих в обеих областях. Проект учитывает функциональные требования ( варианты использования ), в то время как архитектура обеспечивает инфраструктуру, посредством которой реализуются нефункциональные требования, такие как масштабируемость, надежность и производительность. MDA предполагает, что независимая от платформы модель (PIM), представляющая собой концептуальный проект, реализующий функциональные требования, выдержит изменения в технологиях реализации и архитектуре программного обеспечения .
Особое значение для архитектуры, управляемой моделями, имеет понятие трансформации модели . определил специальный стандартный язык для преобразования моделей OMG под названием QVT .
Инструменты MDA
[ редактировать ]Организация OMG предоставляет приблизительные спецификации, а не реализации, часто в качестве ответов на запросы предложений (RFP). OMG документирует весь процесс в документе под названием «Руководство MDA».
По сути, инструмент MDA — это инструмент, используемый для разработки, интерпретации, сравнения, согласования, измерения, проверки, преобразования и т. д. моделей или метамоделей. [ 5 ] В следующем разделе «модель» понимается как модель любого типа (например, модель UML) или метамодель (например, метамодель CWM). В любом подходе MDA у нас есть по существу два типа моделей: исходные модели создаются вручную людьми, а производные модели создаются автоматически программами. Например, аналитик может создать исходную модель UML на основе наблюдения за некоторой неопределенной бизнес-ситуацией, в то время как модель Java может быть автоматически получена из этой модели UML с помощью операции преобразования модели .
Инструмент MDA может быть инструментом, используемым для проверки моделей на предмет полноты, несоответствий или ошибок и предупреждений.
Некоторые инструменты выполняют более одной из перечисленных выше функций. Например, некоторые инструменты создания могут также иметь возможности преобразования и тестирования. Есть и другие инструменты, предназначенные исключительно для создания, исключительно для графического представления, исключительно для преобразования и т. д.
Реализации спецификаций OMG исходят от частных компаний или с открытым исходным кодом групп . Одним из важных источников реализаций спецификаций OMG является Eclipse Foundation (EF). Многие реализации стандартов моделирования OMG можно найти в Eclipse Modeling Framework (EMF) или Graphical Modeling Framework (GMF). Фонд Eclipse также разрабатывает другие инструменты различного профиля, такие как GMT. Соответствие Eclipse спецификациям OMG зачастую не является строгим. Это справедливо, например, для стандарта EMOF OMG, который EMF приближает к своей реализации Ecore. Дополнительные примеры можно найти в проекте M2M, реализующем стандарт QVT, или в проекте M2T, реализующем стандарт MOF2Text.
Следует быть осторожным и не путать Список инструментов MDA и Список инструментов UML , поскольку первый гораздо шире. Это различие можно сделать более общим, разделив «инструменты переменной метамодели» и «инструменты фиксированной метамодели». Инструмент UML CASE обычно представляет собой «инструмент фиксированной метамодели», поскольку он жестко запрограммирован для работы только с данной версией метамодели UML (например, UML 2.1). Напротив, другие инструменты имеют внутренние общие возможности, позволяющие им адаптироваться к произвольным метамоделям или к метамоделям определенного типа.
Обычно инструменты MDA фокусируются на элементарной спецификации архитектуры, хотя в некоторых случаях эти инструменты не зависят от архитектуры (или платформы).
Простые примеры спецификаций архитектуры включают в себя:
- Выбрав одну из нескольких поддерживаемых эталонных архитектур, таких как Java EE или Microsoft .NET ,
- Определение архитектуры на более тонком уровне, включая выбор технологии уровня представления, технологии уровня бизнес-логики, технологии персистентности и технологии персистентности (например, объектно-реляционного преобразователя).
- Метаданные: информация о данных.
Проблемы MDA
[ редактировать ]Некоторые ключевые концепции, лежащие в основе подхода MDA (запущенного в 2001 году), были впервые разъяснены методом Шлера-Меллора в конце 1980-х годов. Действительно, отсутствующий ключевой технический стандарт подхода MDA (синтаксис языка действий для исполняемого UML ) был устранен некоторыми поставщиками путем адаптации исходного языка действий Шлаера-Меллора (модифицированного для UML). [ нужна ссылка ] . Однако в этот период подход MDA не получил широкого признания в отрасли; поскольку Gartner Group по-прежнему определяет MDA как «растущую» технологию в своем « цикле хайпа » 2006 года, [ 6 ] и Forrester Research, объявившие MDA «DOA» в 2006 году. [ 7 ] Потенциальные проблемы, возникшие в связи с подходом OMG MDA, включают:
- Неполные стандарты. Подход MDA подкреплен множеством технических стандартов, некоторые из которых еще не определены (например, семантический язык действий для xtUML ) или еще не реализованы стандартным образом (например, QVT механизм преобразования или PIM с виртуальной средой выполнения). [ 8 ] [ 9 ]
- Привязка к поставщику. Хотя MDA был задуман как подход к достижению (технической) независимости от платформы, нынешние поставщики MDA неохотно проектируют свои наборы инструментов MDA так, чтобы они были совместимыми. Такой результат может привести к привязке к поставщику для тех, кто придерживается подхода MDA. [ нужна ссылка ]
- Идеалистический: MDA задуман как передовой подход к проектированию, при котором модели, включающие программирование на языке действий, преобразуются в артефакты реализации (например, исполняемый код, схему базы данных) в одном направлении посредством полностью или частично автоматизированного этапа «генерации». Это согласуется с видением OMG, согласно которому MDA должен позволять моделировать полную сложность предметной области в UML (и связанных стандартах) с последующим преобразованием в законченное (исполняемое) приложение. [ 10 ] Однако этот подход подразумевает, что изменения в артефактах реализации (например, настройка схемы базы данных) не поддерживаются. Это представляет собой проблему в ситуациях, когда такая «адаптация» артефактов реализации после преобразования считается необходимой. Доказательства того, что полный подход MDA может быть слишком идеалистическим для некоторых реальных развертываний, можно увидеть в появлении так называемого «прагматичного MDA». [ 11 ] Pragmatic MDA сочетает в себе буквальные стандарты MDA OMG с более традиционными подходами, основанными на моделях, такими как комплексное проектирование , которое обеспечивает поддержку адаптации артефактов реализации (хотя и не без существенных недостатков).
- Специализированные наборы навыков: специалисты по разработке программного обеспечения на основе MDA (как и в случае с другими наборами инструментов) должны иметь высокий уровень знаний в своей области. Нынешних экспертов-практиков MDA (часто называемых моделистами/архитекторами) мало по сравнению с традиционными разработчиками. [ 12 ]
- Послужной список OMG: Консорциум OMG, который спонсирует подход MDA (и владеет торговой маркой MDA), также представил и спонсировал стандарт CORBA, который сам по себе не смог стать широко используемым стандартом. [ 13 ]
- Предложение неопределенной ценности (UVP): Как уже говорилось, концепция MDA позволяет специфицировать систему как абстрактную модель, которая может быть реализована как конкретная реализация (программа) для конкретной вычислительной платформы (например, .NET). Таким образом, приложение, которое было успешно разработано с использованием чистого подхода MDA, теоретически может быть перенесено на новую версию платформы .NET (или даже на платформу Java) детерминированным образом, хотя остаются серьезные вопросы относительно практических практических задач во время перевода (например, как реализация пользовательского интерфейса). Представляет ли эта возможность важное ценностное предложение, остается вопросом для конкретных пользователей. Тем не менее, сторонники MDA, которые ищут выгоду через «альтернативу программированию», должны быть очень осторожны при оценке этого подхода. Сложность любой конкретной проблемной области всегда будет оставаться, и программирование бизнес-логики необходимо осуществлять с помощью MDA, как и при любом другом подходе. Отличие от MDA состоит в том, что используемый язык программирования (например, xtUML) является более абстрактным (чем, скажем, Java или C#) и переплетается с традиционными артефактами UML (например, диаграммами классов). Программирование на языке, который более абстрактен, чем основной Языки 3GL приведут к созданию систем более высокого качества, более низкой стоимости или более быстрой доставки — это вопрос, на который еще предстоит дать адекватный ответ.
- MDA был признан возможным способом объединения различных независимо разработанных стандартизированных решений. Сообществу специалистов по моделированию он был рекомендован как деловая и отраслевая альтернатива еще одному стандарту, утвержденному Министерством обороны США. [ 14 ]
См. также
[ редактировать ]- Язык преобразования ATLAS
- Автоматическое программирование
- Доменно-ориентированный дизайн
- Планирование ресурсов предприятия
- Исполняемый UML
- Исполняемая архитектура
- Мета-объектная возможность
- Метамоделирование
- Модельно-ориентированное проектирование
- Интеграция на основе моделей
- Безопасность на основе модели
- Совместимость на основе моделей
- Приложение, управляемое моделью
- Язык преобразования модели
- Моделирование уровней зрелости
- Платформонезависимая модель
- Модель для конкретной платформы
- Фабрика программного обеспечения
- Единый язык моделирования
- Универсальный системный язык
- QVT
- Веб-инжиниринг
- ВебML
- Язык проектирования программ
Ссылки
[ редактировать ]- ^ «OMG следует новому стратегическому направлению, опираясь на успех прошлых усилий». Архивировано 24 сентября 2006 г. в Wayback Machine.
- ^ «Руководство OMG MDA, версия 2.0» . ОМГ | Группа управления объектами . Группа управления объектами . Проверено 4 сентября 2021 г.
- ^ «Торговые марки OMG | Группа управления объектами» .
- ^ сайт adm http://adm.omg.org
- ^ Безивен, Дж; Жерар, С; Мюллер, Пенсильвания; Риу, Л. (2003). «Компоненты MDA: проблемы и возможности» (PDF) . В: Метамоделирование для MDA. Архивировано из оригинала (PDF) 6 декабря 2006 г.
- ^ «Цикл ажиотажа в отношении новых технологий, 2006» $ 495,00
- ^ «MDA - это DOA, отчасти благодаря SOA». Архивировано 13 октября 2007 г. на Wayback Machine.
- ^ «UML — унифицированный или универсальный язык моделирования? UML2, OCL, MOF, EDOC — у императора слишком много одежды»
- ^ "MDA: Хорошая идея. Жаль..."
- ^ «Привнесение MDA в Eclipse с использованием прагматичного подхода»
- ^ "Ответ Форрестеру"
- ^ "Готовы ли вы к MDA?"
- ^ «Взлет и падение CORBA». Архивировано 2 декабря 2008 г. в Wayback Machine.
- ^ «Избегая еще одного зеленого слона»
Дальнейшее чтение
[ редактировать ]- Кевин Лано. «Разработка программного обеспечения на основе моделей с использованием UML и Java». CENGAGE Обучение, ISBN 978-1-84480-952-3
- Дэвид С. Франкель . Архитектура, управляемая моделями: применение MDA к корпоративным вычислениям . Джон Уайли и сыновья, ISBN 0-471-31920-1
- Меган Киффер Журнал MDA: Архитектура, управляемая моделями, прямо от мастеров . ISBN 0-929652-25-8
- Аннеке Клеппе (2003). Объяснение MDA, Модельно-ориентированная архитектура: практика и обещания . Аддисон-Уэсли. ISBN 0-321-19442-X
- Стивен Дж. Меллор (2004). MDA Distilled, Принципы архитектуры, управляемой моделями . Аддисон-Уэсли Профессионал. ISBN 0-201-78891-8
- Крис Рейстрик. Архитектура, управляемая моделью, с исполняемым UML . Издательство Кембриджского университета, ISBN 0-521-53771-1
- Марко Брамбилла, Джорди Кэбот, Мануэль Виммер, Модельно-ориентированная разработка программного обеспечения на практике , предисловие Ричарда Соли ( председателя OMG ), Morgan & Claypool, США, 2012, Обобщающие лекции по программной инженерии № 1. 182 страницы. ISBN 9781608458820 (мягкая обложка), ISBN 9781608458837 (электронная книга). http://www.mdse-book.com
- Стэнли Дж. Сьюэлл. Исполнительное обоснование MDA
- Сойлу А., Де Каусмекер Патрик. Объединение подходов к разработке систем, основанных на моделях и онтологиях, с точки зрения всеобъемлющих вычислений , в материалах 24-го Международного симпозиума по компьютерным и информационным наукам. 2009, стр. 730–735.