Архитектура на основе моделей ( MDA ) — это подход к проектированию программного обеспечения для разработки программных систем. Он предоставляет набор рекомендаций по структурированию спецификаций, которые выражаются в виде моделей. Архитектура на основе моделей — это разновидность инженерии доменов, которая поддерживает инженерию на основе моделей программных систем. Она была запущена Object Management Group (OMG) в 2001 году. [1]
Model Driven Architecture® (MDA®) «предоставляет подход к извлечению ценности из моделей и архитектуры для поддержки полного жизненного цикла физических, организационных и ИТ-систем». Модель — это (представление) абстракции системы. MDA® обеспечивает ценность, создавая модели на разных уровнях абстракции, от концептуального представления до мельчайших деталей реализации. В литературе OMG говорится о трех таких уровнях абстракции или архитектурных точках зрения: Computation-independent Model (CIM), Platform-independent model (PIM) и Platform-specific model (PSM). CIM описывает систему концептуально, PIM описывает вычислительные аспекты системы без ссылки на технологии, которые могут быть использованы для ее реализации, а PSM предоставляет технические детали, необходимые для реализации системы. Однако в руководстве OMG отмечается, что эти три архитектурные точки зрения полезны, но являются лишь тремя из многих возможных точек зрения. [2]
Организация OMG предоставляет спецификации, а не реализации, часто в ответ на запросы предложений (RFP). Реализации поступают от частных компаний или групп с открытым исходным кодом.
Модель MDA связана с несколькими стандартами, включая Unified Modeling Language (UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), Software Process Engineering Metamodel (SPEM) и Common Warehouse Metamodel (CWM). Обратите внимание, что термин «архитектура» в Model Driven Architecture относится не к архитектуре моделируемой системы, а скорее к архитектуре различных стандартов и форм моделей, которые служат технологической основой для MDA. [ необходима цитата ]
Исполняемый UML был профилем UML, который использовался, когда родился MDA. Теперь OMG продвигает fUML вместо этого. (Язык действий для fUML — ALF.)
Группа управления объектами владеет зарегистрированными торговыми марками на термин Model Driven Architecture и его аббревиатуру MDA, а также торговыми марками на такие термины, как: Model Based Application Development, Model Driven Application Development, Model Based Application Development, Model Based Programming, Model Driven Systems и другие. [3]
OMG фокусирует Model Driven Architecture® на прямом проектировании, т. е. создании кода из абстрактных, разработанных человеком диаграмм моделирования (например, диаграмм классов) [ требуется ссылка ] . Группа ADTF (Analysis and Design Task Force) OMG возглавляет эти усилия. С некоторой долей юмора группа выбрала ADM (MDA наоборот) для названия исследования обратного проектирования. ADM расшифровывается как Architecture-Driven Modernization (модернизация, управляемая архитектурой). Целью ADM является разработка стандартов для обратного проектирования на основе моделей устаревших систем. [4] Knowledge Discovery Metamodel (KDM) является самым дальним из этих усилий и описывает информационные системы с точки зрения различных активов (программ, спецификаций, данных, тестовых файлов, схем баз данных и т. д.).
Поскольку концепции и технологии, используемые для реализации проектов, а также концепции и технологии, используемые для реализации архитектур, менялись в своем собственном темпе, их разделение позволяет разработчикам систем выбирать из лучшего и наиболее подходящего в обеих областях. Проектирование решает функциональные ( варианты использования ) требования, в то время как архитектура предоставляет инфраструктуру, посредством которой реализуются нефункциональные требования, такие как масштабируемость, надежность и производительность. MDA предполагает, что платформенно-независимая модель (PIM), которая представляет собой концептуальный проект, реализующий функциональные требования, выдержит изменения в технологиях реализации и архитектурах программного обеспечения .
Особое значение для Model Driven Architecture имеет понятие преобразования модели . OMG определила специальный стандартный язык для преобразования модели, который называется QVT .
Организация OMG предоставляет грубые спецификации, а не реализации, часто в качестве ответов на запросы предложений (RFP). OMG документирует весь процесс в документе под названием MDA Guide.
По сути, инструмент MDA — это инструмент, используемый для разработки, интерпретации, сравнения, выравнивания, измерения, проверки, преобразования и т. д. моделей или метамоделей. [5] В следующем разделе «модель» интерпретируется как любой вид модели (например, модель UML) или метамодель (например, метамодель CWM). В любом подходе MDA мы имеем по сути два вида моделей: начальные модели создаются вручную людьми-агентами, в то время как производные модели создаются автоматически программами. Например, аналитик может создать начальную модель UML из своего наблюдения за некоторой свободной деловой ситуацией, в то время как модель Java может быть автоматически получена из этой модели UML с помощью операции преобразования модели .
Инструмент MDA может использоваться для проверки моделей на полноту, несоответствия или наличие ошибок и предупреждений.
Некоторые инструменты выполняют более одной из перечисленных выше функций. Например, некоторые инструменты создания могут также иметь возможности преобразования и тестирования. Существуют другие инструменты, которые предназначены исключительно для создания, исключительно для графического представления, исключительно для преобразования и т. д.
Реализации спецификаций OMG поступают от частных компаний или групп с открытым исходным кодом . Одним из важных источников реализаций спецификаций OMG является Eclipse Foundation (EF). Многие реализации стандартов моделирования OMG можно найти в Eclipse Modeling Framework (EMF) или Graphical Modeling Framework (GMF), Eclipse Foundation также разрабатывает другие инструменты различных профилей, такие как GMT. Соответствие Eclipse спецификациям OMG часто не является строгим. Это справедливо, например, для стандарта EMOF OMG, который EMF приближает своей реализацией Ecore. Больше примеров можно найти в проекте M2M, реализующем стандарт QVT, или в проекте M2T, реализующем стандарт MOF2Text.
Следует быть осторожным, чтобы не путать Список инструментов MDA и Список инструментов UML , первый из которых гораздо шире. Это различие можно сделать более общим, выделив «инструменты переменной метамодели» и «инструменты фиксированной метамодели». Инструмент UML CASE обычно является «инструментом фиксированной метамодели», поскольку он жестко запрограммирован на работу только с заданной версией метамодели UML (например, UML 2.1). Напротив, другие инструменты имеют внутренние общие возможности, позволяющие им адаптироваться к произвольным метамоделям или к определенному виду метамоделей.
Обычно инструменты MDA фокусируются на элементарной спецификации архитектуры, хотя в некоторых случаях инструменты не зависят от архитектуры (или платформы).
Простые примеры спецификаций архитектуры включают в себя:
Некоторые ключевые концепции, лежащие в основе подхода MDA (запущенного в 2001 году), были впервые разъяснены методом Шлаера–Меллора в конце 1980-х годов. Действительно, ключевой отсутствующий технический стандарт подхода MDA (синтаксис языка действий для исполняемого UML ) был преодолен некоторыми поставщиками путем адаптации оригинального языка действий Шлаера–Меллора (модифицированного для UML) [ требуется ссылка ] . Однако в течение этого периода подход MDA не получил широкого признания в отрасли; Gartner Group все еще определяет MDA как «растущую» технологию в своем « Hype Cycle » 2006 года [6] , а Forrester Research объявляет MDA «DOA» в 2006 году [7]. Потенциальные опасения, которые были подняты в связи с подходом OMG MDA, включают: