Парадигми проєктування ПЗ
Розділ: Інженерія систем і програмного забезпечення
📌 Про що ця тема
Тут перевіряють, чи розумієш ти основні підходи (парадигми) до побудови програм і проєктування систем. Ключове поняття — ПАРАДИГМА ПРОГРАМУВАННЯ: спосіб мислення та набір принципів, за якими пишуть код і будують архітектуру ПЗ. Завдання зазвичай просять упізнати парадигму за ознаками чи співвіднести поняття з означенням.
📖 Головне
• Парадигма програмування — це модель, стиль побудови програми: що є «будівельним блоком» і як блоки взаємодіють.
• Імперативна парадигма — програма як послідовність команд, що крок за кроком змінюють стан (значення змінних). Головне — ЯК робити. Приклад мов: Pascal, C.
• Процедурна парадигма — різновид імперативної: код ділять на процедури та функції (підпрограми), які можна викликати повторно.
• Декларативна парадигма — описуємо ЩО треба отримати, а не як. Приклад: мова запитів SQL.
• Об’єктно-орієнтована парадигма (ООП) — програма як набір об’єктів, що мають дані (поля) й поведінку (методи). Базується на класах.
• Три принципи ООП: ІНКАПСУЛЯЦІЯ (приховування внутрішніх даних, доступ лише через методи), УСПАДКУВАННЯ (новий клас переймає властивості іншого), ПОЛІМОРФІЗМ (один виклик — різна поведінка залежно від об’єкта).
• Клас — «шаблон» (опис), об’єкт — конкретний екземпляр класу.
• Функціональна парадигма — обчислення як виклик функцій без зміни стану; результат залежить лише від аргументів.
• Проєктування ПЗ — етап життєвого циклу: визначення структури програми до написання коду (архітектура, модулі, зв’язки).
• Модульність — поділ системи на незалежні частини (модулі), які легше розробляти й тестувати окремо.
• Абстрагування — виділення суттєвого й ігнорування деталей на даному рівні.
🔢 Як це працює на прикладі
Задача: описати «автомобіль» у програмі.
• Процедурний підхід: окремі змінні (швидкість, колір) і функції рухатись(швидкість), зупинитись(). Дані й дії роз’єднані.
• ООП-підхід: створюємо клас Автомобіль із полями (колір, швидкість) і методами рухатись(), зупинитись(). Потім робимо об’єкт мійАвто = Автомобіль(). Тут інкапсуляція: швидкість змінюється лише методом. Якщо створити клас Вантажівка, що успадковує Автомобіль, — це успадкування. Якщо метод рухатись() у легковика й вантажівки працює по-різному — це поліморфізм.
⚠️ Типові помилки
• Плутають клас і об’єкт: клас — опис, об’єкт — готовий екземпляр у пам’яті.
• Плутають інкапсуляцію з успадкуванням: перше — приховування даних, друге — передавання властивостей новому класу.
• Вважають ООП «мовою», а не парадигмою: одна мова може підтримувати кілька парадигм.
• Плутають імперативне (ЯК) і декларативне (ЩО) програмування.
• Думають, що процедурна й ООП — зовсім різні; насправді ООП виросла з імперативної/процедурної.
🎯 Що завчити напам’ять
• 3 принципи ООП: інкапсуляція, успадкування, поліморфізм.
• Імперативна = ЯК; декларативна = ЩО.
• Клас — шаблон, об’єкт — екземпляр.
• SQL — приклад декларативної парадигми.
• Процедурна парадигма — поділ на підпрограми.
🧠 Перевір себе
1. Який принцип ООП означає приховування внутрішніх даних об’єкта?
2. До якої парадигми належить мова SQL?
3. Чим клас відрізняється від об’єкта?
4. Як називається парадигма, де програма — послідовність команд, що змінюють стан?
Відповіді: 1 — інкапсуляція; 2 — декларативна; 3 — клас це опис/шаблон, об’єкт це конкретний екземпляр класу; 4 — імперативна.