Міністерство освіти і науки України Моделювання комп’ютерних систем Конспект лекцій для студентів спеціальності 7.05010201 «Комп'ютерні системи та мережі» денної та заочної форм навчання Луцьк 2016 УДК 004.94 До друку______________ Голова Навчально-методичної ради Луцького НТУ (підпис) Електронна копія друкованого видання передана для внесення в репозитарій Луцького НТУ ________________ директор бібліотеки. (підпис) Затверджено Навчально-методичною радою Луцького НТУ, протокол № ___ від «____» __________ 20 ____ року. Рекомендовано до видання Навчально-методичною радою факультету комп’ютерних наук та інформаційних технологій Луцького НТУ, протокол № ___ від «____» __________ 20 ____ року. ________________ Голова навчально-методичної ради факультету КНІТ (підпис) Розглянуто і схвалено на засіданні кафедри комп’ютерної інженерії Луцького НТУ, протокол № ___ від «____» __________ 20 ____ року. Укладачі: _____________ Коцюба А.Ю., к.ф.-м.н., доцент Луцького НТУ (підпис) _____________ Лавренчук С.В., асистент Луцького НТУ (підпис) Рецензент: _______________ К.Я. Бортник, к.т.н., доцент Луцького НТУ (підпис) Відповідальний за випуск: ____________ П.А. Пех, к.т.н., доцент Луцького НТУ (підпис) Моделювання комп’ютерних систем [Текст]: конспект лекцій для студентів спеціальності 7.05010201 «Комп’ютерні системи та мережі» денної та заочної форм навчання / уклад. А.Ю. Коцюба, С.В. Лавренчук. – Луцьк: Луцький НТУ, 2016. – 48 с. © Коцюба А.Ю., Лавренчук С.В., 2016 2 Зміст Тема 1. КЛАСИФІКАЦІЯ, ЗАГАЛЬНІ ВЛАСТИВОСТІ ТА ОСНОВНІ ТИПИ МОДЕЛЕЙ СИСТЕМ .............................................................................. 4 Класифікація моделей.......................................................................................... 4 Основні властивості моделей.............................................................................. 7 Основні види та етапи моделювання ................................................................. 8 Структури систем ............................................................................................... 13 Формалізоване подання систем ........................................................................ 15 Тема 2. ОБ’ЄКТНО-ОРІЄНТОВАНИЙ ПІДХІД ДО МОДЕЛЮВАННЯ СИСТЕМ ............................................................................................................... 18 Загальна характеристика UML ......................................................................... 23 Переваги UML .................................................................................................... 24 Недоліки UML .................................................................................................... 25 Шляхи подолання недоліків.............................................................................. 27 Тема 3. ІНСТРУМЕНТАЛЬНІ ЗАСОБИ МОДЕЛЮВАННЯ. ................... 29 Моделювання з використанням математичних пакетів ................................. 29 Імітаційне моделювання .................................................................................... 32 GPSS World ...................................................................................................... 37 Пакет імітаційного моделювання Rockwell Arena. ..................................... 40 Пакет імітаційного моделювання AnyLogіc. ............................................... 41 Пакет MatLab Simulink ................................................................................... 43 СПИСОК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ .................................................. 47 3 Тема 1. КЛАСИФІКАЦІЯ, ЗАГАЛЬНІ ВЛАСТИВОСТІ ТА ОСНОВНІ ТИПИ МОДЕЛЕЙ СИСТЕМ Класифікація моделей За формою подання вирізняють реальні та абстрактні моделі. Реальні (матеріальні, речовинні, натурні) моделі є реальними об’єктами, які у тому чи іншому відношенні можуть замішувати об’єктиоригінали. При цьому вони відтворюють ті характеристики та властивості останніх, що цікавлять дослідника, і є більш зручними для дослідження. Прикладами таких моделей можуть бути моделі літаків, призначені для аерогідродинамічних випробувань, макети архітектурних споруд, еквівалентні електричні схеми напівпровідникових приладів тощо. Абстрактні (ідеальні) моделі є ідеальними конструкціями, створеними засобами мислення, свідомості. їх поділяють на мовні, графічні, знакові, математичні й алгоритмічні. Прикладами ідеальних моделей є рівняння, формули, схеми, плани тощо, що описують різноманітні реальні процеси та об’єкти. При побудові абстрактних моделей зазвичай використовують спеціальні мови, терміни, символи тощо. Ці мови створюють на основі тих чи інших природних мов, але значення наукових термінів можуть суттєво відрізнятися від значень відповідних слів у природній та професійних мовах. Прикладом є значення терміна "реакція" у хімії, біології та політології. У сучасній науці і техніці велике значення мають математичні та комп’ютерні моделі. При побудові моделей часто виникає необхідність встановлення відношення подібності між моделлю та оригіналом. Для цього використовують такі основні методи. Пряма подібність цілеспрямовано встановлюється під час створення моделі. Прикладами моделей прямої подібності є макети споруд, моделі літаків, шаблони, викройки, фотографії 4 тощо. Для їх побудови використовують теорію подібності, яка дає змогу перераховувати результати вимірювань, одержувані в експериментах з моделями, на результати, що можуть бути одержані у подібних умовах на оригіналі. Непряма подібність не встановлюється дослідником, а існує об’єктивно. Вона проявляється як збіг або достатня близькість абстрактних моделей різних систем та процесів. Наприклад, можна говорити про математичну тотожність моделей гармонічних коливань у різноманітних механічних, електричних, хімічних та інших системах. Тому коливальні системи одного типу можна використовувати як моделі коливальних систем іншого типу. Зокрема, використовувати як електричний матеріальну коливальний модель контур довільного можна гармонічного осцилятора, завдяки зручності автоматичної реєстрації його вихідної характеристики. Прикладами моделей непрямої подібності є годинник (аналог часу), піддослідні тварини у медичних дослідженнях (аналог організму людини) тощо. Існують спеціальні аналогові обчислювальні машини, за допомогою яких можна створювати електричні ланцюги, що є аналогами різноманітних динамічних систем. Умовна подібність встановлюється як результат домовленості. Прикладами моделей умовної подібності є алгоритм (модель послідовності дій), гроші (модель вартості), паспорт особи (модель його власника), робочі креслення (модель готового виробу), географічні карти (модель місцевості), умовні сигнали тощо. Залежно від мети моделювання, вирізняють пізнавальні та прагматичні моделі. Пізнавальні (дескриптивні, описові) моделі відповідають теоретичним цілям і є формою організації та подання знань. Вони відображають те, що вже існує, а їх основним завданням є наближення моделі до реальності. У структурному системному аналізі їх називають моделями "Як є" ("As is"). Метою розробки й застосування пізнавальних моделей зазвичай є: 5 - вивчення об'єкта (наукові дослідження), тобто найбільш повне і правильне відображення його складу, структури й властивостей; - управління об'єктом, тобто найточніше відображення впливу певних факторів у визначеному діапазоні їх зміни, на його істотні властивості; - прогнозування, тобто найточніше визначення подальшої поведінки об'єкта і майбутніх значень його параметрів; - навчання, тобто правильне відображення певних властивостей об'єкта. Прикладами пізнавальних моделей є наукові поняття, рівняння залежностей тощо. Пізнавальні моделі зазвичай використовують як теоретичну основу для проектування алгоритмів, програмних систем, засобів автоматизації, систем управління, електронних систем тощо. Прагматичні (нормативні, прескриптивні) моделі є засобом керування, організації практичної діяльності людей, уявленням про зразково правильні дії, порядок їх виконання або результати. Основним завданням таких моделей є наближення реальності до них, оскільки у цьому разі модель розуміється як певний стандарт. У структурному системному аналізі прагматичні моделі називають моделями "Як має бути" ("То be"). Типовими прикладами прагматичних моделей є: мета (модель бажаного майбутнього); алгоритм (модель майбутньої діяльності); проекти машин та споруд; складальні креслення; шаблони; закони; плани та програми дій; розклади; статути й посадові інструкції організацій, бізнес-плани тощо. В основі іншого підходу до класифікації моделей систем лежить їх поділ на статичні й динамічні. Статичні моделі призначені для визначення будови та характеристик, що відповідають певному відносно стабільному стану системи, їх прикладами є структурні схеми, кристалічні решітки кристалів, географічні карти, розклади руху поїздів, кваліфікаційні характеристики фахівців тощо. Динамічні моделі відображають процеси зміни стану та характеристик системи. Їх прикладами є рівняння фізичних процесів (рівняння дифузії, 6 теплопровідності та інші), моделі хімічних реакцій, перспективні плани розвитку організацій і т. п. Основні властивості моделей Основними властивостями моделей вважають їх скінченність, наближеність, повноту, адекватність та істинність. Скінченність моделі полягає у тому, що вона відображає лише деякі з характеристик та відношень, властивих оригіналу. Скінченність зумовлюється обмеженістю часу, пам’яті ЕОМ та інших ресурсів, потрібних для розробки та аналізу моделі. Іншою причиною є те, що із великої кількості різноманітних зв'язків досліджуваної системи з навколишнім середовищем, а також її компонентів та зв'язків між ними лише деякі істотно впливають на властивості, що вивчаються. Тому немає потреби у врахуванні інших зв'язків і компонентів. Більш того врахування в моделі несуттєвої інформації призведе до отримання надмірно складної моделі, результати дослідження якої можуть виявитися досить неточними через її математичну некоректність та похибки округлення при розрахунках. Наближеність моделі означає, що вона лише наближено відображає характеристики та відношення, що існують в об'єкті дослідження. Типовими прикладами наближень, які використовують при математичному моделюванні, є заміна дискретних систем неперервними та навпаки, задання обмежень на точність чисельних розрахунків, заміна нелінійних залежностей лінійними тощо. Із скінченності та наближеності моделі випливає, що вона відображає оригінал неповно. Ступінь повноти моделі визначається метою та завданнями дослідження. Слід зазначити, що неповнота моделі не обов'язково є ії недоліком, оскільки немає сенсу будувати модель, яка є точним повторенням оригіналу. Адекватність моделі характеризує можливість реалізації цілей моделювання, а її істинність – відповідність моделі сукупності наявних знань про об’єкт дослідження. Істинність моделі не є гарантією її 7 адекватності. Зокрема, адекватність істинної моделі може бути зумовлена накопиченням похибок через необхідність виконання великого обсягу розрахунків. Спільною рисою всіх моделей є те, що модель є цільовим відображенням оригіналу. Це означає, що при побудові моделі у першу чергу слід враховувати цілі й завдання дослідження оригіналу. При зміні мети дослідження часто буває необхідно змінити й модель, що використовується. Таким чином, для одного й того самого об’єкта може існувати багато різних моделей. Тому часто говорять про множинність моделей систем. Якість моделей залежить як від об'єктивних, так і від суб'єктивних факторів. До об'єктивних насамперед належать обмеження пов'язані з можливостями використовуваних методів і програмного забезпечення. Основними суб'єктивними факторами, що впливають на якість моделей систем, є: - вибірковість відображення властивостей оригінала дослідником, яка залежить від рівня його кваліфікації, попереднього досвіду, самопочуття та інших чинників; - властивість людського розуму заповнювати прогалини в наявній інформації на основі попереднього досвіду дослідника, який не завжди є адекватним ситуації, що вивчається; - застосування для нового об'єкта так званих типових моделей, які можуть виявитися непридатними для його подання. Основні види та етапи моделювання Відповідно до класифікації моделей, вирізняють такі види моделювання. Концептуальне моделювання за допомогою природних або штучних мов визначає принципові аспекти побудови або функціонування об'єкта дослідження. Прикладами завдань концептуального 8 моделювання є: побудова сценаріїврозвитку організації з метою прийняття стратегічних рішень; вибір інерціальної або неінерціальної системи відліку при записі рівнянь руху у механіці; врахування або неврахування динаміки системи при її вивченні тощо. Інтуїтивне моделювання передбачає прогнозування поведінки досліджуваної системи на основі уявних експериментів і врахування практичного досвіду дослідника. Класичним прикладом інтуїтивного моделювання через здійснення уявних експериментів є дискусія А. Ейнштейна і Н. Бора стосовно філософських засад квантової механіки. Фізичне моделювання здійснюють шляхом дослідження як моделі реального фізичного об'єкта, між яким і об'єктом-оригіналом встановлені відношення подібності, що ґрунтуються на подібності фізичних процесів, що відбуваються в них. Структурно-функціональне моделювання передбачає побудову і використання як моделей графіків, таблиць, блок-схем тощо, для яких встановлено певні правила їх об'єднання й перетворення. Прикладами структурно-функціонального моделювання є: розробка блок-схем алгоритмів роботи комп'ютерних програм; побудова й перетворення електричних схем; створення класифікаційних схем; розробка розкладів занять у навчальних закладах і т. ін. Математичне (логіко-математичне) моделювання передбачає побудову й дослідження моделей математичними та логічними засобами. Прикладами математичних моделей є: рівняння коливань як модель циклічного процесу; логістична крива як модель кривої зростання; рівняння рівномірного та рівноприскореного руху тощо. Імітаційне (програмне) моделювання передбачає побудову логікоматематичної моделі об'єкта дослідження у вигляді певної послідовності дій (алгоритму), що реалізована як комп'ютерна програма. Зазвичай такий вид моделювання використовують, якщо певні дії відбуваються багаторазово і мають певні відомі статистичні характеристики. У таких випадках 9 встановити зв'язок між входами й виходами досліджуваної системи у вигляді певної математичної моделі зазвичай буває доволі складно. Навпаки, відтворити за допомогою комп'ютерної імітації послідовність подій, що відбуваються в системі, і отримати у числовому вигляді значення її вихідних параметрів, буває набагато легше. Етапи комп’ютерного моделювання наведено на рис 1. Рис.1 – Етапи комп’ютерного моделювання Початковим етапом дослідження складної системи є побудова моделі чорного ящика (рис. 2.). При формальному описі вона задає множини вхідних та вихідних змінних системи, але не містить ніякої інформації про відношення між цими двома множинами. Рис.2 – Структура моделі чорного ящика Під вхідними змінними (входами) розуміють впливи навколишнього середовища на досліджувану систему, а під вихідними змінними (виходами) – її впливи на навколишнє середовище. До вихідних змінних зокрема 10 належать ті, що відображають контрольовані за допомогою вимірювальних приладів характеристики реальної системи, а до вхідних – управляючі впливи на неї та неконтрольовані випливи зовнішнього середовища. Побудова моделі чорного ящика є нетривіальним завданням, оскільки у реальних систем існує велика кількість входів та виходів, але залежно від мети моделювання деякі з них можуть виявитися суттєвими, а інші – несуттєвими. Завданням дослідника при побудові моделі чорного ящика є визначення обмеженої кількості тих входів і виходів, суттєвих з погляду реалізації цілей моделювання. Крім того, завжди є невідомі дослідникові й тому невраховані ним впливи навколишнього середовища на досліджувану систему і навпаки – системи на навколишнє середовище. У багатьох випадках модель чорного ящика є єдиною можливою моделлю системи. Зокрема, така ситуація виникає у випадках, коли внутрішня будова системи є невідомою (наприклад, при дослідженні елементарних частинок), а також якщо необхідно мінімізувати вплив дослідження на систему (наприклад, коли вивчається психіка людини). Подальше дослідження таких систем може відбуватися шляхом побудови регресійних моделей, які у математичній формі відображають зв’язок між їх вхідними та вихідними змінними. У деяких випадках такі моделі можуть потім стати математичним відображенням певних концептуальних моделей. Відомо, наприклад, що рівняння, які описують вільне падіння тіл у механіці, спочатку були отримані Галілео Галілеєм саме як регресійні моделі певного "чорного ящика", і лише значно пізніше теоретично виведені на основі законів класичної механіки. Для вивчення динаміки систем, моделлю яких є "чорний ящик", часто застосовують методи аналізу часових рядів, рівні яких утворюють показники системи, що цікавлять дослідника. Наступним етапом є побудова моделей складу та структури системи, а також її структурної схеми. При цьому необхідно мати на увазі, що для кожної системи можна побудувати багато таких моделей. Проте існує певна 11 оптимальна модель, яка залежить від мети дослідження і дає змогу досягти цієї мети з найменшими витратами ресурсів дослідника. Моделлю складу є перелік основних компонентів (складових частин) досліджуваної системи. При цьому вирізняють два типи компонентів – елементи, які розглядають як неподільні складові, та підсистеми – складові, що з погляду досягнення цілей моделювання мають розглядатися як утворення, що складаються з інших компонентів. При побудові моделі складу необхідно виявити всі підсистеми та елементи, які суттєво впливають на досліджувані характеристики і параметри системи. Модель складу відображає неоднорідність досліджуваної системи. У моделі структури треба описати всі зв’язки між підсистемами та окремими елементами, та зв'язки всередині підсистем, що є важливими для досягнення мети аналізу. Якщо це можливо, зв’язки необхідно подати у математичному вигляді. Після цього будують структурну схему досліджуваної системи, яка є сукупністю моделей чорного ящика, складу та структури. В ній вказують всі важливі компоненти системи, зв’язки між ними, зв’язки компонентів системи із зовнішнім середовищем (входи та виходи системи). Побудова структурної схеми дає можливість виявити тип структури (лінійна, деревоподібна, матрична, мережева тощо) і наявність зворотних зв’язків, що має суттєве значення для обрання методу подальшого аналізу системи. Всі структурні схеми мають загальні властивості, які дають можливість застосовувати до їх аналізу сучасні математичні методи, зокрема апарат теорії графів, теорії структур та інших розділі в математики. На рис. 3 показані деякі типи структур, що найчастіше зустрічаються у реальних системах. 12 Рис.3 – Основні типи структур систем Структури систем Розглянемо приклади структур деяких систем більш докладно. На рис. 4 показано структурну схему найпростішої системи з управлінням. Об'єктом управління є система, над якою здійснюють управління. Вектор вихідних змінних xout xout1 ,..., xout n характеризує стан об'єкта управління у певний момент часу. Вектор збурень F f1 ,..., f k характеризує вплив зовнішнього середовища на об'єкт управління. Вектор вхідних змінних xin xin1 ,..., xin m характеризує управляючі впливи, що приведення системи до заданого стану. Рис.4 – Схема системи з управлінням 13 робляться для Наступні моделі відображають структури зі зворотними зв'язками. На рис. 5 показано схему управління за розімкненим й замкненим циклами. У першому випадку між вхідними та вихідними змінними немає безпосереднього зв'язку. Він здійснюється через регулятор (Р) і об'єкт управління (ОУ). Як правило управління за розімкненим циклом реалізується за допомогою людини – оператора (Оп), яка, спостерігаючи за значеннями вихідної величини, встановлює потрібні значення вхідних параметрів (рис. 5.а). При управлінні за замкненим циклом (рис. 5.б) зміни вихідних величин передають на входи системи за допомогою сукупності пристроїв, які називають зворотним зв'язком (ЗЗ). Вхідною величиною зворотного зв’язку є вихідна величина об’єкта управління xout . Рис.5. – Схеми управління за розімкненим (а) й замкненим (б) циклами Вихідну величину зворотного зв’язку будемо позначати x f . Вона сумісно з вхідною величиною формує регулюючий вплив xr на вході регулятора, який у свою чергу формує управляючий вплив xoc , що подається на вхід об’єкта управління. 14 Функціональну схему системи автоматичного управління у загальному випадку можна подати (рис.6) як сукупність таких функціональних компонентів: - управляючий пристрій (УП); - підсумовуючий пристрій (ПП); - пристрій послідовного корегування (ППК); - підсилювач (П); - виконавчий елемент (BE); - місцевий зворотний зв’язок (МЗЗ); - об’єкт управління (ОУ); - головний зворотний зв’язок (ГЗЗ). Рис.6. – Функціональна схема системи автоматичного управління Формалізоване подання систем У більшості випадків моделювання передбачає формалізоване подання досліджуваної системи. Згідно з Ф.Є. Темніковим вирізняють такі основні методи формалізованого подання: аналітичні, статистичні, теоретикомножинні, логічні, лінгвістичні й семіотичні, графічні. При застосуванні аналітичних методів властивості багатовимірної й багатозв'язної системи відображаються у n-вимірному просторі у вигляді однієї точки, що рухається з часом у фазовому просторі. Відображення задають певним оператором (функцією, функціоналом). Взаємодія систем та підсистем подається у вигляді рівнянь зв'язку. Поведінка точок та їх взаємодія описуються строгими співвідношеннями. Основним математичним 15 апаратом, що використовується у цій групі методів є: класичний математичний аналіз, теорія диференціальних рівнянь, математичне програмування, теорія ігор тощо. Статистичні методи передбачають відображення системи в nвимірному просторі "розмитою" точкою, яка характеризується функцією розподілу (щільності розподілу) або математичним сподіванням та дисперсією. Рух цієї точки у фазовому просторі описують певною випадковою функцією. Основним математичним апаратом статистичних методів є математична статистика, метод статистичних випробувань (Монте-Карло), методи перевірки статистичних гіпотез, теорія статистичних розв'язків. Теоретико-множинні методи ґрунтуються на поданні систем, як певних множин, а динаміки і зв'язків – як відношень, заданих на цих множинах. Їх основним математичним апаратом є дискретна математика, алгебра логіки та математична лінгвістика. Методи цієї групи використовують для вивчення систем, які можна подати як сукупність деяких множин із заданими на них відношеннями, зокрема в теорії автоматів, математичній теорії систем (за М. Месаровичем), теорії баз даних та інформаційних систем тощо. Основні обмеження теоретико-множинних методів пов'язані з можливою неповнотою або суперечливістю подання досліджуваної системи. Логічні методи передбачають подання реальної системи та її зв'язків мовою однієї з алгебр логіки. Це дає змогу переходити від одного подання системи до іншого, яке є еквівалентним першому, але простішим. Основний математичний апарат логічних методів – висловлювання, предикати, логічні функції (операції), логічні закони, квантори тощо. Ці методи використовують для дослідження нових систем і структур, інформація про які недостатня для застосування аналітичних або статистичних методів. Прикладами є розробка автоматів, автоматичних систем контролю, задачі розпізнання образів, теорія формальних мов та ін. 16 Логічні методи придатні тільки для подання відношень, які передбачені законами алгебри логіки, що використовується, та задовольняють вимоги логічного базису. Лінгвістичні й семіотичні методи застосовують для формування однозначних визначень систем, їх елементів і відношень, а також розробки формалізованих мов подання і моделювання систем. Основним математичним апаратом у цьому разі є теорія знакових систем й лінгвістичні змінні (тезаурус, граматика, семантика, прагматика). Лінгвістичні методи використовують для аналізу мов і текстів (у т. ч. мов програмування й моделювання); відображення та аналізу складних систем, інформація про які є недостатньою для застосування аналітичних і статистичних методів, а також методів формальної логіки. Прикладами є прийняття рішень в задачах з високою початковою невизначеністю, мови моделювання й автоматичного проектування. Основними обмеженнями є проблеми алгоритмічної розв'язності й логічних парадоксів, а також обґрунтування достовірності одержуваних результатів. Графічні методи застосовують для наочного відображення складу, структури, динаміки й властивостей складних систем. Основним апаратом графічних методів є теорія графів, геометрія, теорія сітьових структур, графіки, діаграми, гістограми тощо. Методи цієї групи використовують при дослідженні різноманітних структур і процесів, організації взаємодії у людино-машинних та організаційних системах. Прикладами є методика оцінювання й контролю програм (PERT), мережеве планування та управління, системи організаційного управління, частотні критерії стійкості систем управління та ін. Основними обмеженнями при застосуванні графічних методів є висока частка ручної праці та неможливість вирішення завдань прогнозування. 17 Тема 2. ОБ’ЄКТНО-ОРІЄНТОВАНИЙ ПІДХІД ДО МОДЕЛЮВАННЯ СИСТЕМ Для швидкої та ефективної розробки програмного продукту необхідно залучити кваліфіковану робочу силу, вибрати правильні інструменти і визначити правильний напрям роботи. Процес розробки проекту необхідно добре продумати, щоб швидко адаптувати його до можливих змін вимог користувачів, потреб бізнесу чи технології. Цього можна досягнути, якщо у процесі розробки проекту використовувати моделі. Безперечно, розробка сучасних програмних продуктів неможлива без попереднього моделювання. Накопичений досвід засвідчує: чим більшим і складнішим є проект, тим важливішим стає моделювання майбутньої системи. Моделі наочно демонструють бажану структуру та поведінку системи, відображають її архітектуру та допомагають уточнити деталі проекту з замовником для мінімізації майбутніх ризиків. Модель “креслення” – це системи. спрощене Кожну представлення систему можна реальності, описати своєрідне по-різному, використовуючи різні моделі, кожна з яких є семантично замкнутою абстракцією системи. Моделі програмних систем відображають певні аспекти системи. Структурна модель, наприклад, відображає статичну організацію системи, а модель поведінки підкреслює динамічні процеси, притаманні системі. Зазвичай, моделювання будь-якої системи супроводжується створенням множини моделей для відображення різних аспектів системи. Окрім цього, моделі можуть мати різні рівні абстракції, які відображають одні й ті ж аспекти системи з різним ступенем деталізації. Моделювання дає змогу розв’язати такі задачі: - візуалізація системи – візуальне відображення програмної системи у її поточному чи бажаному стані; 18 - специфікація системи – визначення структури і/або поведінки системи; - конструювання системи – отримання шаблону, який допоможе сконструювати систему; - документування системи – фіксація прийнятих рішень на основі отриманих моделей. При розробці програмних систем існує декілька методів моделювання, які відрізняються своєю орієнтацією на стиль програмування. Зазвичай, вирізняють п’ять стилів: - процедурно-орієнтований – спрямований на представлення програми як множини процедур, які за чергою викликаються; - об’єктно-орієнтований – спрямований на представлення програми як набору взаємодіючих об’єктів; - логіко-орієнтований – спрямований на виконання цілей, які передано у термінах обчислення предикатів; - орієнтований на правила – виконання правил “якщо-то”; - орієнтований на обмеження. Неможливо визнати один стиль програмування найкращим у всіх областях практичного застосування, однак об’єктно-орієнтований стиль використовується для найширшого кола задач. Якщо об’єктно-орієнтоване програмування спрямоване на правильне й ефективне використання об’єктів у рамках конкретних мов, то об’єктноорієнтоване моделювання спрямоване на правильне й ефективне структурування складних систем. Об’єктно-орієнтований метод моделювання передбачає такий аналіз предметної області, за якого уже на початкових етапах розробки програмної системи можна було б вирізняти набори взаємодіючих об’єктів. Об’єктно-орієнтована модель має чотири головні властивості: - абстрагування – виокремлення істотних характеристик об’єкта, що вирізняють його з-поміж інших видів об’єктів; 19 - інкапсуляція – приховування внутрішньої реалізації об’єкта за наданим цим об’єктом інтерфейсом; - модульність – здатність системи розкладатися на внутрішньо сильно чи слабко зв’язані між собою модулі; - ієрархія – упорядкування абстракцій і розташування їх за рівнями. Ці властивості є головними, і за відсутності будь-якого з них модель не буде об’єктно-орієнтованою. Існує також три додаткових властивості, корисні в об’єктній моделі, без яких, однак, можна обійтися: - типізація – створення об’єктів на основі шаблонів визначеного типу; - паралелізм – здатність системи обробляти декілька повідомлень чи задач паралельно; - збережуваність – здатність системи зберігати не тільки дані, але й об’єкти у проміжку між окремими запусками системи. Об’єктно-орієнтоване моделювання програмних систем довело свою корисність при побудові систем будь-якого розміру і складності у різних областях людської діяльності. Окрім того, сучасні мови програмування, інструментальні засоби та операційні системи, здебільшого, є тією чи іншою мірою об’єктно-орієнтованими, а це дає вагомі підстави трактувати світ у термінах об’єктів. Метод об’єктно-орієнтованого моделювання передбачає послідовне виконання двох етапів: об’єктно-орієнтованого аналізу та об’єктноорієнтованого проектування. Аналіз – широке поняття. Його зміст детальніше відображають терміни аналіз системних вимог (тобто дослідження вимог до майбутньої програмної системи) та об’єктний аналіз (тобто дослідження об’єктів предметної області). При цьому під предметною областю розуміють ту частину реального світу, що має істотне значення чи безпосереднє відношення до процесу функціонування програми. Іншими словами: предметна область містить у 20 собі тільки ті об’єкти і взаємозв’язки між ними, які необхідні для опису вимог і умов розв’язання деякої задачі. У загальному випадку виділення базових об’єктів (чи компонентів) предметної області є нетривіальною задачею. Складність виявляється у неформальному характері процедур чи правил, які можна застосовувати з цією метою. Окрім того, таку роботу необхідно виконувати спільно з фахівцями чи експертами, що добре знають предметну область. У процесі проектування головну увагу звертають на концептуальні рішення, які забезпечують виконання системних вимог, а не на питання реалізації. У процесі об’єктно-орієнтованого проектування визначають програмні об’єкти та способи їхньої взаємодії і/або схеми баз даних. Під час аналізу системних вимог необхідно з’ясувати потреби замовника, аналізуючи отриману інформацію від керівництва компанії та майбутніх користувачів системи. Під час аналізу необхідно визначити: - функціональні вимоги до системи (або бізнес-процеси), тобто встановити варіанти використання програмної системи для реалізацій конкретних функцій чи дій у даній предметній області (“визначити те, що система має робити”); - потоки даних для кожного бізнес-процесу; - границі системи; - користувачів системи та процеси їхньої взаємодії з системою. У результаті аналізу, зазвичай, оформляють словник (або глосарій) предметної користувачів області тощо) (містить і текстовий технічне завдання, опис у термінів, якому сутностей, сформульовано функціональні та нефункціональні вимоги до системи. До нефункціональних вимог відносять питання надійності, зручності використання, продуктивності, можливості супроводу програм, питання безпеки, проектні та апаратні обмеження тощо. 21 Технічне завдання є гарантією єдиного трактування вимог замовниками і проектувальниками. Воно дає змогу також вирішувати спірні питання з приводу функцій системи, що виникають у процесі її створення. В UML певним синонімом терміна “технічне завдання” є специфікація вимог до системи (Software Requіrement Specіfіcatіon, SRS), в яких визначаються межі системи, користувачів і функціональні вимоги. SRS є текстовою основою формалізації етапу постановки задачі за допомогою діаграм прецедентів. UML (Unified Modeling Language) – уніфікована мова моделювання, призначена для моделювання предметних областей з метою розробки відповідного програмного забезпечення. Історія UML починається 1994 року, коли Граді Буч (Grady Booch) і Джеймс Рамбо (James Rumbaugh), що працювали у Rational Software, об’єднали свої зусилля для створення нової мови об’єктно-орієнтованого моделювання. Третім автором UML вважається Ивар Якобсон (Ivar Jacobson), автор методу OOSE (Object-OrientedSoftware Engineering). Метод Якобсона забезпечував можливості для специфікації бізнес-процесів й аналізу вимог за допомогою сценаріїв використання (Use Case). У результаті спільної роботи та за підтримки консорціуму OMG (Object Management Group) у січні 1997 року з’явилася специфікація UML 1.0. Останньою базовою специфікацією UML вважається 2.0, що була опублікована в серпні 2005 року. У версії 2.0. семантика мови UML була значно уточнена й розширена для підтримки методології «архітектури на базі моделей» MDA (Model DrivenArchitecture). UML необхідний: - керівникам проектів, які керують розподілом завдань і контролем за проектом; - проектувальникам інформаційних систем які розробляють технічні завдання для програмістів; - бізнес-аналітикам, які досліджують реальну систему і здійснюють інжиніринг і реінжиніринг бізнесу компанії; 22 - програмістам які реалізовують модулі інформаційної системи. Загальна характеристика UML Найважливішою складовою UML є графічна нотація (рис. 7), що дозволяє специфікувати, проектувати, візуалізувати і документувати артефакти об’єктно-орієнтованого програмного забезпечення. Рис. 7. Структура графічної нотації мови UML версії 2.3 Графічна нотація UML спеціально розроблювалася для того, щоб діаграми було легко створювати на папері. Найбільш відомі CASE засоби, що підтримують UML: IBM Rational Rose; Microsoft Visio; SparxSystems Enterprise Architect; Gentleware Poseidon; SmartDraw; Telelogic TAU G2; StarUML та ін. (гарний огляд CASE засобів зробив О.В.Бабіч у його введенні у UML). Використання UML не обмежується лише розробкою програмного забезпечення. Її також застосовують для створення схем даних (Entity23 Relationship Diagram, ERD), моделювання бізнес-процесів (workflows), проектування компонентів систем та ін. Для моделювання систем було розроблене спеціальне розширення UML – SysML (Systems Modeling Language) – мова моделювання систем. SysML підтримує визначення, аналіз, проектування, перевірку й підтвердження відповідності широкого спектра систем. У порівнянні з UML, що орієнтована на моделювання програмних продуктів, SysML надає системному інженеру деякі додаткові можливості. SysML розширює UML за рахунок введення двох додаткових типів діаграм: діаграми вимог і параметричної діаграми. Перша служить для збору та ієрархічного структурування вимог, а друга для кількісного аналізу параметрів систем (наприклад, продуктивності або надійності). У результаті розширюється коло модельованих систем, елементами яких можуть бути програмні компоненти, апаратне забезпечення, обладнання, процеси, інформація, персонал та ін. Зазначимо, що SysML є також більш компактною нотацією, вона не включає багато програмно-орієнтованих особливостей UML, саме тому її легше вивчати й застосовувати. Відзначимо деякі інші відомі розширення (профілі) UML – Modeling and Analysis of Real-Time Embedded systems (MARTE), Service oriented architecture Modeling Language (SoaML), UML Profile for CORBA, UML Profile for Data Distribution, UML Profile for Enterprise Application Integration (EAI), UML Profile for System on a Chip (SoC) та ін. Переваги UML Відзначимо переваги UML, які найчастіше виділяють її розробники: Повнота опису предметних областей. UML дозволяє описувати предметні області практично із всіх можливих точок зору. Розширюваність. UML дозволяє вводити власні текстові й графічні стереотипи, що сприяє розширенню області його застосування (і, таким чином, використанню не тільки в сфері програмної інженерії). У версії UML 24 2.0. полегшене додавання «семантичних варіацій» (введеної користувачем семантики), що приводить до визначення UML, як сімейства мов моделювання. Уніфікованість. Завдяки своїй «універсальності» UML дозволяє розроблювачам програмного забезпечення досягти угоди в графічних позначеннях і тлумаченні семантики множини загальних понять моделювання й програмування (таких як клас, компонент, узагальнення, агрегація, поведінка та ін.). Відповідність передовим методологіям програмування. UML є об’єктно-орієнтованою мовою моделювання, тому UML методи аналізу й проектування близькі до методів програмування у найбільш ефективній на сьогоднішній день парадигмі об’єктно-орієнтованих мов. Незалежність від інструментів реалізації. UML є специфікацією мови моделювання, та не залежить від інструментів її реалізації, конкретних мов програмування й процесів розробки, Простота графічної нотації. Діаграми UML є простими для розуміння користувачів (фахівців предметних областей), після досить швидкого ознайомлення з їх синтаксисом. Підтримка співтовариства. UML одержав широке поширення й динамічно розвивається завдяки зусиллям OMG-консорціуму. Недоліки UML Розглянемо також великий список недоліків UML (цікавим є те, що деякі з них були також подані у списку переваг): Множина діалектів. UML підхід претендує на універсальність, тоді як аспекти конкретних систем залишаються поза її полем зору. Для підтримки конкретної предметної області розробляються окремі діалекти, які підривають повноцінність вихідної методології UML (а саме, застосовність до моделювання будь-яких предметних областей). Уніфікованість. Як слушно зазначається у уніфікація є корисною далеко не завжди. Абстракції, до яких доводиться прибігати при 25 використанні будь-якого універсального підходу, ховають у собі багато небезпек, оскільки розуміння того, що конкретно означає кожна абстракція, у кожної людини є власним. Надмірність (перевантаженість) мови. UML включає множину практично невикористовуваних для моделювання програмних систем діаграм і конструкцій. Складність концепцій. Стандарт UML 2.0 містить великий набір концепцій моделювання, що складним чином пов’язані між собою. Це зумовлено тим, що мова призначена для підтримки моделювання в різних предметних областях. Відсутність ортогональності концепцій. UML не має строгої формальної основи, а також спирається на базові поняття, що семантично перекриваються. Інакше кажучи, UML бракує ортогональності у визначенні опорних концепцій для моделювання предметних областей . Неточна семантика. UML визначена через абстрактний синтаксис, мову опису обмежень OCL (Object Constraint Language) та природну англійську мову, специфікації в яких часто суперечать одна одній. Як наслідок, завдяки різному тлумаченню специфікацій, побудовані UML моделі виявляються несумісними в різних CASE інструментах. Крім того, не дивлячись на широке цитування, сама UML специфікація є прикладом тексту, написаного людьми, що, м’яко кажучи, не є природними носіями англійської мови. Обмеження користувача. Як і будь-яка система позначень, UML може виразити властивості одних систем більш ефективно, ніж інші. Як наслідок, розроблювач схиляється до рішень, в яких в моделях здійснюється відхід від «чистого» UML і переплітаються сильні сторони UML і мов розробки. UML можна визначити як не що інше, як графічний спосіб подання вимог і специфікацій, що спочатку мали текстову форму. Такий підхід змушує розроблювачів думати в контексті пропонованих графічних нотацій і шаблонів розробки, та має результатом неоптимальні системні рішення. 26 Залежність від об’єктно-орієнтованої парадигми. Хоча UML створювався з метою забезпечення незалежності від конкретних мов програмування й процесів розробки, його моделі досить складно трансформуються в інші, ніж ОО, мови розробки. Складність стикування з мовами розробки. UML визначається як мова моделювання загального призначення, що повинна бути сумісною з усіма можливими мовами розробки. Але це є практично нездійсненним завданням за перерахованими вище причинами (недостатня формалізованість, перевантаженість, залежність від ОО й ін.). Складність розширень. UML 2.0 не має механізмів створення моделей з використанням понять, що відрізняються від наявних у мові. Іншими словами, опис систем з погляду та у поняттях користувача (фахівців предметних областей ) є неможливим. Проблеми при вивченні й впровадженні. Вищеописані проблеми роблять проблематичним вивчення й впровадження UML. На практиці, люди (фахівці предметних областей) часто будують UML діаграми з використанням символів, що надають їм CASE інструменти, не розуміючи, що насправді ці символи позначають в UML специфікації. Неможливість зміни процесу моделювання. Хоча UML повинна бути застосовна у контексті будь-якого процесу моделювання, досвід доводить, що для різних організацій і предметних областей необхідне визначення власних процесів. Наприклад, процес розробки програмного забезпечення для систем реального часу значно відрізняється від розробки програмного забезпечення для інших цілей. Ефективність коду. Цінність UML полягає в можливості генерації з моделі ефективного вихідного програмного коду або ж коду, що можна виконати. Однак UML-модель не має властивостей повноти за Тьюрингом і генерований код в основному обмежується структурою оголошенням функцій. Шляхи подолання недоліків 27 класів й Визначимо шляхи подолання недоліків універсальної мови моделювання UML, які були визначені нами раніше. Множина діалектів та універсальність. Досвід доводить, що неможливо побудувати мову чи інструмент, пригідний для моделювання всіх без винятку предметних областей . Саме тому кожна з предметних областей повинна мати власну мову моделювання, призначену для розв’язання специфічних для предметної областві задач. Це приводить нас до розуміння та необхідності визначення принципів інструментарію, що дозволяє розроблювати інші, (предметно-орієнтовані) мови моделювання. Надмірність (перевантаженість) мови та складність концепцій. Користувач повинен сам вибирати систему понять і зв’язків між ними, необхідних і достатніх для моделювання предметних областей . Саме тому такий підхід визначається як предметно-орієнтований. Це дозволяє позбавитися як перевантаженості так і складності мови моделювання. Користувач може створити та надалі використовувати при моделюванні предметних областей лише ті поняття, семантику яких він добре розуміє. Відсутність ортогональності концепцій. Надання можливості користувачу визначення власних понять мови моделювання також дозволяє побудувати мінімальну систему понять, що є семантично ортогональними. Але зазначимо, що ця задача повністю лежить на плечах користувача. Неточна семантика. Саме тому дуже важливим є формальне визначення як моделей предметних областей , так і призначених для їх породження метамоделей (мов моделювання), які будуються на основі певних математичних теорій (теорії графів, векторної алгебри, логіки та ін.). 28 Тема 3. ІНСТРУМЕНТАЛЬНІ ЗАСОБИ МОДЕЛЮВАННЯ. Моделювання з використанням математичних пакетів Сучасний процес моделювання важко реалізувати без комп’ютерів або вбудованих контролерів. Для цього використовуються різноманітні інструментальні програмні засоби та середовища (MathCad, MatLab, Mathematіca, Maple, Derive, VisSim, Genius й інші), що суттєво спрощують моделювання. При дослідженні систем автоматичного регулювання, обчислювальних математичних задач, найбільш ефективним є використання програмної системи Matlab з широким класом предметно-орієнтованих бібліотек (toolbox) та інструментом візуального моделювання Simulink. У системі MatLab також існують широкі можливості для програмування. Її бібліотека C Math (компілятор MatLab) є об'єктною і містить понад 300 процедур обробки даних мовою C. Усередині пакета можна використовувати як процедури самої MatLab, так і стандартні процедури мови C, що робить цей інструмент наймогутнішою підмогою при розробці додатків (використовуючи компілятор C Math, можна вбудовувати будь-які процедури MatLab у готові додатки). Для візуалізації моделювання система MatLab має бібліотеку Іmage Processіng Toolbox, що забезпечує широкий спектр функцій, що підтримують візуалізацію проведених обчислень безпосередньо із середовища MatLab, збільшення та аналіз, а також можливість побудови алгоритмів обробки зображень. Систему MatLab можна використовувати для обробки зображень, сконструювавши власні алгоритми, які будуть працювати з масивами графіки як з матрицями даних. Оскільки мова MatLab оптимізована для роботи з матрицями, у результаті забезпечується простота використання, висока швидкість і економічність проведення операцій над зображеннями. Серед інших бібліотек системи MatLab можна також відзначити System Іdentіfіcatіon Toolbox – набір інструментів для створення математичних 29 моделей динамічних систем, заснованих на спостережуваних вхідні/вихідних даних. Особливістю цього інструменту є наявність гнучкого користувацького інтерфейсу, що дозволяє організувати дані й моделі. Бібліотека System Іdentіfіcatіon Toolbox підтримує як параметричні, так і непараметричні методи. Інтерфейс системи полегшує попередню обробку даних, роботу з ітеративним процесом створення моделей для одержання оцінок і виділення найбільш значимих даних. Що стосується математичних обчислень, то MatLab надає доступ до величезної кількості підпрограм, що містяться в бібліотеці NAG Foundatіon Lіbrary компанії Numerіcal Algorіthms Group Ltd (інструмент має сотні функцій з різних областей математики, і багато з цих програм були розроблені широко відомими у світі фахівцями). Це унікальна колекція реалізацій сучасних чисельних методів комп'ютерної математики, створених за останні три десятки років. Лише додану до системи велику кількість документації цілком можна розглядати як фундаментальний багатотомний електронний довідник по математичному забезпеченню. Сьогодні система MatLab широко використовується в техніці, науці та освіті, але все-таки вона більше підходить для аналізу даних і організації обчислень, ніж для чисто математичних викладень. Для візуального моделювання та моделювання сумісно з реальною апаратурою більш зручним є програмний пакет VisSim. Аналітичні перетворення дозволяють виконувати більшість математичних програмних продуктів MathCad, Mathematіca, Maple. З цих трьох поширених математичних пакетів, найбільш потужним є Maple. Maple надає зручне середовище для комп'ютерних експериментів. Пакет дозволяє створювати інтегровані середовища за участю інших систем і універсальних мов програмування високого рівня. Коли розрахунки зроблені й потрібно оформити результати, то можна використовувати засоби цього пакета для візуалізації даних і підготовки ілюстрацій для публікації.. Робота проходить интерактивно - користувач уводить команди й відразу бачить на екрані результат їхнього виконання. При цьому пакет Maple зовсім не схожий на 30 традиційне середовище програмування, де потрібна тверда формалізація всіх змінних і дій з ними. Тут же автоматично забезпечується вибір типів змінних і перевіряється коректність виконання операцій, так що в загальному випадку не потрібно опису змінних і строгої формалізації запису. Ядро символьних обчислень Maple включено до складу цілого ряду систем комп'ютерної математики – від систем для широкого кола користувачів типу MathCad до однієї із кращих систем для чисельних розрахунків і моделювання MatLab. На відміну від потужного та орієнтованого на високоефективні обчислення при аналізі даних пакета MatLab, програма MathCad – це, скоріше, редактор математичних текстів із широкими можливостями символьних обчислень і прекрасним інтерфейсом. MathCad не має мови програмування як такої, а можливості символьних обчислень запозичений з пакета Maple. Проте інтерфейс програми MathCad дуже простий, а можливості візуалізації широкі. Всі обчислення тут здійснюються на рівні візуального запису виразів у загальновживаній математичній формі. Пакет має гарні підказки, докладну документацію, цілий ряд додаткових модулів та вбудованих функцій. Однак поки математичні можливості MathCad уступають системам Maple, Mathematіca, MatLab. Не зважаючи на це, по програмі MathCad випущено багато книг і навчальних курсів. Сьогодні ця система стала буквально міжнародним стандартом для технічних обчислень. Розробники Mathcad зробили все можливе, щоб користувач, який не володіє спеціальними знаннями в програмуванні, міг реалізувати велику кількість обчислювальних методів та досягнути значного результату в області математичних розрахунків. Звичайно, кожен з математичних пакетів має свої переваги та недоліки та є зручнішим для розв’язання конкретних завдань. В даній книзі більш детально зосереджено увагу на системах MatLab та MathCad, які орієнтовані на різні типи задач і дають можливість розв’язання різних за складністю завдань. 31 Імітаційне моделювання Імітаційне моделювання – це метод дослідження, при якому досліджувана система замінюється моделлю, що з достатньою точністю описує реальну систему, з нею проводяться експерименти з метою одержання інформації про цю систему. Відомі фахівці в галузі імітаційного моделювання Р. Ненсі і Ф. Кивіат у своїх роботах визначили декілька етапів у практиці розвитку імітаційного моделювання. Етап 1 (1955 – 1960). Програми для завдань моделювання розроблялися на основі таких загальновідомих універсальних мов як FORTRAN і ALGOL. Етап 2 (1961 – 1965). З'явилися перші мови моделювання: GPSS, SIMSCRIPT, SIMULA, CSL, SОL. Була розроблена так звана концепція погляду на світ (world view). Етап 3 (1965 – 1970). З'явилося друге покоління мов моделювання GPSS V, SIMSCRIPT II.5, SIMULA 67. Етап 4 (1971 – 1978). Розвиток вже розроблених мов і засобів моделювання, орієнтоване передусім на підвищення ефективності процесів моделювання і перетворення моделювання в більш простий і швидкий метод дослідження складних систем. Роботи Зейглера і Йорена зіграли важливу роль у вирішенні проблеми таксономії імітаційних моделей (вони запровадили метаконцепції моделі і схеми експерименту). Етап 5 (1979 – 1984). Роки переходу від програмування до розвитку моделей. Основний акцент був перенесений на ідентифікацію інтегрованих засобів імітаційного моделювання. Процес моделювання включає такі етапи, як створення моделі, програмування, інтерпретацію проведення результатів імітаційних моделювання. експериментів, Проте обробку традиційно й перевага віддавалася етапу програмування. Схема моделювання, що виникає при цьому, багато в чому повторює схему проведення натурних випробувань і 32 зводиться лише до імітації траєкторій вивчених моделей. З появою імітаційних моделей змінилася концепція моделювання, яка тепер розгляддається як єдиний процес побудови і дослідження моделей, що має програмну підтримку. Тепер основним є формальне поняття моделі, яке не тільки пояснює динаміку системи, але і служить предметом математичних досліджень. Стає можливим достовірний аналіз багатьох практично важливих властивостей моделі (стаціонарних розподілів, малої ймовірності, чутливості, надійності і достовірності результатів моделювання). Ці властивості особливо суттєві при дослідженні високовідповідальних і крупномасштабних систем, де ціна помилки особливо висока. Етап 6 (1985 – 1994). Перенесення програмного забезпечення для імітаційного моделювання на персональні ЕОМ з використанням засобів графічного інтерфейсу (для візуалізації й анімації процесів моделювання). Етап 7 (1995 – 1998). Розробка засобів технологічної підтримки процесів розподіленого імітаційного моделювання на мультипроцесорних ЕОМ і мережах. До моменту початку розробки (1966 р.) першої в Україні мови моделювання систем із дискретними подіями були відомі закордонні аналоги таких мов, як SIMSCRIPT, SОL, і SIMULA. Та за умовами того часу не було можливості придбати відповідне програмне забезпечення за кордоном. Була можливість ознайомитися з відповідними розробками тільки на рівні публікацій. Тому в Інституті кібернетики академії наук України було прийняте рішення про розробку власної мови і системи моделювання. Протягом 1966 – 1968 рр. в Інституті кібернетики під керівництвом Марьяновіча Т. П. виконувалися роботи зі створення мови і системи моделювання систем з дискретними подіями СЛЕНГ, що і поклало початок розвитку методів імітаційного моделювання в Україні. Як прототип була вибрана мова SOL. У 1973 році в Інституті кібернетики була завершена робота зі створення і реалізації на ЕОМ БЕСМ-6 системи АЛСИМ-БЕСМ. Система 33 призначалася для дослідження обчислювальних систем і мереж. У системі були виділені три мовні рівні: мова опису моделей, мова управ-ління моделюванням, мова управління завданнями. Одні з кращих мов імітаційного моделювання, такі як СЛЕНГ, АЛСИМ, НЕДІС, були створені Інститутом кібернетики АН України. Відомо багато систем моделювання (більше 500). Серед найбільш використовуваних згадуються Симула і GPSS. Необхідно також назвати мову Симскрипт (створену на базі Фортрана), алголоподібну мову SOL, ПЛИС (інтергує можливості ПЛ/1 і GPSS), Паскаль Плюс (розширений вбудованими засобами моделювання), система СМДП (діалогова версія GPSS). Імітаційне моделювання застосовують, коли: - дорого або неможливо експериментувати на реальному об'єкті; - неможливо побудувати аналітичну модель, тому що в системі є час, причинні зв'язки, наслідки, нелінійності, стохастичні (випадкові) змінні; - необхідно зімітувати поведінку системи в часі. Імітаційне моделювання може застосовуватися у різних сферах діяльності. Особливо ефективне моделювання при вирішенні наступних завдань: - проектування та аналіз виробничих систем; - оцінка різних систем озброєнь; - визначення вимог до устаткування та протоколів мереж зв'язку; - модернізація різних процесів у діловій сфері; - аналіз фінансових і економічних систем. Під імітаційною системою розуміють програмний або апаратнопрограмний комплекс, призначений для рішення завдань із використанням методу імітаційного моделювання. При виділенні різновидів імітаційних систем виходять із того, що вони є інструментальними засобами, що забезпечують автоматизовану підтримку користувача. 34 певних видів діяльності Імітаційна система реалізує алгоритм рішення завдання і надає користувачеві сервісні можливості по керуванню обчислювальним процесом. Автоматизована підтримка інших етапів системного аналізу засобами імітаційної системи не є обов'язковою. Однак саме ступінь їхньої автоматизації визначає можливості імітаційної системи і є основою їхньої класифікації. З урахуванням етапності системного аналізу і технологічних завдань, що розв'язуються на них, виділимо можливий набір засобів імітаційної системи, що автоматизують виконання ряду функцій, реалізованих на цих етапах. 1. Створення моделі може бути підтримано наступними засобами автоматизації: а) частково готовою моделлю або моделями; б) компіляторами з алгоритмічної мови високого рівня, спеціалізація якого полегшує процес складання алгоритмів імітації; в) спеціальною мовою високого рівня, що дозволяє виконати інформаційний або математичний опис моделі системи; г) конверторами моделей, що дозволяють здійснювати перетворення моделей одного виду в моделі іншого виду (інформаційної в математичну, математичної в імітаційну, інформаційної в імітаційну); д) засобами контролю погодженості різних видів моделей з концептуальним поданням моделі. 2. Перевірка адекватності та технічної реалізованості може виконуватися з використанням: а) програм обчислення показників адекватності; б) автоматизованої технології проведення обмеженого експерименту з імітаційною моделлю; в) програм обчислення характеристик складності моделі; г) програм обчислення ресурсних показників методу рішення завдання. 3. Корекція моделі може забезпечуватися: а) автоматизованими технологіями редагування текстів моделей; 35 б) програмами еквівалентних перетворень математичних і алгоритмічних моделей заданого класу. 4. Створення алгоритму рішення завдання може підтримуватися: а) методо-орієнтованими бібліотеками та пакетами програм; б) конструкторами алгоритмів рішення завдань; в) інформаційними системами підтримки прийняття рішень тощо. 5. Складання і уточнення схеми рішення завдання може виконуватися з використанням: а) програмних засобів контролю інформаційної сумісності сімейства завдань; б) редакторів текстів обчислювальних схем тощо. При виборі засобів імітаційного моделювання варто враховувати всі можливості, що вони надають, які можна об'єднати в наступні групи: - основні характеристики; - сумісне програмне забезпечення; - анімація; - статистичні можливості; - звіти з вихідними даними і графіками; - послуги, що надаються замовникам і документація. Найпопулярнішими пакетами імітаційного моделювання є: 1. Arena компанії Rockwell Automatіon; 2. AnyLogіc компанії XJ Technologіes; 3. GPSS World фірми Minuteman Software; 4. Process Charter 1.0.2 компанії Scіtor; 5. Powersіm 2.01 фірми Modell Data AS; 6. Іthіnk 3.0.61 виробництва Hіgh Performance Systems; 7. Extend+BPR 3.1 компанії Іmagіne That!; 8. Vensіm фірми Ventana Systems. Ці пакети найбільше відрізняються стилем моделювання, тобто середовищем, за допомогою якого створюються моделі. У пакеті Process 36 Charter модель будується за допомогою блок-схеми. Powersіm і Іthіnk використовують систему позначень Systems Dynamіcs, запропоновану в 1961 р. Джеем Форрестером Массачусетсского технологічного інституту. Extend застосовує компоновочні блоки. Всі продукти, крім Process Charter, дозволяють проводити аналіз чутливості, тобто багаторазово виконувати модель із різними вхідними параметрами, щоб зрівняти результати декількох прогонів. Більш детально розглянемо найбільш поширені пакети для імітаційного моделювання. GPSS World GPSS World (GPSSW, General Purpose System Simulation World – Світова загальноцільова система моделювання), розроблена для ОС Wіndows. Цей програмний продукт увібрав в себе весь арсенал новітніх інформаційних технологій. Він включає розвинені графічні оболонки для створення моделей і інтерпретації вихідних результатів моделювання, засоби мультимедіа та відео, объектно-орієнтоване програмування та ін. В основу системи GPSS World покладена мова імітаційного моделювання GPSS (General Purpose System Sіmulatіon – Загальноцільова система моделювання). Система GPSS World – потужне універсальне середовище моделювання як дискретних, так і неперервних процесів, призначене для професійного моделювання найрізноманітніших процесів і систем. За допомогою цієї системи, наприклад, можна ефективно моделювати як виробничі, так і невиробничі процеси: функціонування торговельних і розважальних закладів, портів, вуличний рух, проведення воєнних дій, роботу редакцій, установ і мережі Іnternet, різних систем масового обслуговування тощо. Система має великий набір команд для керування процесом моделювання, які можна як використовувати в інтерактивному режимі, так і включати в модель. Забезпечено можливість проведення експериментів, згенерованих системою, користувацьких і оптимізаційних. У системі GPSSW реалізована процедура візуалізації процесу функціонування моделі з використанням методів 37 мультиплікації. Також система GPSSW має новий високошвидкісний транслятор, що працює в сотні раз швидше його попередників. Для швидкого виправлення помилок використовується повноекранний текстовий редактор. Система GPSSW досить проста у вивченні і універсальна в застосуванні. Ефективне використання системи передбачає виконання ряду етапів: 1. Постановка задачі. 2. Виявлення основних особливостей. 3. Створення імітаційної моделі процесу. 4. Подання імітаційної моделі в системі GPSSW. 5. Моделювання системи. В якості прикладу представимо модель одноканальної розімкнутої системи масового обслуговування (СМО). На рис. 8 представлена модель найпростішої системи масового обслуговування, у якій виділені основні події. Рис. 8 – Найпростіша система масового обслуговування Охарактеризуємо кожну подію, що виникла в СМО: 1. Поява вимоги в системі (GENERATE – Генерувати). 2. Вхід вимоги в чергу (QUEUE – Черга). 38 3. Визначення зайнятості каналу обслуговування (SEІZE – Зайняти). Якщо канал зайнятий, то вимога залишається в черзі, якщо вільний – то входить у канал обслуговування. 4. Вихід вимоги із черги (DEPART – Вийти). 5. Обслуговування вимоги в каналі обслуговування (ADVANCE – Затримати). 6. Звільнення каналу обслуговування (RELEASE – Звільнити). 7. Вихід вимоги із системи (TERMІNATE – Завершити). Ця програма в системі GPSSW буде виглядати так, як показано на рис.9. Використані в програмі оператори повністю відповідають змісту і логіці системи що моделюється. Праворуч від операторів пишуться параметри (ознаки, змінні), які характеризують дану подію. Так, в операторі GENERATE перша цифра – 7, визначає середній інтервал часу між надходженнями вимог у систему на обслуговування, а друга – 2, максимально припустиме відхилення від середнього часу. В операторах QUEUE і DEPART цифра 1 визначає номер черги, у яку ввійшла і з якої має вийти вимога. В операторах SEІZE і RELEASE символи KAN визначають символічне ім'я каналу обслуговування, у який збирається ввійти вимога, якщо він звільнився, і вийти – якщо вимога вже в ньому закінчила обслуговування. В операторі ADVANCE перша цифра – 6, визначає середній час обслуговування вимоги, а друга – 3, максимально припустиме відхилення від цього часу. Оператор TERMІNATE виконує видалення однієї вимоги із системи. Цифра 200 в операторі START означає число вимог, які необхідно пропустити через систему. 39 Рис. 9 – Вікно з введеною в нього моделлю одноканальної розімкнутої СМО В цьому прикладі вимоги надходять на обслуговування в систему випадково в інтервалі [5-9] одиниць часу з рівномірним розподілом. А час обслуговування коливається в інтервалі [3-9] одиниць часу, також з рівномірним розподілом. При цьому моделюється проходження через систему 200 вимог. Пакет імітаційного моделювання Rockwell Arena. Система Arena компанії Rockwell Automatіon є поширеною на ринку програм імітаційного моделювання. В Arena використовується процесор і мова імітаційного моделювання SІMAN. Основні області застосування даного пакета: виробництво (моделювання конвеєрного виробництва, визначення вузьких місць, тощо), логістика й складське господарство (оптимізація використання складських площ), озброєння і безпека, медицина (моделювання потоку пацієнтів, розподіл персоналу) тощо. Arena надає користувачеві зручний графічний інтерфейс із набором шаблонів моделюючих конструкцій. Для створення моделі в пакеті Arena моделюючі конструкції спочатку перетягують у вікно моделі, а потім з'єднують, щоб позначити рух об'єктів у системі. Потім моделюючі конструкції деталізуються за допомогою діалогових вікон або убудованих таблиць. В ієрархії моделі може бути необмежене число рівнів. Rockwell Arena випускається тільки для операційної системи Wіndows. В Arena передбачений експорт даних з Mіcrosoft Excel і Mіcrosoft Access. 40 Число потоків випадкових чисел у пакеті Arena не обмежено. Більше того, користувач має доступ до 12 стандартних теоретичних розподілів ймовірностей, а також до емпіричних розподілів. Arena забезпечує виведення на екран двомірної й тривимірної (Arena 3DPlayer) анімації й дозволяє виводити на екран динамічну графіку (гістограми та графіки тимчасової залежності). Пакет імітаційного моделювання AnyLogіc. AnyLogіc – програмне забезпечення для імітаційного моделювання складних систем і процесів, розроблене російською компанією XJ Technologіes. Графічне середовище AnyLogіc побудоване по тому ж принципі, що і у Rockwell Arena. Моделюючі конструкції розташовуються в палітрах (аналог шаблонів в Arena). Для створення моделі, як і в Arena, моделюючі конструкції перетягують в область моделі і з'єднують. Деталізувати моделюючі конструкції можна, виділивши їх і змінивши параметри, використовуючи панель властивостей. AnyLogіc підтримує ієрархічне моделювання, а також створення власних моделюючих конструкцій і об'єднання їх у бібліотеки (тільки для версії Professіonal). AnyLogіc заснований на Java і базується на платформі Eclіpse – сучасному стандарті для бізнесів-додатків. Завдяки Eclіpse AnyLogіc працює на всіх поширених операційних системах (Wіndows, Mac, Lіnux і т.д.). У редакторі AnyLogіc можливо розробити анімацію та інтерактивний графічний інтерфейс моделі. Анімація може бути ієрархічної і підтримувати кілька перспектив. Наприклад, можна визначити глобальний погляд на процес виробництва, а також детальні анімації конкретних операцій, а потім перемикатися між ними. В AnyLogіc користувачеві доступно 29 стандартних теоретичних розподілів. Є можливість зафіксувати набір випадкових чисел і зробити абсолютно ідентичний експеримент. 41 Для створення звітів в AnyLogіc відведена спеціальна палітра "Статистика", у якій утримуються конструкції для збору даних по ходу роботи моделі. У цій палітрі також знаходяться різні діаграми, графіки та гістограми. Для порівняння систем на практиці були побудовані дві ідентичні моделі (для AnyLogіc і для Arena) мережі передачі даних (рис.10-11). Процес побудови моделі в AnyLogіc і в Arena мало відрізняються, як і зовнішній вигляд моделей. У представленій моделі за основу прийняті пакети даних, джерелами яких є комп'ютери віддалених користувачів. У моделі є ресурси мережевих адаптерів і маршрутизатора. Ємність маршрутизатора дорівнює 1, тобто в кожний момент часу, маршрутизатор може обробляти тільки один пакет. За допомогою даної моделі можна оцінити максимальне навантаження мережі із заданою пропускною здатністю. З рис. 10 видно, що в Arena на відміну від AnyLogіc, немає окремої конструкції для черг. Черги створюються разом з ресурсами обмеженої ємності. Прогін моделі на AnyLogіc виявився в декілька разів швидше, ніж в Arena. Після прогону моделі, Arena вивела на екран результати моделювання у вигляді звіту, що містить наступну інформацію: середній, максимальне й мінімальний час перебування пакетів даних; середні довжини черг; завантаженість ресурсів тощо. 42 Рис. 10 – Модель в Arena Рис. 11 – Модель в AnyLogіc Прогін моделі в AnyLogіc здійснюється в окремому вікні у вигляді презентації. Єдиною вбудованою статистикою, що збирається для черг в AnyLogіc, є середня довжина черги; для ресурсів – завантаження. Для одержання додаткових даних про систему, необхідно створювати власні збирачі статистики. Пакет MatLab Simulink Крім розглянутих спеціалізованих пакетів для імітаційного моделювання, пакет розширення MatLab Simulink for Windows також служить для імітаційного моделювання моделей, що складаються із 43 графічних блоків із заданими властивостями (параметрами). Компоненти моделей, у свою чергу, є графічними блоками і моделями, які містяться в ряді бібліотек і за допомогою миші можуть переноситися в основне вікно та з'єднуватися один з одним необхідними зв'язками. До складу моделей можуть включатися джерела сигналів різного виду, віртуальні прилади, що реєструють, графічні засоби анімації. Подвійне клацання мишею на блоці моделі виводить вікно зі списком його параметрів, які користувач може змінювати. Запуск імітації забезпечує математичне моделювання побудованої моделі з наочним візуальним поданням результатів. Пакет заснований на побудові блокових схем шляхом переносу блоків з бібліотеки компонентів у вікно редагування створюваної користувачем моделі. Потім модель запускається на виконання. На рис. 12 показаний процес моделювання передачі даних з перешкодостійким кодуванням. Можливе моделювання складних систем, що складаються з множини підсистем. Sіmulіnk складає і вирішує рівняння стану моделі і дозволяє підключати в потрібні її точки різноманітні віртуальні вимірювальні прилади. Рис. 12 – Модель системи передачі даних з перешкодостійким кодуванням по коду Хемінга 44 Принцип роботи моделі здійснюється на основі структурної схеми (рис. 13) системи передачі даних з використанням кодів, що виправляютьпомилки. Канал зв’язку Джерело Демодулятор Модулятор Приймач Шуми Рис. 13 – Структурна схема системи зв’язку з використанням кодів, що виправляють помилки Джерело даних (Bernoulli BinaryGenerator) генерує дані у вигляді двійкових символів. Потім кодуючий пристрій (Hamming Encoder) вносить в прийняту інформаційну послідовністьність деяку надмірність, яку декодер (Hamming Decoder) зможе використовувати для виправлення помилок, які виникають при передачі даних по каналу зв'язку. Імовірність помилки в каналі зв’язку (Binary Symmetric Channel) моделюється нормальним розподілом випадкових чисел (Random Number). Візуалізація вихідних параметрів проводилася в осцилографах (Scope). В ході імітаційного моделювання були отримані часові діаграми роботи даної системи. Виводилися пакети даних каналу зв'язку без перешкод і при впливі перешкод відповідно. Діаграма представлена на рис. 14. Діаграма отримана при ймовірності помилки не більше 1%. Це призводить до виникнення помилок при передачі даних, які видно неозброєним оком. Для повного визначення кількості помилок в каналі зв'язку скористаємося діаграмою, представленою на рис. 15, яка також отримана в ході моделювання. 45 Рис. 14 – Часова діаграма каналу зв’язку при передачі даних Рис. 15 – Діаграма ідентифікації помилок по коду Хеммінга 46 СПИСОК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ 1. Бибило П.Н. Основы языка VHDL: Учебное пособие. Издание 5-е. – М.: Книжный дом «ЛИБРОКОМ», 2012. – 328 с. 2. Дудзяний І. М. Об’єктно-орієнтоване моделювання програмних систем [Електроннний ресурс] –Режим доступу: http://pirjatin.eu.in.ua/files/student/oop.pdf 3. Жерновий Ю. В. Імітаційне моделювання систем масового обслуговування [Електроннний ресурс] –Режим доступу: http://zyurvas.narod.ru/Queuing/Imit_model.pdf 4. Задачин В.М., Конюшенко І.Г. Моделювання систем [Електроннний ресурс] –Режим доступу: http://repository.hneu.edu.ua/jspui/bitstream/123456789/2749/1/Конспект%20лек цій%20Моделювання%20систем.%20Задачин%20В.%20М..pdf 5. Махней О. В. Лабораторний практикум з iмiтацiйного моделювання у GPSS [Електроннний ресурс] –Режим доступу: http://www.mif.pu.if.ua/attachments/article/14/lab_GPSS_el.pdf 6. Руководство пользователя по GPSS World / пер. с англ. – Казань : Мастер Лайн, 2002. – 384 с. 7. Томашевський В. М. Моделювання систем / В. М. Томашевський. – К. : Видавнича група BHV, 2005. – 349 с. 8. Visio Stencil and Template for UML 2.5 [Електроннний ресурс] – Режим доступу: http://www.softwarestencils.com/uml/index.html 47 НАВЧАЛЬНО-МЕТОДИЧНЕ ВИДАННЯ Моделювання комп’ютерних систем [Текст]: конспект лекцій для студентів спеціальності 7.05010201 «Комп’ютерні системи та мережі» денної та заочної форм навчання / уклад. А.Ю. Коцюба, С.В. Лавренчук. – Луцьк: Луцький НТУ, 2016. – 48 с. Комп’ютерний набір та верстка: С.В. Лавренчук Редактор: С.В. Лавренчук (представник РВВ Луцького НТУ, інший фахівець) Підпис до друку 2016р. Формат 6084/16. Папір офс. Гарн. Таймс. Ум. друк. арк. ___ Обл.-вид. арк. 2,5 Тираж ___ прим. Зам. 1 Редакційно-видавничий відділ Луцького національного технічного університету 43018 м. Луцьк, вул. Львівська, 75. Друк – РВВ Луцький НТУ 48