3.2 Концептуальне моделювання проблеми
3.2.1 Мета
Процес побудови моделі проблеми, орієнтованої на її розуміння людиною, назвемо концептуальним моделюванням (conceptual modeling). Кожна проблемна галузь - назвемо її доменом - має властиву їй систему понять, знайому тільки відповідним професіоналам, свою систему "замовчування" того, що має вважатися "загальновідомим" у рамках свого домену, свої характерні властивості (атрибути), відношення та правила поведінки. Однак роль концептуальної моделі полягає в тому, щоб бути посередником між професіоналами, котрі належать до різних доменів, наприклад, як програмісти та фахівці з бухгалтерії. Ступінь формалізації цієї моделі має бути достатнім, щоб забезпечувати точність та однозначність трактування носіями інтересів у розробці, і водночас не надмірним, щоб бути доступним для розуміння не лише математикам за фахом, і спроможним відобразити деталі фахових проблем багатьох верств спеціалістів.
Враховуючи складність та розмаїття завдань, які вирішуються за допомогою програмних систем, винайти єдину модель для всіх поки що не вдалося. Але є кілька пропозицій нотацій для моделей, що досить адекватно відображають окремі аспекти проблем, а в своїй комбінації охоплюють проблеми з достатньою повнотою. Розглянемо ці пропозиції.
Найпершою з моделей домену може вважатися його понятійна база, тобто система понять, за допомогою якої формулюються всі аспекти проблеми. Понятійна база визначає не лише термінологію, якою мають користуватися носії інтересів, котрі беруть участь у процесі аналізу вимог, а також і суттєві відносини між поняттями та їхньою інтерпретацією.
Сукупність термінології, понять, характерних для них відносин і парадигми їхньої інтерпретації в межах домену прийнято називати онтологією домену.
Зміст поняття може бути охарактеризовано сукупністю спільних істотних ознак тих явищ та предметів, які позначаються назвою поняття. Сукупність явищ, охоплених поняттям, називається його обсягом. У ментальній діяльності людини застосовуються відношення, які дозволяють будувати похідні поняття і встановлювати між ними зв’язки. Серед таких відношень назвемо найпоширеніші:
- узагальнення - це звуження істотних ознак поняття, при цьому розширюється коло охоплених поняттям об’єктів, тобто його обсяг. Приклади: свійська тварина є узагальненням понять свиня, корова та багатьох інших;
- конкретизація - це додавання істотних ознак, завдяки чому зміст поняття розширюється, а обсяг поняття звужується. Наприклад, студент консерваторії є конкретизацією загального поняття студент;
- агрегація (aggregation) - це об’єднання низки понять у нове поняття, істотні ознаки нового поняття при цьому можуть бути або сумою ознак компонентів або суттєво новими. Прикладом першого типу є пральна машина з центрифугою, другого - автомобіль як композиція колес, двигуна, корпусу, керма тощо. Відношення агрегації часто має назву відношення частка - ціле;
- асоціація (association) - це найбільш загальне відношення, що утверджує наявність зв’язку між поняттями, не уточнюючи залежності між їхнім змістом та обсягами.
Для окремих доменів можуть використовуватися специфічні для них відношення. Наприклад, каталізатор - у хімії, нащадок-предок - у генеалогії, рід-вид - у біології тощо. Фіксація в онтології відношень між поняттями структурує понятійний базис домену проблемної галузі.
Онтологія дозволяє втримувати користувача в максимально можливому просторі визначених наперед можливостей, зміст яких зафіксовано і він зрозумілий як розробникові, так і замовникові. Очевидно, що перебування в такому просторі гарантує обидві згадані вище сторони договору (який матеріалізовано у формі вимог) від взаємних непорозумінь. Очевидно також, що для відносно нових і достатньо складних галузей застосування комп’ютерних систем повний спектр можливостей передбачити важко, тому важливу роль відіграє аспект внесення змін у вимоги.
Для подання онтологій використовуються спеціальні нотації. Наприклад, діаграми сутність-зв’язок мають форму графів, у вузлах яких лежать поняття, а дуги відповідають відношенням між ними. Слід зазначити, що у зв’язку з інформатизацією життя суспільства поширюється тенденція створення і стандартизації онтологій для окремих проблемних галузей, що суттєво спрощує формулювання вимог у таких галузях.
У розробку галузевих онтологій вкладається чимало інвестицій, навіть побудовано бібліотеки фахових онтологій [3], та, на жаль, не в Україні, де така робота ще й не починалася. Треба сказати, що побудова й супроводження національних фахових онтологій та гармонізація їх із закордонними зразками принесе велику віддачу від вкладених інвестицій, дозволить занотувати актуальний стан справ у відповідній галузі, створити середовище взаєморозуміння й обміну думками вітчизняних професіоналів як між собою, так і з міжнародною спільнотою відповідних спеціалістів.
У значущих для суспільства професіях така робота лежить у руслі помітної тенденції фіксації необхідної суми професійних знань, що дозволяє проводити акредитацію відповідних навчальних програм навчальних закладів та сертифікацію спеціалістів як у масштабі окремої держави, так і в міжнародному масштабі. Отже, усе зазначене засвідчує, що розгортання робіт із створення національних онтологій уже на часі і є кроком до інтеграції наших фахівців у міжнародний контекст.
3.2.3 Моделі динамічних явищ домену
Розглянуті в п. 3.2.2 онтології відображають статичні властивості явищ домену, які не враховують їхніх змін за часом. Але більшість проблем, котрі вирішують за допомогою комп’ютерів, мають справу з динамічними явищами, для яких відстеження їхньої поведінки з перебігом часу є суттєвим аспектом вимог до системи.
Домени з такими властивостями назвали динамічними доменами.
Для динамічних доменів суттєвими поняттями є:
- стан (state) (домену, системи, об’єкта тощо) - фіксація певних властивостей на певний момент або інтервал часу;
- інтервал стабільності (stability interval) - інтервал часу, протягом якого не змінюється стан;
- подія - явище, що провокує зміну певного стану як перехід до іншого стану (ми розглядаємо лише дискретні процеси в доменах).
Поведінка домену в часі розглядається як прогрес від стану до стану. Серед динамічних доменів визначаються такі різновиди:
- інертні домени (inertial domain), зміна станів яких ніколи не відбувається з ініціативи об’єктів домену, а реалізується під керуванням зовнішніх агентів. Наприклад, оброблення текстів реалізується як результат виконання послідовних команд оператора;
- реактивні домени (reagent domain), зміна стану в яких є відповіддю на певну зовнішню подію. Наприклад, автомат, який видає цукерку у відповідь на монетку, кинуту в щілину монетоприймача;
- активні домени (active domain), які можуть переходити від стану до стану без зовнішніх стимулів, як це робиться з людиною або атмосферою.
Визначаючи вимоги до системи, важливо одразу вирішити чи планується вона як інертна, реактивна, чи як активна. Наприклад, для медичної системи принципово визначити чи планується вона як модель пацієнта, чи як реєстратор його стану.
Найпоширенішою моделлю поведінки динамічних явищ є так звана модель переходів у стани, яка базується на моделі скінченного автомата. Для кожного явища або об’єкта, котрий має динамічну поведінку, фіксуються стани, в яких він може перебувати. Дозволяється мати кінцеву множину станів, при чому перехід з одного стану до іншого відбувається дискретно і зумовлюється тим, що відбулася певна подія. Модель поведінки визначає стани, властиві домену, події, які впливають на зміну стану в домені, та послідовність зміни станів залежно від послідовності подій, що відбуваються. Наприклад:
- якщо поїзд має стан "стоїть на станції", і диспетчер станції дав сигнал відправки, тобто відбулася подія "сигнал відправки", поїзд переходить у стан "початок руху від станції";
- якщо хворий має стан "приймання процедури електрофорезу", і відбулася подія "дзвінок годинника задзвенів", медик має перевести хворого у стан "процедуру прийняв".
Якщо змінюється стан якогось об’єкта, то це найчастіше супроводжується певною послідовністю дій, які треба при цьому виконати. Тому модель поведінки зазвичай має у своєму складі визначення сукупностей дій, котрі потрібно виконувати при переході до відповідних станів. При викладенні конкретних методів аналізу вимог буде наведено приклади відповідних нотацій для подання моделі переходів у стани.
Моделі алгоритмів, які застосовуються для формулювання вимог, мають визначити ті дії або процеси, котрі супроводжують переходи з одного стану в інший.
Зазвичай такі моделі визначають потоки даних, які передаються від стану до стану чи від об’єкта до об’єкта, та потоки управління між ними.
Вінницький національний технічний університет