logo search
Береза Підр

14.7. Об'єктно-орієнтоване проектування іс

Відмінною рисою сучасних ІС є їхня складність, що зростає. Це умовлено розвитком технічних засобів, які дозволяють реалізувати все більшу кількість інформаційних функцій у складі однієї ІС. Організація ІС на мережах ЕОМ, розподілені бази даних, інтерактивний графічний інтерфейс користувача, безпаперовий документообіг - ці і багато інших аспектів реалізації ІС значно ускладнять процес її проектування. Друга вада пов'язана з тим, що проект, зведений до стадії впровадження, уже починає старіти й вимагає модифікації. Це неминучий наслідок зміни інструментарію ІС і змін у самому об'єкті управління або оточуючому його середовищі. Отже, вн-икає задача адаптації програмного забезпечення і технологічних процесів обробки інформації в ІС. Модифікація складних програмних комплексів, реалізованих на основі процедурних мов програмування, являє собою важко розв'язувану проблему задачі адаптації ІС.

Відповіддю на проблему зростаючої складності в ІС стало виникнення об'єктно-орієнтованого підходу. У мережах об'єктного підходу виділяють:

об'єктно-орієнтоване програмування (ООР),

об'єктно-орієнтоване проектування (00П),

об'єктно-орієнтований аналіз (ООА).

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

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

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

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

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

Таким чином, ідеальна гіпотетична мова програмування повинна представляти алгоритм розв'язання задачі на основі понятійного апа­рату заданої проблемної сфери. Вихід бачиться у використанні універсальної метамови для всіх предметних областей - мови теорії систем і системного аналізу. Основні поняття цієї мови: об'єкт, клас об'єктів, атрибут (властивість), процес, функція, метод, структура то­що. На цьому й базується ключова ідея ООР - створення мовних за­собів, які на основі абстрактних типів даних дозволяють специфі­кувати нові класи програмних об'єктів, адекватних об'єктам конкрет­ної проблемної сфери.

Об'єктні програми складаються з готових компонентів-об'єктів. ЦІ об'єкти можуть відповідати:

- об'єктам або процесам реального світу (деталь, документ, клієнт);

- абстрактним поняттям (екран, таблиця, графічний елемент то­що).

У традиційних програмах дані відділені від процедур і методів, в об'єктних — дані та процедури об'єднуються в об'єкті.

Приклад 1. Об'єкт — «клієнт». Усе, що відомо користувачеві про клієнта, включається у цей об'єкт. Дії з клієнтом реалізуються як ме­тоди (функції) для даного об'єкта, що також входять в опис об'єкта.

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

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

Приклад 2. Розглянемо описання об'єктів мовою Турбо Паскаль (YG>0). Об'єкт-структура даних, що містить поля даних різних типів (у тому числі й абстрактні) і заголовки методів.

