Евгений Марков
2005-12-15
Аббревиатура MDA расшифровывается как Model Driven Architecture архитектура, управляемая моделью. MDA это архитектура, описывающая новый способ разработки программного обеспечения. Название говорит само за себя очевидно, что в рамках этой архитектуры создание приложений базируется на разработке модели приложения.
Аббревиатура MDA расшифровывается как Model Driven Architecture архитектура, управляемая моделью. MDA это архитектура, описывающая новый способ разработки программного обеспечения. Название говорит само за себя очевидно, что в рамках этой архитектуры создание приложений базируется на разработке модели приложения.
В основе новой архитектуры лежит идея о полном разделении этапов общего проектирования (моделирования) и последующей реализации приложения на конкретной программной платформе. Идея эта не нова: сначала при помощи специальных средств проектирования создается общая и независимая от способов реализации модель приложения, а затем осуществляется реализация программы в какой-либо среде разработки. При этом процесс разработки полностью основан на модели, которая должна содержать всю необходимую для программирования информацию. Очевидны преимущества, которые дает такой подход:
По мнению создателей, архитектура MDA является новым витком эволюции технологий программирования, так как описывает процесс разработки в целом. Подготовленные читатели с высшим техническим образованием могут возразить, что процесс разработки программного обеспечения описан и стандартизован вдоль и поперек: в нашей стране существует ряд ГОСТов, другие страны также имеют соответствующие стандарты. Но новизна MDA заключается в том, что описание процесса разработки в ней выполнено с использованием современных средств представления и позволяет автоматизировать создание приложений. И весьма вероятно, что через некоторое время архитектура MDA станет общим промышленным стандартом в разработке программного обеспечения.
Модель описание или спецификация системы и ее окружения, созданная для определенных целей. Часто является комбинацией текстовой и графической информации. Текст может быть описан специализированным или естественным языком.
Управление на основе модели процесс разработки системы, использующий модель для понимания, конструирования, распространения и других операций.
Платформа набор подсистем и технологий, которые представляют собой единый набор функциональности, используемой любым приложением без уточнения деталей реализации.
Вычислительная независимость качество модели, обозначающее отсутствие любых деталей структуры и процессов.
Платформенная независимость качество модели, обозначающее ее независимость от свойств любой платформы.
Вычислительно-независимая модель модель, скрывающая любые детали реализации и процессов системы; описывает только требования к системе и ее окружению.
Платформенно-независимая модель модель, скрывающая детали реализации системы, зависимые от платформы, и содержащая элементы, не изменяющиеся при взаимодействии системы с любой платформой.
Платформенно-зависимая модель модель системы с учетом деталей реализации и процессов, зависимых от конкретной платформы.
Модель платформы набор технических характеристик и описаний технологий и интерфейсов, составляющих платформу.
Преобразование модели процесс преобразования одной модели системы в другую модель той же системы.
Вычислительно-независимая модель (Computation Independent Model, CIM) описывает общие требования к системе, словарь используемых понятий и условия функционирования (окружение). Модель не должна содержать никаких сведений технического характера, описаний структуры и функционала системы. CIM максимально общая и независимая от реализации системы модель. Спецификация MDA подчеркивает, что CIM должна быть построена так, чтобы ее можно было преобразовать в платформенно-независимую модель. Поэтому CIM рекомендуется выполнять с использованием унифицированного языка моделирования UML.
Платформенно-независимая модель (Platform Independent Model, PIM) описывает состав, структуру, функционал системы. Модель может содержать сколь угодно подробные сведения, но они не должны касаться вопросов реализации системы на конкретных платформах. Модель PIM создается на основе CIM. Для создания модели используется унифицированный язык моделирования UML.
Платформенно-зависимая модель (Platform Specific Model, PSM) описывает состав, структуру, функционал системы применительно к вопросам ее реализации на конкретной платформе. В зависимости от назначения модель может быть более или менее детализированной. Модель создается на основе двух моделей. Модель PIM служит основой модели PSM. Модель платформы используется для доработки PSM в соответствии с требованиями платформы.
Модель платформы описывает технические характеристики, интерфейсы, функции платформы. Зачастую модель платформы представлена в виде технических описаний и руководств. Модель платформы используется при преобразовании модели PIM в модель PSM. Для целей MDA описание модели платформы должно быть представлено на унифицированном языке моделирования UML.
Уровень бизнес-логики содержит описание основного функционала приложения, обеспечивающего исполнение его назначения. Как правило, уровень бизнес-логики хуже всего поддается автоматизации. Он составляет львиную долю кода приложения, который приходится писать вручную.
Уровень данных описывает структуру данных приложения, используемые источники, форматы данных, технологии и механизмы доступа к данным. Для приложений .NET чаще всего используются возможности ADO.NET.
Уровень пользовательского интерфейса описывает возможности приложения по взаимодействию с пользователями, а также состав форм приложения, функционал элементов управления (например, контроль ввода данных). Легкость автоматизации этого уровня зависит от того, насколько унифицированы пользовательские операции. Если удается создать типовые шаблоны элементов управления для основных операций, появляется возможность автоматической генерации форм и их содержимого при создании приложения из модели.
На третьем этапе создаются платформенно-зависимые модели (PSM). Их число соответствует числу программных платформ, на которых будет функционировать приложение. Кроме этого, возможны случаи, когда приложение (или его составные части) должны работать на нескольких платформах одновременно. Модель PSM создается путем преобразования модели PIM с учетом требований модели платформы. Процесс преобразования описывается ниже. На этапе создания модели PSM разработка приложения согласно архитектуре MDA заканчивается. Считается, что правильно построенная PSM содержит техническую информацию, достаточную для генерации исходного кода (там, где это возможно) и необходимых ресурсов приложения. Здесь эстафетную палочку должна подхватить среда разработки, реализующая MDA. В нашем случае Delphi 9 обеспечивает генерацию кода и компиляцию приложений ECO. С формальной точки зрения это уже не относится к компетенции MDA, но для разработчика преобразование PSM в исполняемый код приложения непосредственное продолжение процесса разработки. Однако, архитектура MDA описывает еще один вариант прохождения третьего этапа, который называется прямым преобразованием в код. Спецификация MDA для этого случая сообщает, что могут существовать инструментарии, напрямую преобразующие модель PIM в исполняемый код приложения. Модель PSM при этом может создаваться как контрольное описание, позволяющее проверить результат прямого преобразования.
Процесс преобразования моделей заключается в переносе маркированных элементов модели и метамодели PIM в модель и метамодель PSM. Процесс преобразования должен документироваться в виде карты переноса элементов модели и метамодели. Способ преобразования моделей может быть:
*Консорциум OMG создан сообществом IT-компаний, специализирующихся на разработке программного и аппаратного обеспечения. Основной задачей консорциума является стандартизация и спецификация в сфере информационных технологий. При этом деятельность консорциума в значительной степени ориентирована на разработку перспективных стандартов. Программистам известны такие разработки OMG, как OMA, CORBA, UML.