Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема_10_Об’єктно-орієнтоване програмування_Лекц...doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
145 Кб
Скачать
☆

1.2.2.Абстракція

Абстракція полягає у виділенні (на певному рівні) найбільш важливих ознак об’єктів (інформації про об’єкти) реального світу які моделюються та в абстрагуванні від незначних деталей. Таким чином формується узагальнююча, ідеалізована модель об’єкту. Незначні, на певному рівні абстракції, елементи моделі можуть уточнюватися на нижчих рівнях і на їх основі об’єкти розрізняються між собою.

1.2.3.Ієрархія

Ієрархія класів та об’єктів є способом розширення інформативності елементів системи. Об’єктна структура ілюструє схему взаємодії об’єктів між собою. Структура класів визначає узагальнення структур та їх поведінку в середині системи.

Визначити ієрархічні зв’язки в системі не завжди просто, але після їх визначення структура складної системи та сама система стає зрозумілішою.

1.3.Зміст проектування

Під проектування розуміють деякий уніфікований підхід за допомогою якого шукають шляхи вирішення певної проблеми. Під проектуванням розглядають побудову системи, що

- задовольняє заданим (часто неформальним) специфікаціям функціонування;

- узгоджується з обмеженнями, що накладаються обладнанням;

- задовольняє явні та неявні вимоги з експлуатації та ресурсоспоживанню;

- відповідає вимогам до самого процесу розробки, таким як тривалість та вартість, а також використання додаткових інструментальних засобів.

При проектуванні здебільшого застосовується моделювання в значній мірі тому, що воно реалізує принципи декомпозиції, абстракції та ієрархії. Кожна модель описує певну частину системи, а ми будуємо нові на базі старих, в яких ми більше чи менше впевнені.

Методи проектування володіють деякими спільними властивостями:

- умовні позначення – мова для описання кожної моделі;

- процес правила проектування моделей;

- інструменти – засоби, які пришвидшують процес створення моделей, і в яких вже закладені закони функціонування моделей. Інструменти дозволяють виявити помилки в процесі розробки.

1.4.Еволюція об’єктної моделі

Протягом розвитку мов програмування високого рівня розвилася та закріпилася тенденція переходу від імперативних (які вказують комп’ютеру, що робити) до декларативних (які описують ключові абстракції проблемної галузі) мов.

Мови програмування умовно розбиваються на чотири покоління в залежності від мовних конструкцій, що в них реалізовані.

Перше покоління FORTRAN I, ALGOL‑58 (математичні формули). Вони орієнтувалися в основному на інженерні та наукові розрахунки та підтримували виключно математичні абстракції.

Друге покоління FORTRAN II (підпрограми, роздільна компіляція), ALGOL‑60 (блокова структура, типи даних), COBOL (описання даних, робота з файлами), Lisp (обробка списків, вказівними, збирання сміття). Основна тенденція цього покоління мов розвиток алгоритмічних абстракцій.

Третє покоління PL/1 (FORTRAN + ALGOL + COBOL), ALGOL‑68 (строгий нащадок ALGOL‑60), Pascal (спрощений нащадок ALGOL‑60), Simula (класи, абстрагування даних) характеризується більш суттєвим кроком від підтримки машини до предметної галузі.

У четвертому поколінні було створено багато мов програмування високого рівня, але мало з них вижили. Але механізми, що були запропоновані ними втілювалися у нових версіях старіших мов. Саме тоді розвинулися об’єктні та об’єктно-орієнтовані мови Smalltalk (по новому розвинутий спадок від Simula). Ada (нащадок ALGOL‑68 та Pascal з елементами Simula) CLOS (об’єднав Lisp, LOOPS та Flavors), C++ (гібрид C та Simula), Eiffel (об’єднання Simula та Ada). Ці мови можна назвати зараз об’єктно-орієнтованими.

Приклад (графічний). Структура об’єктно-орієнтованої програми представляється графом а не деревом, як у випадку процедурно-орієнтованої.

В основному об’єктно-орієнтований підхід пов’язаний з такими подіями як:

- значний прогрес в галузі архітектури ЕОМ;

- розвиток мов програмування, таких як Simula, Smalltalk, Ada;

- розвиток технології програмування, що включає принципи модульності та ховання даних [];

- розвиток теорії баз даних;

- дослідження в галузі штучного інтелекту;

- досягнення філософії та теорії пізнання.

Об’єктно-орієнований підхід зарекомендував себе як ідея, що уніфікує всю комп’ютерну науку та застосовується не тільки в програмуванні, але й при проектування інтерфейсу користувача, баз даних і навіть архітектур комп’ютерів.

Об’єктно-орієнований аналіз та проектування визначають еволюційний, а не революційний розвиток проектування.