Предметно-орієнтоване моделювання

Предметно-орієнтоване моделювання (Domain-specific modeling, DSM) — методологія розробки програмного забезпечення для проєктування та розробки систем, наприклад комп'ютерного програмного забезпечення. Включає в себе систематичне використання предметно-орієнтованої мови для представлення різних аспектів системи.

Предметно-орієнтовані мови моделювання, як правило, підтримують абстракції вищого рівня, ніж мови моделювання загального призначення, тому вони вимагають менше зусиль і менше деталей низького рівня для визначення даної системи.

Огляд ред.

Предметно-орієнтоване моделювання часто також включає ідею генерації коду: автоматизація створення виконуваного вихідного коду безпосередньо з предметно-орієнтованих мовних моделей. Відсутність ручного створення та підтримки вихідного коду означає, що предметно-орієнтована мова може значно підвищити продуктивність розробника.[1] Надійність автоматичної генерації порівняно з ручним написанням коду також зменшить кількість дефектів у кінцевих програмах, таким чином покращуючи їх якість.

Предметно-орієнтована мова відрізняється від попередніх спроб генерації коду в інструментах CASE 1980-х років або інструментах UML 1990-х років. В обох з них генератори коду та мови моделювання були створені самими постачальниками інструментів.[потрібне цитування] Хоча постачальник інструментів може створити предметно-орієнтовану мову та її генератори, зазвичай предметно-орієнтована мова створюється всередині окремої організації. Один або кілька експертів-розробників створюють мову моделювання та її генератори, а решта розробників використовують їх.

Наявність мови моделювання та її генератора, створених організацією, яка їх використовуватиме, дозволяє точно відповідати предметній області організації та реагувати на її зміни.

Зазвичай предметно-орієнтовані мови можуть охоплювати декілька рівнів абстракції для конкретної предметної області. Наприклад, предметно-орієнтована мова моделювання для мобільних телефонів може дозволити користувачам визначати як абстракції високого рівня для інтерфейсу користувача, а також абстракції нижчого рівня для зберігання даних, наприклад номери або налаштування телефонів. Так само предметно-орієнтована мова моделювання для фінансових послуг може дозволити її користувачам визначати абстракції високого рівня для клієнтів, а також абстракції нижчого рівня для реалізації алгоритмів торгівлі акціями та облігаціями.

Теми ред.

Визначення предметно-орієнтованих мов ред.

Щоб визначити предметно-орієнтовану мову, потрібна мова якій будуть писатись самі визначення. Така мова моделювання часто називається метамоделлю, тому мова для визначення мови моделювання є мета-метамоделлю. Мета-метамоделі можна розділити на дві групи: ті, які є похідними від існуючих мов або настроєні на них, і ті, які були розроблені спеціально як мета-метамоделі.

Похідні мета-метамоделі включають в себе діаграми сутність-зв'язок, формальні мови, розширену форму Бекуса-Наура (EBNF), мови онтології, схему XML і мета-об'єктний засіб (MOF). Сильні сторони цих мов, як правило, полягають у схожості із мовою оригіналу та її стандартизації.

Принцип предметно-орієнтованого моделювання сприяє створенню нової мови для конкретного завдання, що пояснює існування нових мов, розроблених як мета-метамоделі. Найпоширенішим сімейством таких мов є OPRR,[2][3] GOPRR,[4] і GOPPRR, які сфокусовані на підтримці речей, що знайдені у мовах моделювання, з мінімальними зусиллями.

Підтримка інструментів для предметно-орієнтованих мов ред.

Багато мов моделювання загального призначення вже мають інструменти для підтримки, доступних у вигляді інструментів CASE. Предметно-орієнтовані мови, як правило, мають надто малий розмір ринку, щоб підтримувати побудову індивідуального інструменту CASE з нуля. Замість цього більшість інструментів для підтримки предметно-орієнтованих мовних мов будуються на основі існуючих предметно-орієнтованих мовних фреймворків або середовищ.

