- •Дисципліна: Об’єктно-орієнтоване програмування (ооп) Лекція 1. Вступ до ооп
- •1. Від процедурного програмування до об’єктного
- •1.1. Структурне програмування
- •1.2. Модульне програмування
- •1.3 Програмування, кероване подіями
- •2. Об’єктно-орієнтоване програмування
- •3 Чисто об'єктно-орієнтовані і гібридні мови програмування
Дисципліна: Об’єктно-орієнтоване програмування (ооп) Лекція 1. Вступ до ооп
План
1. Від процедурного програмування до об’єктного
1.1.Структурне програмування
1.2. Модульне програмування
1.3 Програмування, кероване подіями
2. Об’єктно-орієнтоване програмування
3 Чисто об'єктно-орієнтовані і гібридні мови програмування
1. Від процедурного програмування до об’єктного
1.1. Структурне програмування
Об’єктно-орієнтоване програмування з’явилося в середині 90-х років 20-століття у результаті довгої еволюції технології розробки програмних продуктів. В основу еволюції покладене прагнення прискорити процес створення надійних програмних засобів.
На протязі усіх років існування практика програмування вимагала удосконалення технологічних прийомів та створення на їх основі таких засобів програмування, які б спростили процес розробки програм, тим саме дозволяючи створення все більш складних програмних систем.
Перші програми були організовані дуже просто. Вони складалися з програми на машинній мові. Складність програм обмежувалась можливістю програміста одночасно відслідковувати виконувані команди та місцезнаходження великої кількості даних.
Створення спочатку асемблера, а потім і мов високого рівня зробили програму більш доступною за рахунок зниження рівня деталізації і дозволило збільшити її складність.
Поява у мовах засобів, які дозволяли оперувати підпрограмами, суттєво знизило трудомісткість розробки програм. Підпрограми можна було зберігати та використовувати у інших програмах. У результаті були накопичені величезні бібліотеки розрахункових та службових підпрограм, які при необхідності викликалися з основної програми. Типова програма того часу складалася з основної програми, області глобальних даних та набору підпрограм, які виконували обробку усіх даних (рис.1.1).
Основна програма
1
2
n
Область даних
Підпрограми
Рис.1.1.Архітектура програми, яка використовує глобальну область даних
Слабким місцем такої архітектури було те, що коли збільшувалась кількість підпрограм зростала вірогідність того, що одна з підпрограм могла змінити частину глобальних даних.
Необхідність виключення таких помилок призвела до ідеї використання у підпрограмі локальних даних (рис.1.2).
Основна програма
Область даних
1
2
n
. . .
Підпрограми
Рис.1.2.Архітектура програми, яка використовує підпрограми з локальною областю даних
Наступним кроком розвитку технології програмування стала технологія структурного програмування.
Структурне програмування — це технологія створення програм, що дозволяє шляхом дотримання певних правил скоротити час розробки і зменшити кількість помилок, а також полегшити можливість модифікації програми.
Теоретично доведено (незалежно Дейкстрой і Глушковим В.М.), що будь-який алгоритм можна реалізувати лише з трьох структур, які називаються базовими конструкціями структурного програмування: це послідовність, розгалуження і цикл.
Послідовністю називається конструкція, що реалізовує послідовне виконання двох або більше операторів (простих або складних).
Розгалуження задає виконання того чи іншого оператора залежно від виконання якої-небудь умови. Реалізується за допомогою операторів if та switch.
Цикл реалізує багатократне виконання операторів. Реалізується за допомогою операторів циклу.
Рис. 1.3. Базові конструкції структурного програмування
Особливістю базових конструкцій є те, що будь-яка з них має лише один вхід і один вихід, тому конструкції можуть вкладатися одна в одну довільним чином, наприклад, цикл може містити вихід з двох розгалужень, кожне з яких включає вкладені цикли.
Метою використання базових конструкцій є спрощення структури програми. Таку програму легко читати, відлагоджувати і, при необхідності, вносити до неї зміни. У більшості мов високого рівня існує декілька реалізацій базових конструкцій;
Обмеження - скорочення (або заборона) використання оператора goto; одна точка входу в секцію (блок), але декілька можливих точок виходу. Структурне програмування часто асоціюється з розробкою «зверху-вниз».
Були сформовані основні принципи виконання розробки:
принцип низхідної розробки, який рекомендує на всіх етапах спочатку визначити найбільш загальні моменти, а потім поетапно виконувати деталізацію;
принцип наскрізного структурного контролю, який припускає проведення змістовного контролю усіх етапів розробки.
В основі структурного програмування лежить декомпозиція (розділення на частини) складних систем з наступною реалізацією у вигляді окремих невеликих (до 40 … 50 операторів) підпрограм.
Підтримка принципів структурного програмування була закладена у основу процедурних мов програмування. Зазвичай, вони включали основні «структурні» оператори керування, підтримували вкладенні підпрограм, локалізацію та обмеження області «видимості» даних. Серед найбільш відомих мов цієї групи можна назвати PL/1, ALGOL – 68, Pascal, C.
Подальше зростання складності та розмірів програмного забезпечення вимагало розвитку структурування даних. У мовах програмування з’явилася можливість користувачу визначати тип даних. Одночасно виникає потреба розмежувати доступ до глобальних даних програми, щоб зменшити кількість помилок. Результатом була поява та розвиток технології модульного програмування.
