
- •Лекція 6: Теорія й методи об'єктно-орієнтованого аналізу, проектування й програмування План
- •1. Парадигми програмування
- •2. Історія об′єктно-орієнтованої парадигми
- •2. Поняття об'єкта
- •3. Зв'язок записів й об'єктів в dos-паскале
- •4. Поняття класу
- •5. Концепції Об’єктно-орієнтованого аналізу й проектування
- •7. Чисто Об’єктно-орієнтовані й гібридні мови
- •Проста об'єктна модель і об′єктно-посилаюча модель
- •7. Переваги ооп у порівнянні із процедурним програмуванням:
- •8. Методологія Об’єктно-орієнтованого програмування
Лекція 6: Теорія й методи об'єктно-орієнтованого аналізу, проектування й програмування План
Парадигми програмування
Історія об’єктно-орієнтованої парадигми
Поняття об'єкта
Зв'язок записів й об'єктів в DOS-Pascal
Поняття класу
Концепції об’єктно-орієнтованого аналізу й проектування
Чисто Об’єктно-орієнтовані й гібридні мови
Переваги ООП у порівнянні із процедурним програмуванням
Методологія Об’єктно-орієнтованого програмування
1. Парадигми програмування
Парадигма (грамматич.) - система форм слова, що змінюється, конструкції. (Тлумачний словник Ожегова).
Cтосовно до програмування парадигма - це система синтаксичних і семантичних правил побудови програм для рішення певного класу завдань.
У цей час існує цілий ряд підходів до написання програм:
процедурне програмування (як в DOS-Pascal);
Об’єктно-орієнтоване програмування (як в Object Pascal);
програмування, засноване на правилах (як у мові Пролог);
візуальне (компонентне) програмування (практично у всіх сучасних середовищах розробки, включаючи Delphi);
програмування, кероване подіями (створення інтерактивних програм) і т.д.
Найчастіше при розробці програми використається кілька парадигм. Наприклад, при створенні програми для Windows ми можемо одночасно користуватися програмуванням, керованим подіями, об’єктно-орієнтованим програмуванням і візуальним підходом.
Велика кількість парадигм обумовлюється не тільки розмаїтістю завдань, але й розмаїтістю архітектур комп'ютерів й операційних систем. Загальна природа комп'ютерної техніки дозволяє з більшою або меншою ефективністю моделювати одну архітектуру за допомогою іншої.
Так, для завдань, що використають нейронні мережі, існують спеціальні нейрокомп′ютери, архітектура яких дозволяє обробляти безліч процесів у паралельному режимі. Однак, з емуляціями нейромереж можна працювати й на звичайному персональному комп'ютері (пакети NeuroShell, NeuroWin й ін.).
Для рішення кожного конкретного класу завдань найбільш удалої буде вважатися та парадигма, що забезпечує:
максимальну швидкість розробки проекту;
максимальну простоту модифікації;
максимальну надійність програм;
максимальну швидкість виконання готового програмного продукту.
2. Історія об′єктно-орієнтованої парадигми
Об′єктно-орієнтована парадигма програмування не нова. Її джерела сходять до Симуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП стало популярним у другій половині 80-х у таких різних мовах, як Сі-плюс-плюс, Objective C (інше розширення C), Обджект і Турбо Паскаль, CLOS (Оо-расширение Лиспа), Eiffel, Ада (у її останніх втіленнях) і недавно - у Яві. Ця робота зосереджена на Сі-плюс-плюс, Обджект Паскале і Яві, іноді згадуючи й інші мови.
При об′єктно-орієнтованому підході програма являє собою опис об'єктів, їхніх властивостей (або атрибутів), сукупностей (або класів), відносин між ними, способів їхньої взаємодії й операцій над об'єктами (або методів).
Найбільш відомим прикладом Об’єктно-орієнтованої мови програмування є мова C++, що розвилася з імперативної мови С. Його прямим нащадком і логічним продовженням є мова С#. Інші приклади об′єктно-орієнтованих мов програмування: Visual Basic, Java, Eiffel, Oberon.
Перехід від структурно-процедурного підходу до об′єктно-орієнтованоного програмування, подібно переходу від низькорівневих мов програмування до мов високого рівня, вимагає значних витрат на навчання. Природно, що платою за це є підвищення продуктивності праці програмістів при проектуванні й реалізації програмного забезпечення. Інша перевага ООП перед імперативним підходом – більше високий відсоток повторного використання вже розробленого програмного коду.