IS v economici / Lekciya / Tema_4
.doc«ІС та технологій в економіці» курс лекцій
Тема 4. ОБ’ЄКТНЕ ПРОЕКТУВАННЯ ІНФОРМАЦІЙНИХ СИСТЕМ
Об'єктно-орієнтована технологія (Object-Oriented Technologies) стосується, насамперед, створення програмного забезпечення ІС. Спонукальним мотивом появи принципово нового підходу у програмуванні стало те, що в динамічному і конкурентному середовищі застосування ІС вимагаються часті зміни прикладних програм. Тому з об'єктно-орієнтованими інструментальними засобами (СІ++, Level 5 Object) пов'язана можливість багатократного використання створених раніше програм, що полегшує як швидке створення прикладних програм ІС, так і швидку адаптацію їх у використанні. Це досягається за рахунок того, що основні компоненти концепції обробки інформації - дані і операції - розглядаються пов'язаними в єдине ціле і приховані в окремих модулях - об'єктах, доступ до яких здійснюється лише інтерфейс ними засобами.
Принциповим питанням в об'єктно-орієнтованому програмуванні є визначення об'єктів (класів об'єктів), що є важливими для проектованої системи. Ідентифікація об'єктів здійснюється за допомогою аналізу характеристик проблемної області, що включає розпізнавання доречних матеріальних об'єктів, а також каталогізацію всіх ролей, що стосуються розв'язуваної задачі, взаємодії елементів системи, важливі події, технічні умови тощо. Установлюються співвідношення (взаємозв'язки) між класами.
Кожний клас є вмістилище, куди входять як дані, так і команди для дій над даними. Важливим поняттям в об'єктно-орієнтованому програмуванні є функція успадкування, завдяки якій створювані класи можуть діставати «у спадок» властивості класів об'єктів, якими вони «породжувалися».
Об'єктно-орієнтована методологія на даний час є досить ґрунтовно відпрацьованим підходом до створення програмних продуктів. Виокремленні і розроблені основні його компоненти: об'єктно-орієнтований аналіз; об'єктно-орієнтоване проектування; об'єктно-орієнтоване програмування. Технологія об'єктно-орієнтованого проектування стала, у свою чергу, підґрунтям інженерії інформаційних систем - CASE-технології.
Метод об'єктно-орієнтованого проектування ґрунтується на:
-
моделі побудови системи як сукупності об'єктів абстрактного типу даних;
-
модульній структурі програм;
-
спадному проектуванні , використовуваному при виділенні об'єктів.
Об'єктно-орієнтований підхід використовує наступні базові поняття:
-
об'єкт;
-
властивість об'єкта;
-
метод обробки;
-
подія ;
-
клас об'єктів.
Об'єкт - сукупність властивостей (параметрів) визначених сутностей і методів їх обробки (програмних засобів). Об'єкт містить інструкції (програмний код), що визначають дії, які може виконувати об'єкт, та оброблювані дані.
Властивість - характеристика об'єкта, його параметр. Всі об'єкти наділені певними властивостями, що у сукупності виділяють об'єкт із множини інших об'єктів.
Об'єкт має якісну визначеність, що дозволяє виділити його з множини інших об'єктів і обумовлює незалежність створення й обробки від інших об'єктів.
Наприклад, об'єкт можна представити перерахуванням властивих йому властивостей:
ОБ'ЄКТ_ A (властивість-1, властивість-2,...., властивість-k).
Властивості об'єктів різних класів можуть "перетинатися", тобто можливі об'єкти, що мають однакові властивості:
ОБ'ЄКТ _B (...властивість-n, властивість-m,...властивість-r,...) ОБ'ЄКТ_ C (...властивість-n,.., властивість-r,...).
Одним із властивостей об'єкта є метод його обробки.
Метод - програма дій над об'єктом чи його властивостями.
Метод розглядається як програмний код, пов'язаний з певним об'єктом; здійснює перетворення властивостей, змінює поведінку об'єкта.
Об'єкт може мати набір заздалегідь визначених убудованих методів обробки, або створених користувачем чи запозичених у стандартних бібліотеках, що виконуються при настанні заздалегідь визначених подій, наприклад, однократне натискання лівої кнопки миші, вхід у поле введення, вихід з поля введення, натискання певної клавіші і т.п.
В міру розвитку систем обробки даних створюються стандартні бібліотеки методів, до складу яких включаються типізовані методи обробки об'єктів певного класу (аналог - стандартні підпрограми обробки даних при структурному підході), які можна запозичати для різних об'єктів.
Подія - зміна стану об'єкта.
Зовнішні події генеруються користувачем (наприклад, клавіатурне введення чи натискання кнопки миші, вибір пункту меню, запуск макроса ); внутрішні події генеруються системою.
Об'єкти можуть поєднуватися в класи (групи чи набори - у різних програмних системах можлива інша термінологія).
Клас - сукупність об'єктів, що характеризуються спільністю застосовуваних методів чи обробки властивостей.
Один об'єкт може виступати об'єднанням вкладених у нього по ієрархії інших об'єктів.
Схематично зв'язок основних понять об'єктно-орієнтованого програмування представимо в такий спосіб (рис. 1).
Рис. 1. Співвідношення основних понять об'єктно-орієнтованого підходу
У межах об'єктного підходу виділяють:
-
об'єктно-орієнтоване програмування (ООР),
-
об'єктно-орієнтоване проектування (00П),
-
об'єктно-орієнтований аналіз (ООА).
Теоретичною основою цих методів і їх концептуальним базисом є теорія систем і системний аналіз. Об'єктна технологія принципово вирізняється від усіх існуючих раніше технологій проектування. Розглянемо основні поняття і положення об'єктно-орієнтованої технології проектування.
З деякою часткою спрощення можна вважати, що кінцевою метою проектування ІС є створення комплексу програм, які реалізують задані функції системи. Основною метою розробки програми є переклад задачі з мови проблемної сфери на мову комп'ютера.
Традиційний підхід до проектування полягає у послідовній побудові ряду моделей (інформаційна модель, описання структур файлів довідник документів, економіко-математична модель, схема алгоритму), останньою з яких є модель мовою реалізації (програма).
Особливістю цього підходу є те, що предметна сфера відображається у наперед визначені управляючі структури і структури даних.
Мова проблемної сфери - це набір понять, з допомогою яких може бути описана вихідна задача. У той самий час будь-яка мова комп'ютера подає вихідну задачу у вигляді сукупності даних і процедур їх перетворення.
Таким чином, ідеальна гіпотетична мова програмування повинна представляти алгоритм розв'язання задачі на основі понятійного апарату заданої проблемної сфери. Вихід бачиться у використанні універсальної метамови для всіх предметних областей - мови теорії систем і системного аналізу. Основні поняття цієї мови: об'єкт, клас об'єктів, атрибут (властивість), процес, функція, метод, структура тощо. На цьому й базується ключова ідея ООР - створення мовних засобів, які на основі абстрактних типів даних дозволяють специфікувати нові класи програмних об'єктів, адекватних об'єктам конкретної проблемної сфери.
Об'єктні програми складаються з готових компонентів-об'єктів. ЦІ об'єкти можуть відповідати:
-
об'єктам або процесам реального світу (деталь, документ, клієнт);
-
абстрактним поняттям (екран, таблиця, графічний елемент тощо).
У традиційних програмах дані відділені від процедур і методів, в об'єктних — дані та процедури об'єднуються в об'єкті.
Приклад 1. Об'єкт — «клієнт». Усе, що відомо користувачеві про клієнта, включається у цей об'єкт. Дії з клієнтом реалізуються як методи (функції) для даного об'єкта, що також входять в опис об'єкта.
Таким чином, основа ООП — формування з простих об'єктів, які складаються з даних і набору функцій, більш складних, здатних моделювати об'єкти проблемної сфери.
Проведений огляд дозволяє зробити цікавий висновок: об'єктно-орієнтована технологія стирає межу між «чистим» проектувальником (системним аналітиком) і «чистим» програмістом. З'являється новий тип розробника — проектувальник-програміст, здатний самостійно поставити, спроектувати задачу і реалізувати її у вигляді об'сктно-орієнтованої програми.
Історично склалося так, що першочергово були розроблені мови ООР у відсутність теорії об'єктно-орієнтованого проектування. І тільки після усвідомлення спеціалістами в області інформатики, що ООП є основою для чергового перевороту в інформаційних технологіях, почалась активна розробка теорії об'єктно-орієнтованого аналізу та проектування.
Вперше поняття класів і об'єктів введені у мові Simula 67. У системі Smalltalk-80 ідеї Sіmulа доведені до логічного завершення - усі дії виконуються на основі класів. У 70-х роках створені мови, що реалізують дії абстрактних даних: Alpharad, СLV, Еuclid, Моdulа. Занесення об'єктно-орієнтованого підходу у С привело до створення мов С ++ і Objectiioe С. На основі мови Раscal виникли Object Pascal, Еiffel i Аdа. З'явились такі діалекти LIPS, як LООРS і СLOS , з можливостями мов Simula і Smalltalk.
Принципова відмінність методів програмування і методів проектування полягає в тому, що методи програмування орієнтовані на ефективне використання механізмів мови програмування а методи проектування спрямовані на ефективне і правильне структурування складних систем.
Об'єктно-орієнтоване проектування — це методологія проектування, яка поєднує в собі процес об'єктної декомпозиції та прийоми подання як логічної і фізичної, так і динамічної моделей системи, що проектується. Моделі, на яких базується об'єктно-орієнтоване проектування, формуються в результаті об'єктно-орієнтованого аналізу.
Об'єктно-орієнтований аналіз — це методологія, спрямована на створення моделей з використанням об'єктно-орієнтованого підходу на основі понять класів і об'єктів, що складають словник проблемної сфери.
Першим і головним прийомом розв'язання складних задач в ООП є абстрагування. Абстрагування концентрує увагу на зовнішніх особливостях об'єкта і дозволяє відокремити істотні особливості поведінки від деталей їх здійснення.
Визначення. Абстракція — це такі істотні характеристики деякого об'єкта, які відрізняють його від усіх інших видів об'єктів і таким чином, чітко відокремлюють особливості даного об'єкта з позиції подальшого розгляду й аналізу.
Абстракції сутності об'єктів відповідають словнику проблемної сфери. Описання поведінки об'єкта пов'язане з поняттями операції і протоколу. Об'єкт може здійснювати дії над іншим об'єктом. Протокол відображує усі дії, якими об'єкт може підлягати сам і якими може чинити вплив на інші об'єкти.
Модель проблемної сфери, як правило, настільки важлива, що вимагає такої класифікації об'єктів, яка б відображувала спільність і відмінність їх властивостей. Виявлені родоводові зв'язки між класами об'єктів фіксуються з допомогою оголошення відношення типу клас - підклас. Такі проектні процедури породжують ієрархічні структури з абстракції.
Основними видами ієрархічних структур є:
-
структура класів (ієрархія за номенклатурою);
-
структура об'єктів (ієрархія за складом).
Підклас звичайно називають породженням, або похідним класом. Клас, що стоїть вище за ієрархію, називають базовим класом об'єктів. Породжений клас наслідує всі властивості базового класу - структуру приватної пам'яті і методи. Таке відношення між породженим і базовим класами називають простим наслідуванням.
Крім наслідування, похідний клас може одержувати свої додаткові властивості.
Приклад. Є абстракція «План - випуску - продукції». Для кожного цеху він має бути спеціалізованим залежно від типу продукції (наприклад, одиниці виміру).
Процес об'єктно-орієнтованого проектування є зворотним процесом. При «зворотному проектуванні» основна увага приділяється процесу поступального й ітеративного розвитку різних моделей системи. В ООП використовується чотири види моделей (логічна, фізична, статична, динамічна) системи, що проектується. Кожна з моделей подається однією або кількома діаграмами.
Логічне подання системи відображується в: діаграмі класу, діаграмі об'єктів.
Компоненти системи: діаграма модулів, діаграма процесів.
Згадані діаграми реалізують статичне описання систем. Для описання динамічних компонентів системи використовується два види діаграм: діаграми перехідних станів і тимчасові діаграми.
Процес об'єктно-орієнтованого проектування можна подати у вигляді такої послідовності проектних процедур.
1. Ідентифікація класів і об'єктів даного рівня абстракції.
2. Ідентифікація семантики класів і об'єктів,
3. Ідентифікація зв'язків між класами та об'єктами.
4. Використання класів і об'єктів.
Процедура 1. Проводиться аналіз проблемної сфери (вводяться класи і об'єкти), розробляються основні механізми, що забезпечують необхідну поведінку об'єктів. Для виконання проектних дій проектувальник має засвоїти термінологію й основні теоретичні положення проблемної сфери.
Процедура 2. Проводиться опис шаблонів, відповідних класів і об'єктів. Будуються діаграми класів або об'єктів.
Процедура 3. Цей крок розглядається як продовження попереднього. Результат. Логічні моделі проекту. Модульні діаграми. Прототипи елементів системи, що проектується.
Процедура 4. Приймається рішення про включення у систему конкретних класів і об'єктів. Розподіляються класи та об'єкти по окремих модулях, а програми - по процесорах. Результат. Кінцева доробка структури класів. Кінцеві варіанти шаблонів. Модульні діаграми та діаграми процесів.
При традиційному циклі розробки ІС (Аналіз, Проектування, Програмування, Тестування, Складання) має місце лавиноподібне наростання складності. Недоліки традиційної схеми можна сформулювати у вигляді таких положень:
-
непридатність для розроблення складних програмних систем, що складаються з великої кількості автономних модулів;
-
несумісність з перспективними методами розроблення - можливостями автоматичного програмування, трансформації програм і застосування засобів, основаних на базах знань.
Цикл розробки ІС з використанням об'єктно-орієнтованого підходу характеризується ітеративним рухом з можливістю багаторазових поверненя на попередні стадії.
Порівняно з традиційними методами об'єктна технологія має такі переваги:
-
дає змогу розробникам збирати нові прикладні програми з готових модулів;
-
дозволяє користувачам і розробникам оперувати у програмі тими самими процесами, з якими їм доводиться мати справу на рівні звичайних практичних понять і термінів;
-
підтримує багатий набір форм подання інформації для засобів multimedia;
-
підтримує повторне використання окремих складових програмного забезпечення;
-
дозволяє створити більш відкриті системи;
-
знижує ризик під час розробки;
-
активізує пізнавальні здібності людини.