Специализированное моделирование
Специализированное моделирование ( DSM ) — это разработки программного обеспечения методология для проектирования и разработки систем, таких как компьютерное программное обеспечение . Он предполагает систематическое использование предметно-ориентированного языка для представления различных аспектов системы.
Языки моделирования, специфичные для предметной области, как правило, поддерживают абстракции более высокого уровня , чем языки моделирования общего назначения , поэтому они требуют меньше усилий и меньше деталей низкого уровня для определения данной системы.
Обзор
[ редактировать ]Моделирование, специфичное для предметной области, часто также включает в себя идею генерации кода : автоматизацию создания исполняемого исходного кода непосредственно из языковых моделей, специфичных для предметной области. Отсутствие необходимости вручную создавать и поддерживать исходный код означает, что предметно-ориентированный язык может значительно повысить производительность разработчиков. [1] Надежность автоматического создания по сравнению с ручным кодированием также уменьшит количество дефектов в получаемых программах, тем самым повысив качество.
Специализированный для предметной области язык отличается от более ранних попыток генерации кода в инструментах CASE 1980-х годов или инструментах UML 1990-х годов. В обоих случаях генераторы кода и языки моделирования были созданы поставщиками инструментов. [ нужна ссылка ] Хотя поставщик инструментов может создать предметно-ориентированный язык и генераторы, более нормально, если предметно-ориентированный язык встречается в одной организации. Один или несколько опытных разработчиков создают язык моделирования и генераторы, а остальные разработчики их используют.
Наличие языка моделирования и генератора, созданных организацией, которая будет их использовать, позволяет точно соответствовать их конкретной предметной области и реагировать на изменения в предметной области.
Языки, специфичные для предметной области, обычно могут охватывать ряд уровней абстракции для конкретной предметной области. Например, предметно-ориентированный язык моделирования для мобильных телефонов может позволить пользователям указывать абстракции высокого уровня для пользовательского интерфейса , а также абстракции более низкого уровня для хранения данных, таких как номера телефонов или настройки. Аналогичным образом, предметно-ориентированный язык моделирования финансовых услуг может позволить пользователям задавать абстракции высокого уровня для клиентов, а также абстракции более низкого уровня для реализации алгоритмов торговли акциями и облигациями.
Темы
[ редактировать ]Определение предметно-ориентированных языков
[ редактировать ]Чтобы определить язык, нужен язык, на котором можно записать определение. Язык модели часто называют метамоделью , следовательно, языком для определения языка моделирования является метаметамодель. Метаметамодели можно разделить на две группы: те, которые являются производными или модификациями существующих языков, и те, которые были разработаны специально как метаметамодели.
Производные мета-метамодели включают диаграммы сущность-связь , формальные языки , расширенную форму Бэкуса-Наура (EBNF), языки онтологий , схему XML и Meta-Object Facility (MOF). Сильные стороны этих языков, как правило, заключаются в знакомстве и стандартизации исходного языка.
Идея предметно-ориентированного моделирования благоприятствует созданию нового языка для конкретной задачи, и поэтому неудивительно, что появляются новые языки, разработанные как мета-метамодели. Наиболее широко используемое семейство таких языков — OPRR. [2] [3] ГОПРР, [4] и GOPPRR, которые сосредоточены на поддержке вещей, присутствующих в языках моделирования, с минимальными усилиями.
Поддержка инструментов для предметно-ориентированных языков.
[ редактировать ]Многие языки моделирования общего назначения уже имеют инструментальную поддержку в виде CASE- инструментов. Языковые языки, ориентированные на предметную область, как правило, имеют слишком малый размер рынка, чтобы поддерживать создание индивидуального CASE-инструмента с нуля. Вместо этого большая часть инструментальной поддержки предметно-ориентированных языковых языков построена на основе существующих предметно-ориентированных языковых инфраструктур или посредством предметно-ориентированных языковых сред.
Языковую среду, специфичную для предметной области, можно рассматривать как инструмент метамоделирования, т. е. инструмент моделирования, используемый для определения инструмента моделирования или инструмента CASE. Полученный инструмент может либо работать в языковой среде, специфичной для предметной области, либо, реже, создаваться как отдельная автономная программа. В более распространенном случае языковая среда, специфичная для предметной области, поддерживает дополнительный уровень абстракции по сравнению с традиционным инструментом CASE.
Использование предметно-ориентированной языковой среды может значительно снизить стоимость получения инструментальной поддержки для предметно-ориентированного языка, поскольку хорошо спроектированная предметно-ориентированная языковая среда автоматизирует создание частей программы, создание которых с нуля требует больших затрат, таких как специализированные редакторы, браузеры и компоненты. Эксперту предметной области необходимо только указать конструкции и правила, специфичные для предметной области, а языковая среда, специфичная для предметной области, предоставляет инструмент моделирования, адаптированный для целевой предметной области.
Большинство существующих предметно-ориентированных языков реализуется в предметно-ориентированных языковых средах: коммерческих, таких как MetaEdit+ или Actifsource , с открытым исходным кодом, таких как GEMS , или академических, таких как GME . Растущая популярность предметно-ориентированного языка привела к добавлению предметно-ориентированных языковых фреймворков в существующие IDE, например, Eclipse Modeling Project (EMP) с EMF и GMF или в Microsoft DSL Tools for Software Factory .
Предметно-ориентированный язык и UML
[ редактировать ]Унифицированный язык моделирования (UML) — это язык моделирования общего назначения для программно-интенсивных систем, предназначенный для поддержки преимущественно объектно-ориентированного программирования . Следовательно, в отличие от предметно-ориентированных языковых языков, UML используется для самых разных целей в широком спектре предметных областей. Примитивы, предлагаемые UML, относятся к объектно-ориентированному программированию, тогда как предметно-ориентированные языки предлагают примитивы, семантика которых знакома всем специалистам в этой области. Например, в области автомобилестроения будут созданы программные модели, представляющие свойства антиблокировочной тормозной системы , рулевого колеса и т. д.
UML включает механизм профилей, который позволяет ограничивать и настраивать его для конкретных доменов и платформ. Профили UML используют стереотипы , атрибуты стереотипов (известные как тегированные значения до UML 2.0) и ограничения для ограничения и расширения области действия UML до определенного домена. Возможно, наиболее известным примером настройки UML для конкретной области является SysML , язык для конкретной области системного проектирования .
UML — популярный выбор для различных подходов к разработке на основе моделей, при которых технические артефакты, такие как исходный код, документация, тесты и т. д., генерируются алгоритмически из модели предметной области. Например, профили приложений стандарта юридических документов Akoma Ntoso могут быть разработаны путем представления юридических концепций и онтологий в объектах классов UML. [5]
См. также
[ редактировать ]- Компьютерная разработка программного обеспечения
- Доменно-ориентированный дизайн
- Язык, специфичный для предметной области
- Язык моделирования, специфичный для платформы
- Моделирование общего назначения
- Специализированное мультимоделирование
- Модельно-ориентированное проектирование
- Модельно-ориентированная архитектура
- Фабрики программного обеспечения
- Дисциплинарное моделирование
Ссылки
[ редактировать ]- ^ Келли, С. и Толванен, Ж.-П., (2008) Специализированное моделирование: включение полной генерации кода, John Wiley & Sons, Нью-Джерси. ISBN 978-0-470-03666-2 [1]
- ^ Р. Дж. Вельке. Репозиторий CASE: больше, чем просто другое приложение базы данных. В В.В. Коттермане и Дж.А. Сенне, редакторах, «Материалы симпозиума INTEC 1988 г. Системный анализ и проектирование: исследовательская стратегия», Атланта, Джорджия, 1988. Университет штата Джорджия. [2]
- ^ Смоландер, К., (1992) OPRR - Модель для моделирования методов разработки систем. В: Инструменты CASE следующего поколения (под ред. К. Лютинена, В.-П. Тахванайнена), IOS Press, Амстердам, Нидерланды, стр. 224–239. [3]
- ^ Келли С., Лийтинен К. и Росси М., «MetaEdit+: полностью настраиваемая многопользовательская и многофункциональная среда CASE», Труды CAiSE'96, 8-й международный. Конференция по разработке передовых информационных систем, Конспекты лекций по информатике 1080, Springer-Verlag, стр. 1–21, 1996 г. (в докторской диссертации как 3metools.pdf)
- ^ Флэтт, Амели; Лангнер, Арне; Лепс, Олоф (2022). Разработка профилей приложений Akoma Ntoso на основе моделей - концептуальная основа для создания подсхем XML на основе моделей (1-е изд.). Гейдельберг: Природа спринтера. ISBN 978-3-031-14131-7 .
Внешние ссылки
[ редактировать ]- Специализированное моделирование для генеративной разработки программного обеспечения. Архивировано 31 января 2010 г. на Wayback Machine , веб-статья Мартейна Исегера, 2010 г.
- «Моделирование предметной области в средах IoC» Веб-статья Кэ Джина , 2007 г.
- предметно-ориентированное моделирование для полной генерации кода на основе методов и инструментов. Веб-статья Юхи-Пекки Толванен, 2005 г.,
- Создание предметно-ориентированного языка моделирования для существующей платформы» , 2006 г. Веб-статья Юхи-Пекки Толванен «