Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

IS v economici / Lekciya / Tema_4

.doc
Скачиваний:
5
Добавлен:
07.06.2015
Размер:
114.18 Кб
Скачать

«ІС та технологій в економіці» курс лекцій

Тема 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;

  • підтримує повторне використання окремих складових програмно­го забезпечення;

  • дозволяє створити більш відкриті системи;

  • знижує ризик під час розробки;

  • активізує пізнавальні здібності людини.

5

Соседние файлы в папке Lekciya