
- •Життєвий цикл програмного забезпечення. Характеристика стадій життєвого циклу програмного забезпечення.
- •Основні поняття та підрозділи програмування.
- •Підходи щодо потрібних знань для програмування. Класи інструментальних засобів для мов програмування.
- •Платформи програмування. Архітектури обчислювальних систем.
- •Транслятор. Види трансляторів.
- •7. Трансляція програмного коду. Етапи та фази.
- •8. Регулярні вирази: призначення і галузі застосування.
- •9. Методології і парадигми програмування. Моделі, що зумовили розвиток методологій.
- •10. Класифікація методологій програмування.
- •11. Ядра методологій програмування.
- •12. Топологічна специфіка методологій програмування.
- •13. Реалізаційна специфіка методологій програмування.
- •14. Генеалогія мов програмування
- •15. Особливості імперативних та об’єктно-орієнтованих мов програмування.
- •16. Особливості функціональних і логічних мов програмування.
- •17. Шаблонізатори: принцип застосування і призначення при створенні програмного забезпечення.
- •18. Основні поняття технології програмування.
- •19. Класичні технологічні процеси.
- •20 Перелічім, стандартні технологічні процеси створення Пз
- •22 Основні технологічні підходи поділяють на такі групи:
- •23 Технологія асинхронного обміну повідомленнями у клієнт-серверній архітектурі.
- •24 Поняття Стиль в програмуванні
- •25 Колективна розробка пз
- •Тестирование «черного ящика»
- •Тестирование «белого ящика»
- •45. Основні поняття розподілених обчислень.
- •46. Поняття про паралельне програмування.
- •47. Закон Амдала для розподілених систем та його наслідки.
- •48. Класифікація паралельних комп’ютерів і систем. Класифікація Шора
- •49. Принципи побудови паралельних обчислювальних систем. Обчислювальні мережі окремий випадок розподілених систем
- •Мультипроцесорні комп'ютери
- •Багатомашинні системи
- •Обчислювальні мережі
- •50. Концепція Grid.
10. Класифікація методологій програмування.
Методології класифікують за 3 чинниками:
-
Ядро методології
-
Топологічна специфіка
-
Реалізаційна специфіка
Ядра методологій визначаються способом опису алгоритмів . Основні ядра методологій:
-
Методологія імперативного програмування
-
Методологія функціонального програмування
-
Методологія логічного програмування
-
Методологія об’єктно - орієнтованого програмування
-
Методологія програмування в обмеженнях
Топологічна специфіка методологій визначається як спосіб вибору методів для отримання уточненого ядра методології. Кожне ядро може отримати приставку, що визначається деякою топологією. Наприклад, якщо в імперативній методології притримуватися методів структурного програмування то отримаємо методологію структурного програмування.
Реалізаційна специфіка
Кожне з ядер може отримати «суфікс» який визначає деяку організую апаратної підтримки даної методології. На даний момент найбільш відомими є централізована та паралельна організації
Також бувають змішані методології . Вони включають об’єднання методів кількох методологій
11. Ядра методологій програмування.
-
Методологія імперативного програмування
Підхід який характеризується послідовною покроковою зміною стану обчислювача . При цьому управління змінами повністю визначене і контрольоване.
Методами є
-
Метод зміни стану заключається в послідовній покроковій зміні станів
-
Метод управління потоком стану заключається в покроковому управлінні
Основним синтаксичним поняттям є оператор. Оператори поділяються на атомарні та структурні.
Мови імперативного програмування маніпулюють даними в покроковому режимі.
До мов імперативного програмування належать – Fortran, Algol, Pascal, C, ICON. Імперативне програмування найбільш придатне для вирішення задач, в яких покрокове виконання задач є природнім
-
Методологія об’єктно - орієнтованого програмування
Підхід, який використовує об’єктну декомпозицію, при якій статична структура системи описується в об’єктах та зв’язках між ними, а поведінка описується в термінах обміну повідомлень між об’єктами.
Методами є
-
Метод об’єктно – орієнтованої декомпозиції заключається в виділенні об’єктів та зв’язків між ними
-
Метод абстрактних типів даних лежить в онсові інкапсуляції
-
Методи пересилки повідомлень заключається в описі поведінки системи через терміни обміну повідомлень між об’єктами
Модель обєктно-орієнтованого програмування підтримує явно тільки одну операцію – пересилку повідомлень об’єктам . Повідомлення може мати параметри і також є об’єктом. Об’єкт має набір методів обробки повідомлень та поля.
В об’єктно орієнтованому програмуванні виділяють три основних властивості
-
Інкапсуляція
-
Наслідування
-
Поліморфізм
Засобом структурування в даній методології є класи. Вони визначають які поля і методи доступні ззовні , як обробляти окремі повідомлення і т.д.
Мови обєктно-орієнтованого програмування ділять на 3 групи
-
Чисті
-
Simula
-
Smalltalk
-
Beta
-
Self
-
Cecil
-
-
Гібридні
-
C++
-
Object Pascal
-
-
Урізані
-
C#
-
Java
-
Дана методологія є потужним засобом моделювання відношень між об’єктами практично в будь-якій предметній області
-
Методологія функціонального програмування
Спосіб створення програм, в якому єдиною дією є виклик функцій, єдиним способом розбиття програми на частини – надання імені функції і виразу, що вираховує значення функції, а єдиним правилом композиції – оператор суперпозиції функції
Методи:
-
Метод аплікації – програма є виразом, складеним з застосування функції до аргументів
-
Метод рекурсивної поведінки заключається в самоповторючійся поведінці, що повертається сама до себе
-
Метод настроюваності полягає в тому, що можна легко породжувати нові програмні об’єкти по зразку, як значення існуючих виразів
Функціональне програмування представляє собою альтернативу імперативному підходу, в ньому відсутнє поняття часу, програми є виразами , а виконання програм полягає в обчисленні цих виразів.
Основна специфіка мов полягає в тому, що функції обмінюються данними безпосередньо, без будь-яких проміжних присвоювань та змінних. Змінна яка отримала значення більше його ніколи не змінить.
До мов функціонального програмування належать – Lisp, РЕФАЛ, Scheme, FP, ML, Miranda, Standard ML, Haskell.
Функціональне програмування переважно використовується для вирішення задач, які тяжко сформулювати в термінах послідовних операції
-
Методологія логічного програмування
Підхід, згідно до якого програма містить проблеми в термінах фактів та логічних формул, а вирішення проблем система виконує з допомогою механізмів логічного виводу.
Методи:
-
Одноманітності - однакове застосування механізму логічного доведення до всієї програми
-
Уніфікації – механізм співставлення із зразком для створення та декомпозиції структур даних
В логіці теорії задаються за допомогою аксіом та правил виводу
Мови логічного програмування містять механізми, що дозволяють описати проблеми в термінах фактів та логічних формул, а вирішення проблем виконує система з допомогою механізмів логічного виводу.
Мови: Prolog, Prolog II, IC-Prolog, LOGLISP, Mprolog, LCA, Concurrent prolog, T-prolog, PARLOG, LQF, LEAF, GHC, Goedel, Mercury
Клас задач майже співпадає із класом задач функціонального програмування.
-
Методологія програмування в обмеженнях
Підхід, в якому програмі визначаються тип даних рішення, предметна область рішення і обмеження на значення рішення.
Методи:
-
Метод описуємої моделі обчислень – програма на мові програмування містить опис понять та задач
Програмування в обмеженнях – програмування в термінах постановки задач.
Мовами є : Sketchpad, УТОПИСТ, Thinglab , IDEAL, OPS5, Bertrand, OPL
Клас задач – задачі дослідження операцій і штучного інтелекту