Доменно-ориентированное моделирование ( DSM ) - это методология разработки программного обеспечения для проектирования и разработки систем, таких как компьютерное программное обеспечение . Он предполагает систематическое использование предметно-ориентированного языка для представления различных аспектов системы.
Языки моделирования, специфичные для предметной области, как правило, поддерживают абстракции более высокого уровня, чем языки моделирования общего назначения , поэтому они требуют меньше усилий и меньше деталей низкого уровня для определения данной системы.
Обзор
Доменно-ориентированное моделирование часто также включает идею генерации кода : автоматизацию создания исполняемого исходного кода непосредственно из предметно-ориентированных языковых моделей. Отсутствие необходимости ручного создания и сопровождения исходного кода означает, что предметно-ориентированный язык может значительно повысить производительность труда разработчиков. [1] Надежность автоматической генерации по сравнению с ручным кодированием также снизит количество дефектов в получаемых программах, что повысит качество.
Доменно-ориентированный язык отличается от более ранних попыток генерации кода в инструментах CASE 1980-х годов или инструментах UML 1990-х годов. В обоих случаях генераторы кода и языки моделирования были созданы поставщиками инструментов. [ необходима цитата ] В то время как поставщик инструментов может создать предметно-ориентированный язык и генераторы, более нормальным является наличие предметно-ориентированного языка внутри одной организации. Один или несколько опытных разработчиков создают язык моделирования и генераторы, а остальные разработчики используют их.
Наличие языка моделирования и генератора, созданного организацией, которая будет их использовать, позволяет точно соответствовать их точному домену и реагировать на изменения в домене.
Языки, зависящие от предметной области, обычно могут охватывать диапазон уровней абстракции для конкретной предметной области. Например, предметно-ориентированный язык моделирования для мобильных телефонов может позволить пользователям указывать абстракции высокого уровня для пользовательского интерфейса , а также абстракции более низкого уровня для хранения данных, таких как номера телефонов или настройки. Аналогичным образом, предметно-ориентированный язык моделирования для финансовых услуг может позволить пользователям определять абстракции высокого уровня для клиентов, а также абстракции более низкого уровня для реализации алгоритмов торговли акциями и облигациями. Доменно-ориентированное моделирование также помогает рассуждать о низкоуровневых программных артефактах. [2]
Темы
Определение предметно-ориентированных языков
Чтобы определить язык, нужен язык, на котором будет записано определение. Язык модели часто называют метамоделью , поэтому язык для определения языка моделирования - это мета-метамодель. Мета-метамодели можно разделить на две группы: те, которые созданы на основе существующих языков или адаптированы к ним, и те, которые были разработаны специально как мета-метамодели.
Производные мета-метамодели включают диаграммы взаимосвязей сущностей , формальные языки , расширенную форму Бэкуса-Наура (EBNF), языки онтологий , схему XML и средство мета-объектов (MOF). Сильные стороны этих языков, как правило, заключаются в знакомстве и стандартизации исходного языка.
Этос предметно-ориентированного моделирования способствует созданию нового языка для конкретной задачи, поэтому неудивительно, что новые языки разработаны как мета-метамодели. Наиболее широко используемым семейством таких языков является OPRR, [3] [4] GOPRR, [5] и GOPPRR, которые сосредоточены на поддержке вещей, найденных в языках моделирования, с минимальными усилиями.
Инструментальная поддержка языков, специфичных для предметной области
Многие языки моделирования общего назначения уже имеют поддержку инструментов в виде инструментов CASE . Языки предметно-ориентированных языков, как правило, имеют слишком маленький размер рынка, чтобы поддерживать создание индивидуального CASE-инструмента с нуля. Вместо этого, большая часть инструментальной поддержки языков, специфичных для предметной области, строится на основе существующих предметно-ориентированных языковых структур или через предметно-ориентированные языковые среды.
Среда предметно-ориентированного языка может рассматриваться как инструмент метамоделирования, т. Е. Инструмент моделирования, используемый для определения инструмента моделирования или инструмента CASE. Полученный в результате инструмент может либо работать в языковой среде, зависящей от предметной области, либо, реже, создаваться как отдельная автономная программа. В более распространенном случае языковая среда предметной области поддерживает дополнительный уровень абстракции по сравнению с традиционным инструментом CASE.
Использование предметно-ориентированной языковой среды может значительно снизить затраты на получение инструментальной поддержки для предметно-ориентированного языка, поскольку хорошо спроектированная предметно-ориентированная языковая среда автоматизирует создание частей программы, создание которых с нуля требует больших затрат, таких как редакторы, браузеры и компоненты для конкретной предметной области. Специалисту в предметной области необходимо только указать конструкции и правила, специфичные для предметной области, а языковая среда для предметной области предоставляет инструмент моделирования, адаптированный для целевой области.
Большинство существующих предметно-ориентированных языков имеет место в предметно-ориентированных языковых средах, будь то коммерческие, такие как MetaEdit + или Actifsource , с открытым исходным кодом, такие как GEMS , или академические, такие как GME . Растущая популярность предметно-ориентированного языка привела к добавлению предметно-ориентированных языковых структур к существующим IDE, например Eclipse Modeling Project (EMP) с EMF и GMF , или к инструментам Microsoft DSL для фабрик программного обеспечения .
Доменно-ориентированный язык и UML
Unified Modeling Language (UML) является моделирование общего назначения языка программных систем , которая предназначена для поддержки в основном объектно - ориентированного программирования . Следовательно, в отличие от языков, специфичных для предметной области, UML используется для самых разных целей в широком диапазоне предметных областей. UML предлагает примитивы объектно-ориентированного программирования, тогда как предметно-ориентированные языки предлагают примитивы, семантика которых знакома всем специалистам в этой области. Например, в области автомобильной техники будут модели программного обеспечения для представления свойств антиблокировочной тормозной системы , рулевого колеса и т. Д.
UML включает механизм профилей, который позволяет ограничивать и настраивать его для определенных доменов и платформ. Профили UML используют стереотипы , атрибуты стереотипов (известные как значения с тегами до UML 2.0) и ограничения для ограничения и расширения области применения UML до определенного домена. Возможно, наиболее известным примером настройки UML для конкретной области является SysML , язык для системной инженерии, ориентированный на конкретную область .
Смотрите также
- Компьютерная разработка программного обеспечения
- Домен-ориентированный дизайн
- Доменный язык
- Язык моделирования, специфичный для платформы
- Универсальное моделирование
- Мультимоделирование для конкретных областей
- Модельно-ориентированная инженерия
- Модельно-управляемая архитектура
- Софтверные фабрики
- Дисциплинарное моделирование
Рекомендации
- ^ Келли, С. и Толванен, Дж.-П., (2008) Доменно-ориентированное моделирование: включение генерации полного кода, John Wiley & Sons, Нью-Джерси. ISBN 978-0-470-03666-2 [1]
- ^ Эйхберг, Майкл; Монперрус, Мартин; Клоппенбург, Свен; Mezini, Мира (2010), "Model-Driven Engineering машиноведения исполняемого кода" (PDF) , моделирование Основы и приложения , конспекты лекций по информатике, 6138 , стр 104-115,. Дои : 10.1007 / 978-3-642- 13595-8_10 , ISBN 978-3-642-13594-1, получено 06.03.2019
- ^ RJ Welke. Репозиторий CASE: больше, чем другое приложение для работы с базами данных. В WW Cotterman и JA Senn, редакторы, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University. [2]
- ^ Смоландер, К., (1992) OPRR - Модель для моделирования методов разработки систем. В: Инструменты CASE нового поколения (ред. К. Лютинен, В.-П. Тахванайнен) IOS Press, Амстердам, Нидерланды, стр. 224-239. [3]
- ^ Келли, С., Литинен, К., и Росся, М., "MetaEdit +: полностью настраиваемый Многопользовательский и Multi-Tool СЛУЧАЙ Environment," Труды CAiSE'96, восьмой Intl. Конференция по передовой инженерии информационных систем, Lecture Notes in Computer Science 1080, Springer-Verlag, pp. 1-21, 1996. (в докторской диссертации как 3metools.pdf)
Внешние ссылки
- Доменно-ориентированное моделирование для генеративной разработки программного обеспечения , веб-статья Мартин Исегер, 2010 г.
- Доменно-ориентированное моделирование в фреймворках IoC Веб-статья Ке Джин , 2007 г.
- Доменно-ориентированное моделирование для генерации полного кода из веб-статьи о методах и инструментах Юхи-Пекки Толванен, 2005 г.
- Создание предметно-ориентированного языка моделирования для существующей платформы Web-статья Юхи-Пекки Толванен, 2006 г.