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