Ім'я Об'єкта=оbyect(Ім'я Класу)

поле; ...; поле;

метод;...; метод;

еnd;

Метод — це процедура або функція, оголошена всередині оголо­шення елемента типу об'єкт

ргосеduге Ім'я Об'єкта . Метод

(параметр, ..., параметр n) '

bеgіn

еnd;

Оголошення методу всередині оголошення об'єкта:

ргосеduге Метод(параметр, .„, параметрn).

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

Вперше поняття класів і об'єктів введені у мові Simula67. У сис­теміSmalltalk-80 ідеїSіmulа доведені до логічного завершення-усі дії виконуються на основі класів. У 70-х роках створені мови, що ре­алізують дії абстрактних даних:Alpharad, СLV, Еuclid, Моdulа. Зане­сення об'єктно-орієнтованого підходу у С привело до створення мов С ++ іObjectiioeС. На основі мови РаscalвиниклиObject Pascal, ЕiffeliАdа. З'явились такі діалекти LIPS, якLООРSі СLOS, з можливостями мовSimulaіSmalltalk.

Принципова відмінність методів програмування і методів проектування полягає в тому, що методи програмування орієнтовані на ефективне вико­ристання механізмів мови програмування а методи проектування спря­мовані на ефективне і правильне структурування складних систем.

Об'єктно-орієнтоване проектування — це методо­логія проектування, яка поєднує в собі процес об'єктної декомпозиції та прийоми подання як логічної і фізичної, так і динамічної моделей системи, що проектується.

Моделі, на яких базується об'єктно-орієнтоване проектування, формуються в результаті об'єктно-орієнтованого аналізу.

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

Першим і головним прийомом розв'язання складних задач в ООПє абстрагування. Абстрагування концентрує увагу на зовнішніх особ­ливостях об'єкта і дозволяє відокремити істотні особливості поведінки від деталей їх здійснення.

Визначення. Абстракція — це такі істотні характеристики деякого об'єкта, які відрізняють його від усіх інших видів об'єктів і таким чином, чітко відокремлюють особливості даного об'єкта з позиції по­дальшого розгляду й аналізу. Наприклад:

Абстракція сутності Об'єкт являє собою модель

об'єкта істотних сторін проблемної сфери

Абстракція поведінки Об'єкт складається з узагальненої

множини операцій, кожна з яких

виконує певну функцію

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

Структура локальної пам'яті об'єкта і реалізація методів може бути (має бути) прихована від зовнішнього спостерігача, тобто будь-якого іншого об'єкта. Ця властивість класів об'єктів має назви “приховані дані”, «обмеження доступу», «інкапсуляція властивостей».

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

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

Основними видами ієрархічних структур є:

- структура класів (ієрархія за номенклатурою);

- структура об'єктів (ієрархія за складом).

Підклас звичайно називають породженням, або похідним класом.

Клас, що стоїть вище за ієрархію, називають базовим класом об'єктів.

Породжений клас наслідує всі властивості базового класу - струк­туру приватної пам'яті і методи. Таке відношення між породженим і базовим класами називають простим наслідуванням.

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

Приклад. Є абстракція «План - випуску - продукції». Для кож­ного цеху він мас бути спеціалізованим залежно від типу продукції (наприклад, одиниці виміру).

Процес об'єктно-орієнтованого проектування є зворотним проце­сом. При «зворотному проектуванні» основна увага приділяється про­цесу поступального й ітеративного розвитку різних моделей системи. В ООП використовується чотири види моделей (логічна, фізична, ста­тична, динамічна) системи, що проектується. Кожна з моделей пода­ється однією або кількома діаграмами.

Логічне подання системи відображується в: діаграмі класу, діаграмі об'єктів.

Компоненти системи: діаграма модулів, діаграма процесів.

Згадані діаграми реалізують статичне описання систем. Для опи­сання динамічних компонентів системи використовується два види діаграм: діаграми перехідних станів і тимчасові діаграми.

Процес об'єктно-орієнтованого проектування можна подати у виг­ляді такої послідовності проектних процедур.

1. Ідентифікація класів і об'єктів даного рівня абстракції.

2. Ідентифікація семантики класів і об'єктів,

3. Ідентифікація зв'язків між класами та об'єктами.

4. Використання класів і об'єктів.

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

Процедура 2. Проводиться опис шаблонів, відповідних класів і об'єктів. Будуються діаграми класів або об'єктів. (рис. 14. 1).

Шаблон об'єкта:

Об'єкт Зміст

Ім'я - ідентифікатор

Документація - текст

Клас - ім'я класу

Сталість - сталий (статичний) динамічний

Ім'я - ідентифікатор

Документація - текст

Видимість - експорт./ відокр./ імпорт.

Множинність - 0 / 1 / n

Ієрархія:

Суперклас - список імен класів

Метаклас - ім'я класу

Узагальнені параметри - список параметрів

Інтерфейс/Реалізація - загальнодоступна/захи­щена

Використання: - список імен класів

Поля: - список імен полів

Операції: - список операцій класів

Кінцевий автомат - діаграма переходу станів

Паралельність - послідовність виконання (відстрочене) активне

Обсяг пам`яті - текст

Сталість - статична (динамічна)