Об'єктно-орієнтоване проектування ІС
Відмінною рисою сучасних ІС є їхня складність, що зростає. Це умовлено розвитком технічних засобів, які дозволяють реалізувати все більшу кількість інформаційних функцій у складі однієї ІС. Організація ІС на мережах ЕОМ, розподілені бази даних, інтерактивний графічний інтерфейс користувача, безпаперовий документообіг - ці і багато інших аспектів реалізації ІС значно ускладнять процес її проектування. Друга вада пов'язана з тим, що проект, зведений до стадії впровадження, уже починає старіти й вимагає модифікації. Це неминучий наслідок зміни інструментарію ІС і змін у самому об'єкті управління або оточуючому його середовищі. Отже, вн-икає задача адаптації програмного забезпечення і технологічних процесів обробки інформації в ІС. Модифікація складних програмних комплексів, реалізованих на основі процедурних мов програмування, являє собою важко розв'язувану проблему задачі адаптації ІС.
Відповіддю на проблему зростаючої складності в ІС стало виникнення об'єктно-орієнтованого підходу. У мережах об'єктного підходу виділяють:
об'єктно-орієнтоване програмування (ООР),
об'єктно-орієнтоване проектування (00П),
об'єктно-орієнтований аналіз (ООА).
Теоретичною основою цих методів і їх концептуальним базисом є теорія систем і системний аналіз. Об'єктна технологія принципово вирізняється від усіх існуючих раніше технологій проектування. Розглянемо основні поняття і положення об'єктно-орієнтованої технології проектування.
З деякою часткою спрощення можна вважати, що кінцевою метою проектування ІС є створення комплексу програм, які реалізують задані функції системи. Основною метою розробки програми є переклад задачі з мови проблемної сфери на мову комп'ютера.
Традиційний підхід до проектування полягає у послідовній побудові ряду моделей (інформаційна модель, описання структур файлів довідник документів, економіко-математична модель, схема алгоритму), останньою з яких є модель мовою реалізації (програма).
Особливістю цього підходу є те, що предметна сфера відображається у наперед визначені управляючі структури і структури даних.
Мова проблемної сфери - це набір понять, з допомогою яких може бути описана вихідна задача. У той самий час будь-яка мова комп'ютера подає вихідну задачу у вигляді сукупності даних і процедур їх перетворення.
Таким чином, ідеальна гіпотетична мова програмування повинна представляти алгоритм розв'язання задачі на основі понятійного апарату заданої проблемної сфери. Вихід бачиться у використанні універсальної метамови для всіх предметних областей - мови теорії систем і системного аналізу. Основні поняття цієї мови: об'єкт, клас об'єктів, атрибут (властивість), процес, функція, метод, структура тощо. На цьому й базується ключова ідея ООР - створення мовних засобів, які на основі абстрактних типів даних дозволяють специфікувати нові класи програмних об'єктів, адекватних об'єктам конкретної проблемної сфери.
Об'єктні програми складаються з готових компонентів-об'єктів. ЦІ об'єкти можуть відповідати:
- об'єктам або процесам реального світу (деталь, документ, клієнт);
- абстрактним поняттям (екран, таблиця, графічний елемент тощо).
У традиційних програмах дані відділені від процедур і методів, в об'єктних — дані та процедури об'єднуються в об'єкті.
Приклад 1. Об'єкт — «клієнт». Усе, що відомо користувачеві про клієнта, включається у цей об'єкт. Дії з клієнтом реалізуються як методи (функції) для даного об'єкта, що також входять в опис об'єкта.
Таким чином, основа ООП — формування з простих об'єктів, які складаються з даних і набору функцій, більш складних, здатних моделювати об'єкти проблемної сфери.
Проведений огляд дозволяє зробити цікавий висновок: об'єктно-орієнтована технологія стирає межу між «чистим» проектувальником (системним аналітиком) і «чистим» програмістом. З'являється новий тип розробника — проектувальник-програміст, здатний самостійно поставити, спроектувати задачу і реалізувати її у вигляді об'сктно-орієнтованої програми.
Приклад 2. Розглянемо описання об'єктів мовою Турбо Паскаль (YG>0). Об'єкт-структура даних, що містить поля даних різних типів (у тому числі й абстрактні) і заголовки методів.
Ім'я Об'єкта=оbyect (Ім'я Класу)
поле; ...; поле;
метод;...; метод;
еnd;
Метод — це процедура або функція, оголошена всередині оголошення елемента типу об'єкт
ргосеduге Ім'я Об'єкта . Метод
(параметр, ..., параметр n) '
bеgіn
еnd;
Оголошення методу всередині оголошення об'єкта:
ргосеduге Метод ( параметр, .„, параметр n).
Історично склалося так, що першочергово були розроблені мови ООР у відсутність теорії об'єктно-орієнтованого проектування. І тільки після усвідомлення спеціалістами в області інформатики, що ООП є основою для чергового перевороту в інформаційних технологіях, почалась активна розробка теорії об'єктно-орієнтованого аналізу та проектування.
Вперше поняття класів і об'єктів введені у мові 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. Проводиться опис шаблонів, відповідних класів і об'єктів. Будуються діаграми класів або об'єктів. (рис. 14. 1).
Шаблон об'єкта:
Об'єкт Зміст
Ім'я - ідентифікатор
Документація - текст
Клас - ім'я класу
Сталість - сталий (статичний) динамічний
Ім'я - ідентифікатор
Документація - текст
Видимість - експорт./ відокр./ імпорт.
Множинність - 0 / 1 / n
Ієрархія:
Суперклас - список імен класів
Метаклас - ім'я класу
Узагальнені параметри - список параметрів
Інтерфейс/Реалізація - загальнодоступна/захищена
Використання: - список імен класів
Поля: - список імен полів
Операції: - список операцій класів
Кінцевий автомат - діаграма переходу станів
Паралельність - послідовність виконання (відстрочене) активне
Обсяг пам`яті - текст
Сталість - статична (динамічна)
Дата добавления: 2014-12-04; просмотров: 993;