Лекція №5. Основи об'єктно-орієнтованого аналізу
Об'єктно-орієнтована методика моделювання ІС - відмінності від функціонального моделювання
Принципова відмінність між функціональним і об'єктним підходом полягає в способі декомпозиції системи. Об'єктно-орієнтований підхід використовує об'єктну декомпозицію, при цьому статична структура описується в термінах об'єктів і зв'язків між ними, а поведінка системи описується в термінах обміну повідомленнями між об'єктами. Метою методики є побудова бізнес-моделі організації, що дозволяє перейти від моделі сценаріїв використання до моделі, що визначає окремі об'єкт/и, що беруть участь в реалізації бізнес-функцій.
Концептуальною основою об'єктно-орієнтованого підходу є об'єктна модель, яка будується з урахуванням наступних принципів:
абстрагування;
модульність;
ієрархія;
типізація;
паралелізм;
стійкість.
Основними поняттями об'єктно-орієнтованого підходу є об'єкт і клас.
Об'єкт - предмет або явище, що має чітко певне поводження і мають станом, поведінкою і індивідуальністю. Структура та поведінка схожих об'єктів визначають загальний для них клас. Клас - це безліч об'єктів, пов'язаних спільністю структури і поведінки. Наступну групу важливих понять об'єктного підходу складають успадкування і поліморфізм. Поняття поліморфізм може бути інтерпретовано як здатність класу належати більш ніж одного типу. Спадкування означає побудову нових класів на основі існуючих з можливістю додавання або перевизначення даних і методів.
Важливим якістю об'єктного підходу є узгодженість моделей діяльності організації і моделей проектованої інформаційної системи від стадії формування вимог до стадії реалізації. За об'єктним моделями може бути простежено відображення реальних сутностей моделюється предметної області (організації) в об'єкти і класи інформаційної системи.
Більшість існуючих методів об'єктно-орієнтованого підходу включають мова моделювання та опис процесу моделювання. Процес - це опис кроків, які необхідно виконати при розробці проекту. В якості мови моделювання об'єктного підходу використовується уніфікована мова моделювання UML, який містить стандартний набір діаграм для моделювання.
Діаграма (Diagram) - це графічне подання безлічі елементів. Найчастіше вона зображується у вигляді зв'язного графа з вершинами (сутностями) і ребрами (відносинами) і являє собою певну проекцію системи.
Об'єктно-орієнтований підхід має наступні переваги:
Об'єктна декомпозиція дає можливість створювати моделі меншого розміру шляхом використання загальних механізмів, що забезпечують необхідну економію виразних засобів. Використання об'єктного підходу істотно підвищує рівень уніфікації розробки та придатність для повторного використання, що веде до створення середовища розробки та переходу до складного створення моделей.
Об'єктна декомпозиція дозволяє уникнути створення складних моделей, тому що вона припускає еволюційний шлях розвитку моделі на базі відносно невеликих підсистем. Об'єктна модель природна, оскільки орієнтована на людське сприйняття світу.
До недоліків об'єктно-орієнтованого підходу відносяться високі початкові витрати. Цей підхід не дає негайної віддачі. Ефект від його застосування позначається після розробки двох-трьох проектів та накопичення повторно використовуваних компонентів. Діаграми, що відображають специфіку об'єктного підходу, менш наочні.
Порівняння існуючих методик
У функціональних моделях (DFD-діаграм потоків даних, SADT-діаграмах) головними структурними компонентами є функції (операції, дії, роботи), які на діаграмах зв'язуються між собою потоками об'єктів.
Безперечною перевагою функціональних моделей є реалізація структурного підходу до проектування ІС за принципом "зверху-вниз", коли кожен функціональний блок може бути декомпозірован на безліч підфункції і т.д., виконуючи, таким чином, модульне проектування ІС. Для функціональних моделей характерні процедурна строгість декомпозиції ІС і наочність подання.
При функціональному підході об'єктні моделі даних у вигляді ER-діаграм "об'єкт - властивість - зв'язок" розробляються окремо. Для перевірки коректності моделювання предметної області між функціональними і об'єктними моделями встановлюються взаємно однозначні зв'язку.
Головний недолік функціональних моделей полягає в тому, що процеси і дані існують окремо один від одного - крім функціональної декомпозиції існує структура даних, що знаходиться на другому плані. Крім того, не ясні умови виконання процесів обробки інформації, які динамічно можуть змінюватися.
Перераховані недоліки функціональних моделей знімаються в об'єктно-орієнтованих моделях, в яких головним компонентом виступає структуроутворюючих клас об'єктів з набором функцій, які можуть звертатися до атрибутів цього класу.
Для класів об'єктів характерна ієрархія узагальнення, що дозволяє здійснювати спадкування не тільки атрибутів (властивостей) об'єктів від вищого класу об'єктів до нижчестоящому класу, але і функцій (методів).
У разі спадкування функцій можна абстрагуватися від конкретної реалізації процедур (абстрактні типи даних), які відрізняються для певних підкласів ситуацій. Це дає можливість звертатися до подібних програмним модулів з загальних імен (поліморфізм) і здійснювати повторне використання програмного коду при модифікації програмного забезпечення. Таким чином, адаптивність об'єктно-орієнтованих систем до зміни предметної області в порівнянні з функціональним підходом значно вище.
При об'єктно-орієнтованому підході змінюється і принцип проектування ІС. Спочатку виділяються класи об'єктів, а далі в залежності від можливих станів об'єктів (життєвого циклу об'єктів) визначаються методи обробки (функціональні процедури), що забезпечує найкращу реалізацію динамічного поводження інформаційної системи.
Для об'єктно-орієнтованого підходу розроблені графічні методи моделювання предметної області, узагальнені в мові уніфікованого моделювання UML. Однак по наочності представлення моделі користувачеві-замовнику об'єктно-орієнтовані моделі явно поступаються функціональним моделями.
При виборі методики моделювання предметної області зазвичай як критерію виступає ступінь її динамічності. Для більш регламентованих завдань більше підходять функціональні моделі, для більш адаптивних бізнес-процесів (керування робочими потоками, реалізації динамічних запитів до інформаційних сховищ)-- об'єктно-орієнтовані моделі. Проте в рамках однієї і тієї ж ІВ для різних класів задач можуть вимагатися різні види моделей, що описують одну й ту саму проблемну область. У такому випадку повинні використовуватися комбіновані моделі предметної області.
Синтетична методика
Як можна бачити з представленого огляду, кожна з розглянутих методик дозволяє вирішити задачу побудови формального опису робочих процедур досліджуваної системи. Всі методики дозволяють побудувати модель "як є" і "як повинно бути". З іншого боку, кожна з цих методик має істотні недоліки. їх можна підсумувати таким чином: недоліки застосування окремої методики лежать не в області опису реальних процесів, а в неповноті методичного підходу.
Функціональні методики в цілому краще дають уявлення про існуючі функції в організації, про методи їх реалізації, причому чим вище ступінь деталізації досліджуваного процесу, тим краще вони дозволяють описати систему. Під кращим описом у даному випадку розуміється найменша помилка при спробі за отриманою моделі передбачити поведінку реальної системи. На рівні окремих робочих процедур їх опис практично однозначно співпадає з фактичною реалізацією в потоці робіт.
На рівні загального опису системи функціональні методики допускають значний ступінь сваволі у виборі загальних інтерфейсів системи, її механізмів і т.д., тобто у визначенні меж системи. Добре описати систему на цьому рівні дозволяє об'єктний підхід, заснований на понятті сценарію використання. Ключовим є поняття про сценарій використання як про сеанс взаємодії дійової особи з системою, в результаті якого дійова особа отримує щось, що має для нього цінність. Використання критерію цінності для користувача дає можливість відкинути не мають значення деталі потоків робіт і зосередитися на тих функціях системи, які виправдовують її існування. Однак і в цьому випадку завдання визначення меж системи, виділення зовнішніх користувачів є складною.
Технологія потоків даних, що історично виникла першою, легко вирішує проблему кордонів системи, оскільки дозволяє за рахунок аналізу інформаційних потоків виділити зовнішні сутності і визначити основний внутрішній процес. Однак відсутність виділених керуючих процесів, потоків і подієвої орієнтованості не дозволяє запропонувати цю методику, як єдиною.
Найкращим способом подолання недоліків розглянутих методик є формування синтетичної методики, що поєднує різні етапи окремих методик. При цьому з кожної методики необхідно взяти частину методології, найбільш повно і формально викладену, і забезпечити можливість обміну результатами на різних етапах застосування синергетичної методики. У бінес- моделюванні неявним чином йде формування такої синергетичної методики.
Ідея синтетичної методики полягає у послідовному застосуванні функціонального та об'єктного підходу з урахуванням можливості реінжинірингу існуючої ситуації.
Розглянемо застосування синтетичної методики на прикладі розробки адміністративного регламенту.
При побудові адміністративних регламентів виділяються наступні стадії:
- Визначення меж системи. На цій стадії за допомогою аналізу потоків даних виділяють зовнішні сутності і власне модельованих систему.
- Виділення сценаріїв використання системи. На цій стадії за допомогою критерію корисності будують для кожної зовнішньої суті набір сценаріїв використання системи.
- Додавання системних сценаріїв використання. На цій стадії визначають сценарії, необхідні для реалізації цілей системи, відмінних від цілей користувачів.
- Побудова діаграми активностей сценаріїв використання. На цій стадії будують набір дій системи, що призводять до реалізації сценаріїв використання;
- Функціональна декомпозиція діаграм активностей як контекстних діаграм методики IDEF0.
- Формальне опис окремих функціональних активностей у вигляді адміністративного регламенту (із застосуванням різних нотацій).