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

-  модульність;  - ієрархія. 

Ці елементи є головними так як без будь-якого з них модель не буде об’єктно-орієнтованою. Крім головних, є ще три додаткових елементи:  - типізація;  - паралелізм; 

-  зберігаємісь. 

Називаючи їх додатковими, ми маємо на увазі, що вони корисні в об'єктній моделі, але не обов'язкові. 

Розглянемо головні елементи об’єктної моделі більш детально:

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

Інкапсуляція реалізує принцип Інгалса [1]: "Ніяка частина складної системи не повинна залежати від внутрішнього пристрою якої-небудь іншої частини". Найчастіше інкапсуляція виконується за допомогою приховання інформації, тобто шляхом маскування усіх внутрішніх деталей, що не впливають на зовнішнє поводження. Звичайно приховуються і внутрішня структура об'єкта і реалізація його методів. Інкапсуляція, таким чином, визначає чіткі границі між різними абстракціями.

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

Модульність характеризує можливість розкласти систему на модулі з сильними внутрішніми, але слабкими зовнішніми зв’язками. 

Ієрархія – це упорядкування абстракцій, розташування їх по рівнях.

Семантично, успадкування описує відношення типу "is-a" ("є"). Наприклад, "генератор" є "електрична машина", "транзистор" є "напівпровідниковий елемент" і "метод хорд та дотичних" є "алгоритм вирішення трансцедентних рівнянь". Таким чином, успадкування породжує ієрархію "узагальненняспеціалізація", у якій підклас (наприклад, "генератор") являє собою спеціалізований окремий випадок свого суперкласу (наприклад, "електрична машина").  

Тепер дамо визначення додаткових елементів об’єктної моделі:

Типізація – це спосіб захиститися від використання об'єктів одного класу замість іншого, або принаймні керувати таким використанням. 

Паралелізм дозволяє різним об'єктам діяти одночасно.

Зберігаємість – здатність об'єкта існувати в часі, переживаючи його процес, що породив, і (або) у просторі, переміщаючи зі свого первісного адресного простору. 

Більш детально концепція та приклади застосування компонентів об’єктної моделі наводяться в конспекті лекцій та роботі [1]. 

В процесі виконання лабораторних робіт застосовується об’єктноорієнтована алгоритмічна мова Object Pascal. Розглянемо синтаксичні конструкції вказаної мови програмування, що реалізують компоненти об’єктної моделі.

1. Оголошення класу, інкапсуляція.

В мові Object Pascal інкапсуляція полягає в утворенні конструкції (структури), що поєднує дані та методи їх обробки. Дані в цьому випадку називаються властивостями класу, їх значення відрізняє між собою його конкретні екземпляри. Наприклад, розглянемо клас, що представляє собою лінію на екрані. Описання такого класу в мові Object Pascal може бути наступним:

type TLine = class (TObject)

                  X1: Word;

                  Y1: Word;

                  X2: Word;

                  Y2: Word;

     Color: array [1..3] of byteWidth: byte;      constructor CreateDefault;     procedure Drawprocedure Rotate (xc, yc: Word; fi: Real);  procedure Move (dx, dy: Word); end

Узагальнений синтаксис оголошення класу має вигляд: 

type Ідентифікатор_Класу = class (Ідентифікатор_Предка)

                   Ідентифікатор_властивості1: Тип_властивості1;

                   Ідентифікатор_властивості2: Тип_властивості2;

                  . . .

                        Заголовок_Методу1;

                        Заголовок_Методу2;