Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування інформаційних систем.doc
Скачиваний:
95
Добавлен:
21.09.2019
Размер:
28.77 Mб
Скачать

3.3. Методологія об'єктно-орієнтованого аналізу і проектування

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

Для виділення або ідентифікації компонент предметної області було запропоновано декілька способів і правил. Сам цей процес отримав назву концептуалізації предметної області. При цьому під компонентою розуміють деяку абстрактну одиницю, яка володіє функціональністю, тобто може виконувати певні дії, пов'язані з вирішенням поставлених завдань. На попередньому етапі концептуалізації рекомендується використовувати так звані CRC-карточки (Component, Responsibility, Collaborator – компонента, обов'язок, співробітники) [1]. Для кожної виділеної компоненти предметної області розробляється власна CRC-карточка (рис. 3.6).

Рис. 3.6. Загальний вигляд CRC-карточки для опису компонент предметної області

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

Розділення процесу розроблення складних програмних застосувань на окремі етапи сприяло становленню концепції життєвого циклу програми. Під життєвим циклом (ЖЦ) програми розуміють сукупність взаємозв'язаних і наступних в часі етапів, починаючи від розроблення вимог до неї і закінчуючи повною відмовою від її використання. Стандарт ISO/IEC 12207, хоча і описує загальну структуру ЖЦ програми, не конкретизує деталі виконання тих або інших етапів. Згідно прийнятим поглядам ЖЦ програми складається з таких етапів:

  • аналізу предметної області і формулювання вимог до програми,

  • проектування структури програми,

  • реалізації програми в кодах (власне програмування),

  • впровадження програми,

  • супровід програми,

  • відмови від використання програми.

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

Етап проектування структури програми полягає в розробленні детальної схеми майбутньої програми, на якій вказуються класи, їх властивості і методи, а також різні взаємозв'язки між ними. Як правило, на цьому етапі можуть брати участь в роботі аналітики, архітектори і окремі кваліфіковані програмісти. Результатом даного етапу повинна стати деталізована схема програми, на якій вказуються всі класи і взаємозв'язки між ними в процесі функціонування програми. Згідно методології ООАП, саме дана схема повинна "служити” початковою інформацією для написання програмних кодів.

Етап програмування навряд чи потребує уточнення, оскільки є традиційним для програмістів. Поява інструментаріїв швидкого розроблення програм (Rapid Application Development, RAD) дозволила істотно скоротити час, і витрати на виконання цього етапу. Результатом цього етапу є програмне застосування, яке володіє необхідною функціональністю і здатне вирішувати потрібні завдання в конкретній предметній області.

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

Примітка

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

Методологія ООАП тісно пов'язана з концепцією автоматизованого розроблення програмного забезпечення (Computer Aided Software Engineering, CASE). Поява перших CASE–засобів була зустрінута з певною насторогою (див. розділ 13). З часом з'явилися як захоплені відгуки про їх застосування, так і критичні оцінки їх можливостей. Причин для таких суперечливих думок було декілька. Перша з них полягає в тому, що ранні CASE-засоби були простою надбудовою над деякою системою керування базами даних (СКБД). Хоча візуалізація процесу розроблення концептуальної схеми БД має важливе значення, вона не вирішує проблем розроблення інформаційних систем інших типів.

Друга причина має складнішу природу, оскільки пов'язана з графічною нотацією, реалізованою в тому або іншому CASE-засобі. Якщо мови програмування мають строгий синтаксис, то спроби запропонувати відповідний синтаксис для візуального представлення концептуальних схем БД були сприйняті далеко неоднозначно. З'явилося декілька підходів, які детальніше будуть розглянуті в розділі 14. На цьому фоні поява уніфікованої мови моделювання (Unified Modeling Language, UML), яка орієнтована на вирішення завдань перших двох етапів ЖЦ програм, була сприйнята з великим оптимізмом всім співтовариством корпоративних програмістів.

Останнє, на що слід звернути увагу, це усвідомлення необхідності побудови попередньої моделі програмної системи, яку, згідно сучасним концепціям ООАП, слід вважати результатом перших етапів ЖЦ програми. Оскільки мова UML навіть у своїй назві має відношення до моделювання, слід додатково зупинитися на цілому ряді достатньо важливих питань. Таким чином, ми переходимо до теми, яка традиційно не розглядається у виданнях з ООАП, але має найпряміше відношення до процесу побудови моделей і, власне, моделювання. Мова йде про методології системного аналізу і системного моделювання.