Остання редакція: 26-03-2018
Тези доповіді
Створення моделі деякого феномену реального світу, здається, є природнім людським прагненням розуміти та прогнозувати явища в світі. Багато дисциплін використовує моделі, щоб спростити складні поняття, з метою кращого розуміння їх суті.
Моделювання завжди було важливим механізмом для подолання складності реальності. Хоча в науці моделі використовуються для опису існуючих явищ реального світу, в техніці моделі використовуються для опису систем, які будуть розроблятися в майбутньому. Таким чином, інженерні моделі зазвичай є конструктивними, тоді як наукові моделі є описовими.
Вчені управляють складністю явищ які вони вивчають через моделювання. Звичайно, щоб бути корисними у якості засобу інформації, моделі повинні бути чітко виражені, тобто усі припущення повинні бути чітко висловлені та повідомлені мовою, яку можуть розуміти більшість зацікавлених науковців. Стаховіак дає детальне визначення моделювання [1], де три основні характеристики моделі описуються наступним чином:
1) існує оригінал,
2) модель є абстракцією оригіналу,
3) модель відповідає цілям оригіналу.
Наукові моделі, як правило, використовуються для розуміння реального світу та передбачення деяких його аспектів: за допомогою гравітаційних законів Ньютона ми можемо передбачити, скільки часу потрібно для того, щоб яблуко впало з дерева. Філософ К. Поппер характеризував наукові теорії як фальсифіковані моделі, тобто моделі, які можна порівняти з деякою спостережуваною реальністю, щоб оцінити, де вони знайдуть застосування. Таким чином, оригінал є частиною цього світу. Вчені абстрагуються від складних деталей, і, як правило, моделі, які вони будують, застосовуються в межах певних кордонів, які також повинні бути явно визначені.
Деякі відомі моделі є неправильними, але все-таки вони досить добре пояснюють певні явища, наприклад, геоцентричні моделі Сонячної системи Кеплера. Абстракція завжди означає, що деякі властивості втрачаються, хоча, з огляду на мету моделі, достатньо детально відображені для виконання цілей моделі. Тому, на питання «Чи корисно модель?», можна відповісти лише знаючи її призначення.
Інженери (в тому числі інженери програмного забезпечення), як і вчені, використовують моделі для спрощення складних явищ. Однак головна відмінність полягає в тому, що феномен (наприклад, двигун, процес, програмне забезпечення), який моделюється, як правило, не існує на момент побудови моделі, оскільки мета інженерів - побудувати цей феномен з моделі. Тобто модель виконує роль плану або проекту.
У інженерії типовою задачею є розбиття складної системи на стільки моделей, скільки потрібно, щоб відповідати всім поставленим задачам таким чином, щоб вони піддавалися аналізу, стали зрозумілі та готові до побудови. Даний підхід поділу задач на більш прості витримав випробування часом. В галузі розробки програмного забезпечення, модель-орієнтована інженерія (англ. MDE) спрямована на зменшення випадкової складності, пов'язаної з розробкою складних програмних систем [2]. Первинним джерелом випадкової складності є великий розрив між високорівневими поняттями, що використовуються експертами областей для вираження їх конкретних потреб та абстракцій низького рівня, що надаються мовами загального програмування [3]. Усунення цього розриву вручну коштує як багато часу, так і зусиль. Підходи MDE вирішують цю проблему за допомогою методів моделювання, які підтримують розділ функцій та автоматичне створення основних артефактів моделей. У MDE модель описує аспект системи. Розділ функцій залежить від використання різних мов моделювання, кожна з яких надає конструкції на основі абстракцій, специфічних для конкретного аспекту системи.
Використання концепцій, специфічних для конкретних доменів та досвіду розробки в на основі MDE, може суттєво підвищити продуктивність та якість розроблюваних систем. Усвідомлення останнього, призвело до появи мовних робочих станцій MDE, які підтримують домен-орієнтовані мови моделювання (англ. DSML), та пов'язаних з ними інструментів (наприклад, редакторів моделей, симуляторів та генераторів коду). DSML забезпечує зв'язок між проблемним простором, в якому працюють експерти доменів та простору реалізації (програмування). У цьому контексті DSML можна використовувати для підтримки соціотехнічної злагодженості, надаючи усім учасникам процесу розробки засоби для подолання розриву між тим, як вони сприймають проблему та її рішенням, а також технологій програмування, що використовуються для розробки рішення.
Домени, в яких були розроблені та використані DSML, включають автомобілебудування, авіоніку та кібер-фізичні системи. Дослідження DSML створили технологічну базу, достатньо надійну для підтримки інтеграції процесів розробки DSML у великі середовища розробки промислових систем. Нинішні засоби вже підтримують розробку DSML для створення моделей, які відіграють ключову роль на різних етапах розробки. Застосування, такі як інструменти DSL для Microsofts, MetaCases MetaEdit +, JetBrains MPS, Eclipse Modeling Framework (EMF) та загального середовища моделювання (GME) підтримують специфікацію абстрактного синтаксису, конкретного синтаксису та статичної та динамічної семантики DSML. Дані застосування відповідають потребам розробників DSML в різних областях. За допомогою технології MDE нова DSML, як правило, спочатку визначається через модель домену, так звану метамодель, яка визначає абстрактний синтаксис DSML як набір концепцій та взаємозв'язків між конкретними областями. Спільнота MDE розробила багату екосистему інструментів, що побудовані на основі стандартизованих об'єктно-орієнтованих технологій метамоделювання, таких як EMOF [4]. Ці інструменти здатні створювати інструменти, що підтримують DSML, такі як графічні або текстові редактори, генератори коду, симулятори та інші служби інтегрованого середовища розробки (IDE).
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
[1] H. Stachowiak. Allgemeine Modelltheorie. Springer-Verlag, 1973.
[2] D. C. Schmidt. Model-driven engineering. IEEE Computer, 2006.
[3] R. France and B. Rumpe. Model-driven Development of Complex Software: A Research Roadmap. In 2007 Future of Software Engineering, IEEE Computer Society, 2007.
[4] Object Management Group. Meta object facility (MOF) core specification, 2014.