конспект лекцій (ТСПП). Конспект лекцій з дисципліни 07 технологія створення програмних продуктів напряму 050101 Компютерні науки
Скачать 14.87 Mb.
|
Тема 4. Теорія і методи об' єктно - орієнтованого аналізу, проектування і програмування .План лекції 1. Зародження об'єктної моделі. 2. Об'єктні мови програмування. Об'єктно-орієнтовані мови. Об'єктно-орієнтований аналіз, дизайн і проектування. 3. Парадигми програмування. 4. Нові концепції програмування. Самостійна робота 5. Об'єктно-орієнтоване програмування . 6. Уніфікована мова моделювання Мови і платформи розробки. 7. Засоби розробки програмного забезпечення. Оптимальний порядок вивчення ТОП. 8. Об'єктно-орієнтований підхід. Характеристики об'єктно-орієнтованих мов Зміст лекції Світ, що оточує нас, складається з об'єктів і стосунків між ними. Об'єкт утілює деяку суть і має деякий стан, який може змінюватися з часом як наслідок впливу інших об'єктів, що знаходяться з даним в якому-небудь відношенні. Він може мати внутрішню структуру: складатися з інших об'єктів, що також знаходяться між собою в деяких стосунках. Виходячи з цього можна побудувати ієрархічну будову світу з об'єктів. Проте, при кожному конкретному розгляді світу, що оточує нас, деякі об'єкти вважаються неделимыми ("точковими"), причому залежно від цілей розгляду такими (неделимыми) можуть прийматися об'єкти різного рівня ієрархії. Відношення зв'язує деякі об'єкти: можна вважати, що об'єднання цих об'єктів має деяку властивість. Якщо відношення зв'язує n об'єктів, то таке відношення називається n -местным (n -арным). На кожному місці об'єднання об'єктів, які можуть бути пов'язані яким-небудь конкретним відношенням, можуть знаходитися різні об'єкти, але цілком визначені (в цьому випадку говорять: об'єкти певного класу). Одномісне відношення називається властивістю об'єкту (відповідного класу). Стан об'єкту може бути вивчений за значенням властивостей цього об'єкту або неявно за значенням властивостей об'єднань об'єктів, що зв'язуються разом з даним тим або іншим відношенням. В процесі пізнання або зміни світу, що оточує нас, ми завжди приймаємо в розгляд ту або іншу спрощену модель світу (модельний світ), в яку включаємо деякі з об'єктів і деякі із стосунків світу, що оточує нас, і, як правило, одного рівня ієрархії. Кожен об'єкт, що має внутрішню структуру, може представляти свій модельний світ, що включає об'єкти цієї структури і відношення, які їх зв'язують. Таким чином, світ, що оточує нас, можна розглядати (у деякому наближенні) як ієрархічну структуру модельних світів. Нині в процесі пізнання або зміни світу, що оточує нас, широко використовується комп'ютерна техніка для обробки різного роду інформації. У зв'язку з цим застосовується комп'ютерне (інформаційне) представлення об'єктів і стосунків. Кожен об'єкт інформаційно може бути представлений деякою структурою даних, що відображує його стан. Властивості цього об'єкту можуть задаватися безпосередньо у вигляді окремих компонент цієї структури, або спеціальними функціями над цією структурою даних. N -местные відношення для N>1 можна представити або в активній формі, або в пасивній формі. У активній формі N -местное відношення представляється деяким програмним фрагментом, що реалізовує або N -местную функцію (що визначає значення властивості відповідного об'єднання об'єктів), або процедуру, що здійснює за станом представлень об'єктів, що зв'язуються відношенням, що представляється, зміну станів деяких з них. У пасивній формі таке відношення може бути представлене деякою структурою даних (у яку можуть входити і представлення об'єктів, що зв'язуються цим відношенням), що інтерпретується на підставі прийнятих угод по загальних процедурах, незалежних від конкретних стосунків (наприклад, реляційна база даних). У будь-якому випадку представлення відношення визначає деякі дії з обробки даних. При дослідженні модельного світу користувач може по-різному отримувати (чи захотіти отримувати) інформацію від комп'ютера. При одному підході його можуть цікавити отримання інформації про окремі властивості об'єктів, що цікавлять його, або результати якої-небудь взаємодії між деякими об'єктами. Для цього він замовляє розробку того або іншого ПС, що виконує функції, що цікавлять його, або деяку інформаційну систему, здатною видавати інформацію про стосунки, що цікавлять його, використовуючи при цьому відповідну базу даних. У початковий період розвитку комп'ютерної техніки (при не досить високій потужності комп'ютерів) такий підхід до використання комп'ютерів був цілком природним. Саме він і провокував функціональний (реляційний) підхід до розробки ПС, який був детально розглянутий в попередніх лекціях. Суть цього підходу полягає в систематичному використанні декомпозиції функцій (стосунків) для побудови структури ПС і текстів програм, що входять в нього. При цьому самі об'єкти, до яких застосовувалися функції, що замовлялися і реалізовувалися, представлялися фрагментарно (у тому об'ємі, який потрібний для виконання цих функцій) і у формі, зручній для реалізації цих функцій. Тим самим не забезпечувалося цілісного і адекватного комп'ютерного представлення модельного світу, що цікавить користувача: відображення його на використовувані ПС могло виявитися для користувача досить трудомістким завданням, спроби незначного розширення об'єму і характеру інформації про модельний світ, що цікавить користувача. отримуваною від таких ПС, могло привести до серйозної їх модернізації. Такий підхід до розробки ПС підтримується більшістю використовуваних мов програмування, починаючи від мов асемблерів і процедурних мов (ФОРТРАН, Паскаль) до функціональних мов (ЛІСП) і мов логічного програмування (ПРОЛОГ). При іншому підході до дослідження модельного світу за допомогою комп'ютера користувача може цікавити спостереження за зміною станів об'єктів в результаті їх взаємодій. Це вимагає досить цілісного представлення в комп'ютері користувача об'єкту, що цікавить, а програмні компоненти, що реалізовують стосунки, в яких бере участь цей об'єкт, явно зв'язуються з ним. Для реалізації такого підходу доводилося будувати програмні засоби, що моделюють процеси взаємодії об'єктів (модельного світу). За допомогою традиційних засобів розробки це виявилося досить трудомістким завданням. Правда, з'явилися мови програмування, спеціально орієнтовані на таке моделювання, але це лише частково спростило завдання розробки необхідних ПС. Якнайповніше відповідає рішенню цієї задачі об'єктний підхід до розробки ПС. Суть його полягає в систематичному використанні декомпозиції об'єктів при побудові структури ПС і текстів програм, що входять в нього. При цьому функції (стосунки), що виконуються таким ПС, виражалися через стосунки об'єктів різних рівнів, т. е. їх декомпозиція істотно залежала від декомпозиції об'єктів. Говорячи про об'єктний підхід слід також чітко розуміти про якого роду об'єктах йде мова: об'єктах модельного світу користувача, про їх інформаційне представлення, про об'єкти програми, за допомогою яких будується ПС. Крім того, слід розрізняти власне об'єкти (об'єкти "пасивні") і суб'єкти (об'єкти "активні"). |