- •1.1. Методологія процедурно‑ орієнтованого програмування
- •1.2. Методологія об'єктно-орієнтованого програмування
- •1.3. Методологія об'єктно-орієнтованого аналізу і проектування
- •1.4. Методологія системного аналізу і системного моделювання
- •Розділ 2
- •2.1. Передісторія. Математичні основи
- •Мал. 2.4. Приклади неорієнтованого (а) і орієнтованого (б) графів
- •Мал. 2.5. Приклади неорієнтованого (а) і орієнтованого (б) дерев
- •Мал. 2.6. Ієрархічні схеми неорієнтованого дерева (а) і орієнтованого дерева (б)
- •2.2. Діаграми структурного системного аналізу
- •I (Input) – вхід, т. Е. Все, що поступає в процес або споживається процесом.
- •2.3. Основні етапи розвитку uml
- •2. Забезпечити початкові поняття язика uml можливістю розширення і спеціалізації для більш точного представлення моделей систем в конкретній наочній області.
- •3. Опис язика uml повинен підтримувати таку специфікацію моделей, яка не залежить від конкретних язиків програмування і інструментальних засобів проектування програмних систем.
- •4. Опис язика uml повинен включати семантичний базис для розуміння загальних особливостей ооап.
- •7. Інтегрувати в себе новітні і якнайкращі досягнення практики ооап.
- •3.2. Загальна структура язика uml
- •3.3. Пакети в язиці uml
- •3.4. Основні пакети метамоделі язика uml
- •3.5. Специфіка опису метамоделі язика uml
- •3.6. Особливості зображення діаграм язика uml
- •4.1. Варіант використовування
- •4.2. Актори
- •4.3. Інтерфейси
- •4.4. Примітки
- •4.5. Відносини на діаграмі варіантів використовування
- •4.6. Приклад побудови діаграми варіантів використовування
- •4.7. Рекомендації по розробці діаграм варіантів використовування
- •5.1. Клас
- •5.2. Відносини між класами
- •5.5. Шаблони або класи, що параметризуються
- •5.6. Рекомендації по побудові діаграм класів
- •6.1. Автомати
- •Include – ця мітка використовується для звернення до підавтомата, при цьому наступний за нею вираз дії містить ім'я цього підавтомата.
- •6.3. Перехід
- •6.4. Складовий стан і підстан
- •6.5. Історичний стан
- •Мал. 6.10. Графічне зображення недавнього (а) і давнього (б) історичного стану
- •6.6. Складні переходи
- •Мал. 6.11. Графічне зображення паралельного переходу з паралельних станів (а) і паралельного переходу в паралельні стани (б)
- •6.7. Заключні рекомендації по побудові діаграм станів
- •7.1. Стан дії
- •7.2. Переходи
- •7.5. Рекомендації по побудові діаграм діяльності
- •8.2. Повідомлення
- •Мал. 8.7. Діаграма послідовності із стереотипними значеннями повідомлень
- •8.3. Приклад побудови діаграми послідовності
- •8.4. Заключні рекомендації по побудові діаграм послідовності
- •9.1. Кооперація
- •9.3. Зв'язки
- •9.4. Повідомлення
- •9.6. Заключні рекомендації по побудові діаграм кооперації
- •10.1. Компоненти
- •10.2. Інтерфейси
- •10.3. Залежність
- •10.4. Рекомендації по побудові діаграми компонентів
- •11.1. Вузол
- •11.2. З'єднання
- •Мал. 11.4. Фрагмент діаграми розгортання із з'єднаннями меходу вузлами
- •11.3. Рекомендації по побудові діаграми розгортання
- •12.1. Загальна характеристика case‑ засобу Rational Rose 98/2000
- •12.2. Особливості робочого інтерфейсу Rational Rose
- •12.3. Початок роботи над проектом в середовищі Rational Rose
- •12.4. Розробка діаграми варіантів використовування в середовищі Rational Rose
- •12.5. Розробка діаграми класів в середовищі Rational Rose
- •12.6. Розробка діаграми станів в середовищі Rational Rose
- •12.7. Розробка діаграми послідовності в середовищі Rational Rose
- •12.8. Розробка діаграми кооперації в середовищі Rational Rose
- •12.9. Розробка діаграми компонентів в середовищі Rational Rose
- •12.10. Розробка діаграми розгортання в середовищі Rational Rose
12.9. Розробка діаграми компонентів в середовищі Rational Rose
Діаграма компонентів є частиною фізичного представлення моделі і грає важливу роль в процесі ООАП. Активізація діаграми компонентів може бути виконана одним з наступних способів:
Клацнути на кнопці із зображенням діаграми компонентів на стандартній панелі інструментів.
Розкрити компонентне уявлення в браузере (Component View) і двічі клацнути на піктограмі Main (Головна).
Через пункт меню Browse‑ »Component Diagram (Браузер‑ »Диаграмма компонентів).
Після активізації діаграми компонентів спеціальна панель інструментів придбає наступний вигляд (мал. 12.18).
Мал. 12.18. Зовнішній вигляд спеціальної панелі інструментів для діаграми компонентів
Додавання і видалення елементів відбувається аналогічно, проте для кожного компоненту можна визначити різні деталі, такі як стереотип, язик програмування, декларації, класи. Робота з цими деталями компонентів здійснюється через специфікацію компоненту, доступну після виклику контекстного меню.
Нижче наводиться приклад графічного зображення елементів діаграми компонентів (мал. 12.19).
При роботі з діаграмою компонентів можна створювати пакети і компоненти, змінювати їх специфікацію і залежність між різними елементами діаграми. При встановленні реалізації класів на компоненті можна виділити клас в браузере і перетягнути його на потрібний компонент діаграми.
Мал. 12.19. Приклад графічного зображення діаграми компонентів в середовищі Rational Rose
12.10. Розробка діаграми розгортання в середовищі Rational Rose
Діаграма розгортання є другою складовою частиною фізичного представлення моделі. Активізація діаграми розгортання може бути виконана одним з наступних способів:
Клацнути на кнопці із зображенням діаграми розгортання на стандартній панелі інструментів.
Двічі клацнути на піктограмі представлення розгортання в браузере (Deployment View).
Через пункт меню Browse‑ »Deployment Diagram (Браузер‑ »Диаграмма розгортання).
Після активізації діаграми розгортання спеціальна панель інструментів придбає наступний вигляд (мал. 12.20).
Мал. 12.20. Зовнішній вигляд спеціальної панелі інструментів для діаграми розгортання
Робота з діаграмою розгортання полягає в створенні процесорів і пристроїв, їх специфікації, встановленні зв'язків між ними, а також додаванні і специфікації процесів. Стосовно окремих процесорів можна використовувати стереотипи.
Нижче наводиться приклад графічного зображення діаграми розгортання (мал. 12.21).
Мал. 12.21. Приклад графічного зображення діаграми розгортання в середовищі Rational Rose
Однією з наймогутніших властивостей середовища Rational Rose є можливість генерації програмного коду після побудови моделі. Як вже наголошувалося раніше, можливість генерації тексту програми на тому або іншому язиці програмування залежить від встановленої версії Rational Rose.
Загальна послідовність дій, які необхідно виконати для цього, складається з шести етапів:
Перевірка моделі незалежно від вибору язика генерації коду.
Створення компонентів для реалізації класів.
Відображення класів на компоненти.
Установка властивостей генерації програмного коду.
Вибір класу, компоненту або пакету.
Генерація програмного коду.
Особливості виконання кожного з етапів можуть змінюватися залежно від вибору язика. В середовищі Rational Rose передбачено завдання достатньо великого числа властивостей, що характеризують як окремі класи, так і проект в цілому. Проте опис цих властивостей виходить за межі справжньої книги.
Висновок
В даний час повністю специфікована і документована версія 1.3 язики UML і продовжується подальша робота по його розвитку. Хоча вже анонсована наступна версія язика UML – 1.4, на момент написання книги остаточна документація за цією версією ще не специфікована. Можливо, з цієї причини наступною версією стане UML 2.0, роботу над якою планується розвернути в 2001 році. Хід цієї роботи і її стан відображаються на офіційному сайті OMG: http://www.omg.org/. Там же містяться повні специфікації стандарту OMG‑ UML, надані для вільного доступу.
Іншим джерелом інформації по язику UML в Інтернеті є сайт компанії Rational Software Corp.: http://www.rational.com/, в якій зосереджені основні розробники і з боку якої здійснюється загальна координація роботи над черговими версіями язика. Ця компанія також є розробником CASE‑ засобу Rational Rose 98/2000, в якому реалізуються поточні доповнення язика UML.
З вітчизняних ресурсів не можна не згадати сайт компанії «Інтерфейс» – http://www.interface.ru/, де міститься інформація по багатьох сучасних CASE‑ засобах, розглядаються їх характеристики і можливості, а також особливості окремих технологій ООАП.
Перспективи подальшого розвитку UML пов'язані із становленням і інтенсивним розвитком нової парадигми об'єктно-орієнтованого аналізу – компонентної розробки додатків (Component‑ Based Development – CBD). В зв'язку з цим розгорнена робота над додатковою специфікацією язика UML стосовно технологій CORBA і СОМ+. Йдеться про розробку так званих профілів, що містять нотацію всіх необхідних елементів для уявлення в язиці UML компонентів відповідних технологій. При цьому інтенсивно використовується механізм розширення язика UML за рахунок додавання нових стереотипів, помічених значень і обмежень.
Язик UML вже зараз знаходить широке вживання як неофіційний стандарт в процесі розробки програмних систем, пов'язаних з такими областями, як моделювання бізнесу, управління вимогами, аналіз і проектування, програмування і тестування. Стосовно цих процесів в язиці UML уніфіковані стандартні позначення основних елементів відповідних наочних областей.
Зокрема, для моделювання бізнес‑ процесів можуть бути використані: стосовно підсистем – стереотипи «organization unit» і «work unit», для класів – стереотипи «worker», «case worker», «internal worker». При цьому, наприклад, стереотип «worker» служить для позначення класу, який представляє абстракцію людини, що виконує певну діяльність або роботу в бізнес‑ системі. Працівник або співробітник взаємодіє з іншими співробітниками підсистеми в процесі виконання окремих операцій, створюючих бізнес‑ логіку процесу.
Слід також відзначити, що розвиток язика UML на основі включення в його нотацію додаткових елементів і стереотипів стимулює розробку відповідних інструментальних CASE‑ засобів. Можна з упевненістю припустити, що ця область розвитку інформаційних технологій має широкі перспективи і стратегічне значення не тільки як язик спілкування між замовниками і розробниками програмних систем, але і для документування проектів в цілому. При цьому досягається необхідний рівень стандартизації і уніфікації всіх позначень, що використовуються для цієї мети.
Розробивши модель і специфицировав її на язиці UML, розробник має всі підстави бути понятим і по гідності оціненим своїми колегами. При цьому можуть бути виключені ситуації, коли той або інший розробник застосовує свою власну графічну нотацію для представлення тих або інших аспектів моделі, що практично виключає її розуміння іншими фахівцями у разі нетривіальності початкової моделі.
Не менше важливий аспект вживання язика UML пов'язаний з професійною підготовкою відповідних фахівців. Йдеться про те, що знання різних наукових дисциплін характеризують різні аспекти реального миру. При цьому принципи системного аналізу дозволяють розглядати ті або інші об'єкти як системи.
Подальша розробка моделі системи, направлена на рішення певних проблем, може зажадати залучення знань з різних дисциплін. З цієї точки зору язик UML може бути використаний не тільки для уніфікації представлень цих знань, але що не менше важливо – для їх інтеграції, направленої на підвищення адекватності много‑ модельных представлень складних систем.
Можливо з часом язик UML стане тим «есперанто», на якому зможуть спілкуватися математики, системні аналітики, фізики, програмісти, менеджери, економісти і фахівці інших професій, представляючи свої професійні знання в уніфікованому вигляді. Адже, по суті, кожний з фахівців оперує модельними уявленнями в своїй області знань. І саме цей модельний аспект може бути специфікований засобами язика UML.
У зв'язку з цим значення язика UML істотно зростає, оскільки він все більш придбаває риси язика представлення знань. При цьому наявність в язиці UML образотворчих засобів для представлення структури і поведінки моделі дозволяє досягти адекватного представлення декларативних і процедурних знань і, що не менше важливе, встановити між цими формами знань семантичну відповідність. Всі ці особливості язика UML дозволяють зробити висновок про те, що він має найсерйозніші перспективи вже в найближчому майбутньому.
