Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л08_Теорія і методи ОО аналізу, проектування і...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
145.92 Кб
Скачать

4. Поняття класу

В об′єктно-орієнтованому програмуванні частіше використається термін клас. Класи й об'єкти - по суті, те саме, але "об'єкт" частіше використається в узагальненому, теоретичному змісті, а клас - стосовно до модуля коду.

У сучасному програмуванні поняття об'єкт, клас і компонент багато в чому синонімічні, хоча в кожного з них є своя специфіка.

Історично вийшло так, що об'єктний тип (object) Паскаля не підтримував інкапсуляцію фізично: до поля об'єкта можна було звернутися прямо. У той же час у мовах С++ й Smalltalk, з яких почалася епоха Об’єктно-орієнтованого програмування, використався термін клас. Тому ми часто говоримо "об'єкти Паскаля", але "класи Delphi". Компонент же пов'язаний із подійним програмуванням: це клас, що має властивості (поля), звичайні методи й методи - оброблювачі подій.

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

var

ivanov, petrov: TStudent;

...

{ для кожного екземпляра викликаємо той самий метод,

кожному екземпляру задаємо свої значення полів }

ivanov.SetStudent('Іванов Іван Іванович',1,'20-101');

petrov.SetStudent('Петров Петро Петрович',2,'20-203');

Метод класу (компонента) завжди викликається для конкретного екземпляра класу й використає його поля.

5. Концепції Об’єктно-орієнтованого аналізу й проектування

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

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

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

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

З погляду загальних принципів системного аналізу та сама фізична система може бути представлена декількома моделями. При цьому призначення окремої моделі системи визначається характером розв'язуваної проблеми. Основна вимога до моделі програмної системи - вона повинна бути зрозуміла замовникові й всім фахівцям проектної групи, включаючи бізнеси-аналітиків і програмістів. Саме для розробки такої нотації потрібні були зусилля групи фахівців провідних фірм виробників програмного й апаратного забезпечення, які привели до появи мови UML.

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