
- •4. Інженерія систем і програмного забезпечення
- •4.1. Складні та великі системи
- •4.1.1. Властивості систем: емерджентність, адитивність, еквіфінальність
- •4.1.2. Відкриті та закриті системи; класифікація за призначенням, походженням, видом елементів, способом організації
- •4.1.3. Спільне та відмінності складних і великих систем
- •4.2. Моделі систем
- •4.2.1. Склад і структура системи; моделі типу чорної та білої скриньки.
- •4.2.2. Концептуальні, математичні і комп’ютерні моделі
- •4.2.3. Зв’язок між системою та моделлю. Ізо- та гомоморфізм
- •Гомоморфізм
- •Гомоморфізм Гомоморфізм Ізоморфізм
- •4.3. Інформаційні системи
- •4.3.1. Поняття, цілі, значення, класифікація за функціональністю, масштабом, сферою застосування
- •4.3.2. Забезпечення інформаційних систем: організаційне, інформаційне, математичне, програмне, технічне, лінгвістичне, методичне, правове.
- •4.4. Аналіз вимог
- •4.4.1. Класифікація вимог до програмного забезпечення. Джерела та методи збирання вимог
- •4.4.2. Вимоги користувача (варіанти використання та історії користувачів).
- •4.4.3. Функціональні та нефункціональні вимоги, обмеження, структуризація функціональних вимог.
- •4.5. Проєктування програмного забезпечення
- •4.5.1. Види проєктування: структурне, обєктно-орієнтоване, архітектурне, інтерфейсне
- •4.5.2. Парадигми проєктування: функціональна декомпозиція згори вниз, архітектура, орієнтована на дані, об'єктно-орієнтований аналіз та проєктування, подієво-керована архітектура
- •4.5.3. Ідентифікація класів предметної області. Uml-діаграми ієрархії класів: моделювання підсистем, класів та зв’язків між ними
- •4.5.4. Проєктування сценаріїв реалізації варіантів використання на основі uml-діаграм послідовностей та комунікації
- •4.5.5. Основні патерни проєктування mvc, Abstract Factory, Facade, Decorator, Flyweight, Visitor, Observer, Proxy, Strategy, Chain of Responsibility
- •4.6. Реалізація програмного забезпечення
- •4.6.1. Вимоги до оформлення коду: стиль, розбиття на структуровані одиниці, найменування змінних, класів, об’єктів.
- •4.6.2. Засоби автоматичної ґенерації програмного коду
- •4.6.3. Налагодження: Точки зупинки (Breakpoints), Спостереження за змінними (Variable Watch), Виведення на консоль (Console Output), Налагоджувач (Debugger), Аналізатори коду (Code Analyzers)
- •4.6.4. Керування конфігурацією програмного забезпечення та контроль версій
- •4.6.5. Постійна інтеграція/постійне впровадження (Continuous Integration/Continuous Delivery)
- •4.7. Забезпечення якості: спільне та відмінності процесів тестування, верифікації, валідації
- •4.7.1. Тестування методами білої та чорної скрині
- •4.7.2. Рівні тестування: модульний, інтеграційний, системний, валідаційний.
- •4.7.3. Розробка через тестування (Test-driven development)
- •2. Види тестування зручности використання:
- •3. Проведення ефективного тестування зручности використання
- •4. Вирішення крайніх випадків в тестуванні зручности використання
- •4.8. Командна робота, підходи до розробки програмного забезпечення (пз)
- •4.8.1. Класичні моделі розробки пз: каскадна (водопадна), ітераційна, інкрементна
- •4.8.2. Промислові технології розробки. Rup, msf, Agile, Scrum, Extreme Programming (xp), Kamban.
- •4.8.3. Ролі та обов'язки у команді проекту, переваги командної роботи, ризики та складність такої співпраці
- •3. Ролі членів групи в моделі процесу розробки
- •4.8.4. Основні етапи планування і виконання іт проекту. Життєвий цикл іт проекту.
4.2.2. Концептуальні, математичні і комп’ютерні моделі
Концептуальна (змістовна) модель — це абстрактна модель, що визначає структуру модельованої системи, властивості її елементів і причинно-наслідкові зв'язки, властиві системі і суттєві для досягнення мети моделювання.
1. Формулювання змістовного і внутрішнього представлення, що поєднує концепцію користувача й розробника моделі. Вона включає в явному виді логіку, алгоритми, припущення й обмеження.
2. Абстрактна модель, яка виявляє причинно-наслідкові зв'язки, властиві досліджуваному об'єктові в межах, визначених цілями дослідження. По суті, це формальний опис об'єкта моделювання, який відображає концепцію (погляд) дослідника на проблему.
Концептуальна модель — модель предметної області, що складається з переліку взаємопов'язаних понять, що використовуються для опису цієї області, разом з властивостями й характеристиками, класифікацією цих понять, за типами, ситуацій, ознаками в даній області і законів протікання процесів в ній.
Основні елементи концептуальної моделі
умови функціонування об'єкта, визначені характером взаємодії між об'єктом і його оточенням, а також між елементами об'єкта;
мета дослідження об'єкта та напрямок покращення його функціонування;
можливості керування об'єктом, визначення складу керованих змінних об'єкта.
Математична модель — система математичних співвідношень, які описують досліджуваний процес або явище. Математична модель має важливе значення для таких наук, як: економіка, екологія, соціологія, фізика, хімія, механіка, інформатика, біологія та ін.
Для отримання математичної моделі застосовують загальні закони природознавства, спеціальні закони конкретних наук, результати пасивних та активних експериментів, імітаційне моделювання за допомогою обчислювальних машин. Математичні моделі дозволяють передбачити хід процесу, розрахувати цільову функцію (вихідні параметри процесу), керувати процесом, проектувати системи з бажаними характеристиками.
Для створення математичних моделей можна застосовувати будь-які математичні засоби — диференціальні або інтегральні рівняння, теорію множин, абстрактну алгебру, математичну логіку, теорію ймовірностей, графи та ін. Процес створення математичної моделі називається математичним моделюванням. Це найзагальніший та найбільш використовуваний в науці, зокрема, в кібернетиці, метод досліджень.
Для розробки математичних моделей широко застосовується диференційне числення, теорія множин, матриці і графи, а також планування експерименту[джерело?]. Відповідно розрізняють теоретико-множинні, матричні, топологічні та поліномні математичні моделі.
Класифікація. Якщо відношення задаються аналітично, то їх можна розв'язати або в замкнутому вигляді відносно шуканих змінних як функції від параметрів моделі (явно), або в частково замкнутому вигляді (неявно), коли шукані змінні залежать від одного або багатьох параметрів моделі. До моделей цього класу належать диференціальні, інтегральні, різницеві рівняння, ймовірнісні моделі, моделі математичного програмування та інші.
Якщо не можна знайти точний розв'язок математичної моделі, застосовують чисельні (обчислювальні) методи або інші види моделювання.
Залежно від того, якими є параметри системи та зовнішні збурення, математичні моделі можуть бути детермінованими та стохастичними. Останні мають особливо важливе значення при дослідженні й проектуванні великих систем зі складними зв'язками і властивостями, які важко врахувати.
Математичний опис неперервного процесу (наприклад, диференційними рівняннями) являє собою неперервну математичну модель.
Якщо ж математична модель описує стан системи тільки для дискретних значень незалежної змінної і нехтує характером процесів, які відбуваються у проміжках між ними, то така модель є дискретною (тут важливим є вибір кроку дискретності, від якого залежить точність опису реального об'єкта його математичною моделлю). Якщо параметри об'єкта, для якого розробляють математичну модель, можна вважати незалежними від часу, то така система описується стаціонарною моделлю, характерна особливість якої — постійні коефіцієнти. У протилежному випадку математична модель є нестаціонарною.
У математичному моделюванні орієнтуються на моделі стандартного вигляду, які забезпечені відповідним математичним апаратом. Так, фізичні процеси характеризуються просторово-часовими співвідношеннями і у загальному випадку описуються диференційними рівняннями у часткових похідних.
Важливим моментом структурування моделі є феноменологічний метод, коли підпроцеси можуть бути представлені окремими моделями, вихідні величини яких є вхідними для інших (наступних) підпроцесів. У цьому випадку математична модель складного процесу являє собою систему моделей (рівнянь), знайдених для кожного підпроцесу. Приклади математичних моделей:
Модель Мальтуса — закон про пропорційну залежність між швидкістю росту і розміром популяції.
Система хижак-жертва (рівняння Вольтерри—Лотки) — показує залежність між чисельністю хижаків та жертв.
Модель оптимальної поведінки покупця — виражає вибір покупця між множиною продуктів при обмеженому бюджеті.
Модель Гарячого Всесвіту.
Комп’ютерна модель — це інформаційна модель, що створюється і досліджується з використанням комп’ютерних програм.
Комп’ютерні моделі поділяють на розрахункові (математичні), імітаційні та графічні.
Комп’ютерна розрахункова (математична) модель об’єкта створюється і досліджується з використанням програм, у яких виконуються розрахунки значень властивостей цього об’єкта на основі формул, рівнянь, нерівностей, систем рівнянь і нерівностей тощо.
Комп’ютерна імітаційна модель об’єкта створюється і досліджується з використанням програм, що відтворюють змінення значень тих властивостей об’єкта, які змінюються випадковим чином і їх не можна описати математично.
Комп’ютерна графічна модель об’єкта створюється і досліджується з використанням програм, у яких можна будувати і змінювати графічне зображення об’єкта.