Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vika / Лекція 15.doc
Скачиваний:
5
Добавлен:
07.02.2016
Размер:
118.27 Кб
Скачать

12

Не умножай число наявної суті.

Вільям Оккам

Лекція 15. О'ектний підхід до розробки програмних засобів

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

15.1. Об'єкти і відносини в програмуванні. Суть об'єктного підходу до розробки програмних засобів.

Навколишній нас світ складається з об'єктів і відносин між ними [15.1]. Згідно В. Далю [15.2] об'єкт (предмет)  це все, що представляється відчуттям (об'єкт речовий) або розуму (об'єкт розумовий). Таким чином, об'єкт утілює деяку суть і має деякий стан, який може змінюватися з часом як наслідок впливу інших об'єктів, що знаходяться з першим в яких-небудь відносинах. Він може мати внутрішню структуру: складатися з інших об'єктів, що також знаходяться між собою в деяких відносинах. Виходячи з цього, можна побудувати ієрархічну будову миру з об'єктів. Проте, при кожному конкретному розгляді навколишнього нас світу деякі об'єкти вважаються неподільними, причому залежно від цілей розгляду такими (неделимыми) можуть прийматися об'єкти різного рівня ієрархії. Відношення зв'язує деякі об'єкти: можна вважати, що об'єднання цих об'єктів володіє деякою властивістю. Якщо відношення зв'язує n об'єктів, то таке відношення називається n-местным (n-арным). На кожному місці об'єднання об'єктів, які можуть бути зв'язані яким-небудь конкретним відношенням, можуть знаходитися різні об'єкти, але цілком визначені (в цьому випадку говорять: об'єкти певного класу). Одномісне відношення називається простою властивістю об'єкту (відповідного класу). Багатомісне відношення об'єктів називатимемо асоціативною властивістю об'єкту, якщо цей об'єкт бере участь в цьому відношенні. Стан об'єкту може бути вивчене за значенням простих або асоціативних властивостей цього об'єкту. Безліч всіх об'єктів, які володіють якимсь загальним набором властивостей, називається класом об'єктів.

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

В даний час в процесі пізнання або зміни навколишнього нас світу широко використовується комп'ютерна техніка для обробки різного роду інформації. У зв'язку з цим застосовується комп'ютерне (інформаційне) представлення об'єктів і відносин. Кожен об'єкт інформаційно може бути представлений деякою структурою даних, що відображає його стан. Прості властивості цього об'єкту можуть задаватися безпосередньо у вигляді окремих компонент цієї структури, або спеціальними функціями над цією структурою даних. Асоціативні властивості (n-местные відносини для n>1) можна представити або в активній формі, або в пасивній формі. У активній формі n-местное відношення представляється деяким програмним фрагментом, що реалізовує або n-местную функцію (що визначає значення властивості відповідного об'єднання об'єктів), або процедуру, що здійснює за станом представлень об'єктів, що зв'язуються відношенням, що представляється, зміну станів деяких з них. У пасивній формі таке відношення може бути представлене деякою структурою даних (у яку можуть входити і представлення об'єктів, що зв'язуються цим відношенням), що інтерпретується на підставі прийнятих угод по загальних процедурах, незалежних від конкретних відносин (наприклад, реляційна база даних). У будь-якому випадку представлення відношення визначає деякі дії з обробки даних.

При дослідженні модельного миру користувачі можуть по-різному отримувати інформацію від комп'ютера.

У одних випадках користувачів може цікавити отримання інформації про окремі властивості певних об'єктів або результати якої-небудь взаємодії між деякими об'єктами модельного миру. Для задоволення таких запитів розробляються відповідні ПС, які виконують функції, що цікавлять користувачів, або відповідні інформаційні системи, здатні видавати інформацію об користувачів, що цікавлять, відносинах. У початковий період розвитку комп'ютерної техніки (при не достатньо високій потужності комп'ютерів) такий підхід до дослідження модельного миру був цілком природним. Саме він і провокував реляційний (процедурний, функціональний і тому подібне) підхід до розробки ПС, який був детально розглянутий в попередніх лекціях. Суть цього підходу полягає в систематичному використанні декомпозиції функцій (відносин) для опису і побудови структури ПС (включаючи тексти програм). При цьому самі об'єкти модельного миру, з якими пов'язані функції, що замовляються і реалізовуються, представлялися фрагментарно (у тому об'ємі, який необхідний для виконання цих функцій) і у формі, зручній для реалізації цих функцій. Тим самим забезпечувалася ефективна реалізація необхідних функцій, але не створювалося цілісне і адекватне комп'ютерне представлення модельного миру, що цікавить користувача. Спроби навіть незначного розширення об'єму і характеру інформації про цей модельний світ, яку можна отримати від ПС, могло зажадати серйозної модернізації цього ПС.

У інших випадках користувача може цікавити спостереження за зміною станів об'єктів модельного миру в результаті їх взаємодій. Це вимагає використання відповідних інформаційних моделей таких об'єктів, створення програмних засобів, що моделюють процеси взаємодії об'єктів модельного миру, і надання користувачеві доступу до цих інформаційних моделей (до призначених для користувача об'єктів). За допомогою традиційних методів розробки це виявилося досить трудомістким завданням. Найповніше відповідає рішенню цієї задачі об'єктний підхід до розробки ПС. Суть його полягає в систематичному використанні декомпозиції об'єктів при описі і побудові ПС. При цьому функції (відносини), що виконуються таким ПС, виражатимуться через відносини об'єктів інших рівнів, тобто їх декомпозиція істотно залежатиме від декомпозиції об'єктів.

З погляду розробників ПС слід розрізняти наступні категорії об'єктів (і, відповідно, їх класів):

  • об'єкти модельного (речового або розумового) миру

  • інформаційні моделі об'єктів реального миру (називатимемо їх призначеними для користувача об'єктами)

  • об'єкти процесу виконання програм

  • об'єкти процесу розробки ПС (технологічні об'єкти програмування).

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

Коли говорять про об'єктно-орієнтований підхід до розробки ПС, мають на увазі об'єктний підхід з орієнтацією на опис об'єктів модельного миру і побудовою їх інформаційних моделей, причому використовуються, в основному, активні об'єкти. При цьому багато процесів розробки ПС набувають специфічних («об'єктні») рис:

  • використання системи понять, що дозволяють описувати об'єкти і їх класи

  • декомпозиція об'єктів є основним засобом спрощення ПС

  • використання внепрограммных абстракцій для спрощення процесів розробки

  • перевага (пріоритет) розробки структури даних перед реалізацією функцій.

Основні з цих специфічних особливостей розробки ПС покажемо в рамках моделі водопаду технології.

Соседние файлы в папке vika