
- •Лекція 6: Теорія й методи об'єктно-орієнтованого аналізу, проектування й програмування План
- •1. Парадигми програмування
- •2. Історія об′єктно-орієнтованої парадигми
- •2. Поняття об'єкта
- •3. Зв'язок записів й об'єктів в dos-паскале
- •4. Поняття класу
- •5. Концепції Об’єктно-орієнтованого аналізу й проектування
- •7. Чисто Об’єктно-орієнтовані й гібридні мови
- •Проста об'єктна модель і об′єктно-посилаюча модель
- •7. Переваги ооп у порівнянні із процедурним програмуванням:
- •8. Методологія Об’єктно-орієнтованого програмування
4. Поняття класу
В об′єктно-орієнтованому програмуванні частіше використається термін клас. Класи й об'єкти - по суті, те саме, але "об'єкт" частіше використається в узагальненому, теоретичному змісті, а клас - стосовно до модуля коду.
У сучасному програмуванні поняття об'єкт, клас і компонент багато в чому синонімічні, хоча в кожного з них є своя специфіка.
Історично вийшло так, що об'єктний тип (object) Паскаля не підтримував інкапсуляцію фізично: до поля об'єкта можна було звернутися прямо. У той же час у мовах С++ й Smalltalk, з яких почалася епоха Об’єктно-орієнтованого програмування, використався термін клас. Тому ми часто говоримо "об'єкти Паскаля", але "класи Delphi". Компонент же пов'язаний із подійним програмуванням: це клас, що має властивості (поля), звичайні методи й методи - оброблювачі подій.
Змінна типу клас (об'єкт) називається екземпляром цього класу (об'єкта). Всі екземпляри того самого класу мають однаковий набір полів і методів, але значення цих полів будуть своїми для кожного екземпляра.
var
ivanov, petrov: TStudent;
...
{ для кожного екземпляра викликаємо той самий метод,
кожному екземпляру задаємо свої значення полів }
ivanov.SetStudent('Іванов Іван Іванович',1,'20-101');
petrov.SetStudent('Петров Петро Петрович',2,'20-203');
Метод класу (компонента) завжди викликається для конкретного екземпляра класу й використає його поля.
5. Концепції Об’єктно-орієнтованого аналізу й проектування
Комп'ютерні й інформаційні технології без перебільшення можна назвати найбільш динамічною областю сучасних знань, які концентрують у собі самі останні досягнення в сфері науки й техніки. Поява нових моделей процесорів і комплектуючих, версій операційних систем і програмного забезпечення відбувається на тлі постійного ускладнення не тільки окремих фізичних і програмних компонентів, але й лежачих у їхній основі концепцій. Розробка й удосконалювання інформаційних систем приводить до необхідності підтримки єдиного стилю для різних версій програм при їхній постійній доробці й модифікації.
Трудомісткість створення сучасних додатків на початкових етапах проекту, як правило, оцінюється значно нижче реально затрачуваних зусиль, що служить причиною незапланованих витрат і затягування остаточних строків готовності програм. У процесі розробки додатків змінюються функціональні вимоги замовника, що ще більше віддаляє момент закінчення роботи програмістів. Збільшення розмірів програм змушує залучати понадштатних програмістів, що, у свою чергу, вимагає додаткових ресурсів для організації їхньої погодженої роботи. У розробці й впровадженні сучасних корпоративних інформаційних систем бере участь безліч фахівців різної кваліфікації, для яких однакове розуміння архітектури й функціональності є серйозною проблемою.
Таким чином, всі ці особливості приводять до нагальної потреби моделювання структури й процесу функціонування програмних систем до початку написання відповідного коду. При цьому неодмінною умовою успішного завершення проекту стає побудова попередньої моделі програмної системи.
Модель (model) - абстракція фізичної системи, розглянута з певної точки зору й представлена на деякій мові або в графічній формі.
З погляду загальних принципів системного аналізу та сама фізична система може бути представлена декількома моделями. При цьому призначення окремої моделі системи визначається характером розв'язуваної проблеми. Основна вимога до моделі програмної системи - вона повинна бути зрозуміла замовникові й всім фахівцям проектної групи, включаючи бізнеси-аналітиків і програмістів. Саме для розробки такої нотації потрібні були зусилля групи фахівців провідних фірм виробників програмного й апаратного забезпечення, які привели до появи мови UML.
Розробка й використання моделей мови UML здійснюється в рамках загальної концепції Об’єктно-орієнтованого аналізу й проектування, що, у свою чергу, є узагальненням методології Об’єктно-орієнтованого програмування.