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

     . . . end;  Реалізація кожного з визначених методів повинна бути здійснена в розділі implementation того ж модуля, в якому оголошено клас. Наприклад, розглянемо реалізацію методу Move класу TLine, даний метод призначений для зсуву лінії: 

procedure TLine.Move (dx, dy: Word); begin

              X1:= X1 + DX;

              X2:= X2 + DX;

              Y1:= Y1 + DY;

X2:= Y2 + DY; end;

Таким чином, узагальнений вигляд реалізації методу буде наступним:

[procedure / function / constructor / destructor

Ідентифікатор_Класу.Ідентифікатор_Методу (Інтерфейс_Методу);       Локальні_Розділи_Опису; begin

           Текст_Програми_Що_Реалізує_Метод; end;

Аналогічно вивченим раніше стандартним типам мови Паскаль, створення екземпляру певного класу в мові Object Pascal означає створення змінної відповідного типу. Крім того, слід зауважити, що в Object Pascal об’єкти (екземпляри класів) можуть бути створені лише в динамічній пам’яті. Отже створення екземпляру має проходити в 2 етапи – створення відповідної змінної та виділення для неї області в динамічній пам’яті:

var Line1 : TLine;    {Створення змінної} begin

                        Line1:=TLine.Create;  {Виділення пам’яті 

шляхом виклику конструктора}

                        … Текст_Програми …

                  Line1.Free                {Вивільнення пам’яті  шляхом виклику деструктора}

end;

Завдання на лабораторну роботу

1.  Вивчити технічне завдання на проектування.

2.  Під керівництвом викладача провести виробничу нараду на якій визначити:

а) операційну систему для якої буде розроблятися програмний продукт; б) алгоритмічну мову та середовище проектування для розробки програмного продукту;

в) ознайомитися з існуючими програмними продуктами в даній предметній області (блочно-структурне моделювання динамічних систем) – система SIAM, середовище MatLab); г) визначити спосіб взаємодії користувача з програмним продуктом, для вибраного інтерфейсу сформувати набір команд;    д) сформувати список ключових абстракцій програмного продукту; ж) визначити попередній перелік класів;  

3.  Розділити попередній перелік класів на окремі модулі та обґрунтувати вибраний розподіл. Сформувати інтерфейсні частини вибраних модулів. 

До звіту включити: 

1.  Конспективний виклад теоретичних відомостей, необхідних для виконання лабораторної роботи.

2.  Рішення, прийняті по всіх питаннях та текст модулів. Самостійно обґрунтувати кожне рішення.

3.  Висновки.

Лабораторна робота № 2 

Побудова діаграми класів в нотації Буча  

Теоретичні відомості

Головним моментом об’єктно-орієнтованого аналізу та об’єктноорієнтованого проектування є визначення та формалізація зв’язків між класами. 

Класифікація зв’язків між класами

1.  Асоціація – показує наявність зв’язку невизначеного на даний момент характеру.

2.  Наслідування – зв’язок типу "узагальнення/спеціалізація" (загальне і конкретне), "is-a" ("Генератор" є "Електрична машина") 

3.  Агрегація – зв’язок типу "ціле/частина", "part of" ("Двигун" є частиною "Автомобіль").

4.  Використання – зв’язок типу "застосовує" ("Програма" застосовує

"Драйвер послідовного порту")

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

-  "один-до-одного" ("Автомобіль" – "Двигун" )

-  "один-до-багатьох " ("Фігура" – "Лінія")

-  "багато-до-багатьох" ("Рухомі об’єкти" – "Перешкоди"). 

Поняття класу-клієнта та класу-сервера