Мовне середовище, орієнтоване на предметну область, можна розглядати як інструмент метамоделювання, тобто інструмент моделювання, який використовується для визначення самого інструменту моделювання або інструменту CASE. В порівнянні із інструментом CASE він підтримує додатковий рівень абстракції. Отриманий інструмент може або працювати всередині мовного середовища предметної області, або створюватися як окрема незалежна програма.

Використання предметно-орієнтованого мовного середовища може значно знизити вартість отримання інструментів для підтримки предметно-орієнтованої мови, оскільки добре спроектоване мовне середовище автоматизує створення частин програми, створення яких з нуля є дорогим, наприклад предметно-орієнтовані редактори, браузери та компоненти. Експерту в предметній області потрібно лише вказати специфічні для предметної області конструкції та правила, після чого мовне середовище надає інструмент моделювання, адаптований для цільової предметної області.

Більшість існуючих предметно-орієнтованих мов має місце в предметно-орієнтованих мовних середовищах, комерційних, як-от MetaEdit+ або Actifsource, з відкритим кодом, як-от GEMS, або академічних, як-от GME. Зростаюча популярність предметно-орієнтованих мов призвела до додавання предметно-орієнтованих мовних фреймворків до існуючих IDE (наприклад, Eclipse Modeling Project] (EMP) з EMF і GMF або в Microsoft DSL Tools for Software Factories).

Предметно-орієнтована мова та UML ред.

Уніфікована мова моделювання (UML) — це мова моделювання загального призначення для систем із інтенсивним використанням програмного забезпечення, розроблена для підтримки переважно об'єктно-орієнтованого програмування. Отже, на відміну від предметно-орієнтованих мов, UML використовується для широкого спектру цілей у широкому діапазоні предметних областей. Примітиви, які пропонує UML, є примітивами об'єктно-орієнтованого програмування, тоді як предметно-орієнтовані мови пропонують примітиви, семантика яких знайома всім практикуючим спеціалістам у цій області. Наприклад, у галузі автомобільної техніки це моделі програмного забезпечення для представлення властивостей антиблокувальної гальмівної системи або рульового колеса тощо.

UML містить механізм профілю, який дозволяє обмежувати його та налаштовувати для конкретних предметних областей і платформ. Профілі UML використовують стереотипи, стереотипні атрибути (відомі як значення тегів до UML 2.0) і обмеження, щоб обмежити та розширити область UML до певного домену. Мабуть, найвідомішим прикладом налаштування UML для конкретного домену є SysML, специфічна для домену мова для системної інженерії.

UML є популярним вибором для різних підходів до розробки на основі моделі, за допомогою яких технічні артефакти, такі як вихідний код, документація, тести тощо, генеруються алгоритмічно з моделі предметної області. Наприклад, профілі застосунків стандарту правових документів Akoma Ntoso можна розробити шляхом представлення правових концепцій і онтологій в об'єктах класу UML.[5]

Див. також ред.

Примітки ред.

  1. Kelly, S. and Tolvanen, J.-P., (2008) Domain-Specific Modeling: Enabling Full Code Generation, John Wiley & Sons, New Jersey. ISBN 978-0-470-03666-2
  2. R.J. Welke. The CASE Repository: More than another database application. In W.W. Cotterman and J.A. Senn, editors, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University.
  3. Smolander, K., (1992) OPRR — A Model for Modeling Systems Development Methods. In: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Amsterdam, Netherlands, pp. 224—239.
  4. Kelly, S., Lyytinen, K., and Rossi, M., "MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE Environment, " Proceedings of CAiSE'96, 8th Intl. Conference on Advanced Information Systems Engineering, Lecture Notes in Computer Science 1080, Springer-Verlag, pp. 1-21, 1996. (in Ph.D. thesis as 3metools.pdf)
  5. Flatt, Amelie; Langner, Arne; Leps, Olof (2022). Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas (англ.) (вид. 1st). Heidelberg: Sprinter Nature. ISBN 978-3-031-14131-7.

Посилання ред.