Парадигми проєктування ПЗ

Розділ: Інженерія систем і програмного забезпечення

📌 Про що ця тема

Тут перевіряють, чи розумієш ти основні підходи (парадигми) до побудови програм і проєктування систем. Ключове поняття — ПАРАДИГМА ПРОГРАМУВАННЯ: спосіб мислення та набір принципів, за якими пишуть код і будують архітектуру ПЗ. Завдання зазвичай просять упізнати парадигму за ознаками чи співвіднести поняття з означенням.


📖 Головне

• Парадигма програмування — це модель, стиль побудови програми: що є «будівельним блоком» і як блоки взаємодіють.

• Імперативна парадигма — програма як послідовність команд, що крок за кроком змінюють стан (значення змінних). Головне — ЯК робити. Приклад мов: Pascal, C.

• Процедурна парадигма — різновид імперативної: код ділять на процедури та функції (підпрограми), які можна викликати повторно.

• Декларативна парадигма — описуємо ЩО треба отримати, а не як. Приклад: мова запитів SQL.

• Об’єктно-орієнтована парадигма (ООП) — програма як набір об’єктів, що мають дані (поля) й поведінку (методи). Базується на класах.

• Три принципи ООП: ІНКАПСУЛЯЦІЯ (приховування внутрішніх даних, доступ лише через методи), УСПАДКУВАННЯ (новий клас переймає властивості іншого), ПОЛІМОРФІЗМ (один виклик — різна поведінка залежно від об’єкта).

• Клас — «шаблон» (опис), об’єкт — конкретний екземпляр класу.

• Функціональна парадигма — обчислення як виклик функцій без зміни стану; результат залежить лише від аргументів.

• Проєктування ПЗ — етап життєвого циклу: визначення структури програми до написання коду (архітектура, модулі, зв’язки).

• Модульність — поділ системи на незалежні частини (модулі), які легше розробляти й тестувати окремо.

• Абстрагування — виділення суттєвого й ігнорування деталей на даному рівні.


🔢 Як це працює на прикладі

Задача: описати «автомобіль» у програмі.

• Процедурний підхід: окремі змінні (швидкість, колір) і функції рухатись(швидкість), зупинитись(). Дані й дії роз’єднані.

• ООП-підхід: створюємо клас Автомобіль із полями (колір, швидкість) і методами рухатись(), зупинитись(). Потім робимо об’єкт мійАвто = Автомобіль(). Тут інкапсуляція: швидкість змінюється лише методом. Якщо створити клас Вантажівка, що успадковує Автомобіль, — це успадкування. Якщо метод рухатись() у легковика й вантажівки працює по-різному — це поліморфізм.


⚠️ Типові помилки

• Плутають клас і об’єкт: клас — опис, об’єкт — готовий екземпляр у пам’яті.

• Плутають інкапсуляцію з успадкуванням: перше — приховування даних, друге — передавання властивостей новому класу.

• Вважають ООП «мовою», а не парадигмою: одна мова може підтримувати кілька парадигм.

• Плутають імперативне (ЯК) і декларативне (ЩО) програмування.

• Думають, що процедурна й ООП — зовсім різні; насправді ООП виросла з імперативної/процедурної.


🎯 Що завчити напам’ять

• 3 принципи ООП: інкапсуляція, успадкування, поліморфізм.

• Імперативна = ЯК; декларативна = ЩО.

• Клас — шаблон, об’єкт — екземпляр.

• SQL — приклад декларативної парадигми.

• Процедурна парадигма — поділ на підпрограми.


🧠 Перевір себе

1. Який принцип ООП означає приховування внутрішніх даних об’єкта?

2. До якої парадигми належить мова SQL?

3. Чим клас відрізняється від об’єкта?

4. Як називається парадигма, де програма — послідовність команд, що змінюють стан?


Відповіді: 1 — інкапсуляція; 2 — декларативна; 3 — клас це опис/шаблон, об’єкт це конкретний екземпляр класу; 4 — імперативна.

Перевірити себе на практиці

Прочитати — половина справи. Далі потрібні завдання цієї ж теми з розбором кожної відповіді: саме на них видно, чи справді тема закрита.