- •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
2. Забезпечити початкові поняття язика uml можливістю розширення і спеціалізації для більш точного представлення моделей систем в конкретній наочній області.
Хоча язик UML є формальним язиком – специфікацій, формальність його опису відрізняється від синтаксису як традиційних формально‑ логічних язиків, так і відомих язиків програмування. Розробники з OMG припускають, що язик UML як ніякий інший може бути пристосований для конкретних наочних областей. Це стає можливим з тієї причини, що в самому описі язика UML закладений механізм розширення базових понять, який є самостійним елементом язика і має власний опис у формі правил розширення.
В той же час розробники з OMG вважають украй небажаним перевизначення базових понять язика по якій би то не було причині. Це може привести до неоднозначної інтерпретації їх семантики і можливої плутанини. Базові поняття язика UML не слід змінювати більше, ніж це необхідне для їх розширення. Всі користувачі повинні бути здатні будувати моделі систем для більшості звичайних додатків з використанням тільки базових конструкцій язика UML без вживання механізму розширення. При цьому нові поняття і нотації доцільно застосовувати тільки в тих ситуаціях, коли наявних базових понять явно недостатньо для побудови моделей системи.
Язик UML допускає також спеціалізацію базових понять. Йдеться про те, що в конкретных7приложениях користувачі повинні уміти доповнювати наявні базові поняття новими характеристиками або властивостями, які не суперечать семантиці цих понять в язиці UML.
3. Опис язика uml повинен підтримувати таку специфікацію моделей, яка не залежить від конкретних язиків програмування і інструментальних засобів проектування програмних систем.
Йдеться про те, що жодна з конструкцій язика UML не повинна залежати від особливостей її реалізації у відомих язиках програмування. Тобто, хоча окремі поняття язика UML і пов'язані з останніми дуже тісно, їх жорстка інтерпретація у формі яких би то не було конструкцій програмування не може бути визнана коректною. Іншими словами, розробники з OMG вважають необхідним властивістю язика UML його контекстно‑ програмну незалежність.
З другого боку, язик UML повинен володіти потенційною можливістю реалізації своїх конструкцій на тому або іншому язиці програмування. Звичайно, в першу чергу маються на увазі язики, що підтримують концепцію ООП, такі як C++, Java, Object Pascal. Саме ця властивість язика UML робить його сучасним засобом рішення задач моделювання складних систем. В той же час, передбачається, що для програмної підтримки конструкцій язика UML можуть бути розроблені спеціальні інструментальні CASE‑ засоби. Наявність останніх має принципове значення для широкого розповсюдження і використовування язика UML.
4. Опис язика uml повинен включати семантичний базис для розуміння загальних особливостей ооап.
Кажучи про цю особливість, мають у вигляді самодостатність язика UML для розуміння не тільки його базових конструкцій, але що не менше важливо – розуміння загальних принципів ООАП. В зв'язку з цим необхідно відзначити, що оскільки язик UML не є язиком програмування, а служить засобом для вирішення задач об'єктно-орієнтованого моделювання систем, опис язика UML повинен по можливості включати всі необхідні поняття для ООАП. Без цієї властивості язик UML може виявитися даремною і незатребуваною більшістю користувачів, які не знайомі з проблематикою ООАП складних систем.
З другого боку, які б то не було посилання на додаткові джерела, що містять важливу для розуміння язика UML інформацію, на думку розробників з OMG, повинні бути виключені. Це дозволить уникнути неоднозначного тлумачення принципових особливостей процесу ООАП і їх реалізації у формі базових конструкцій язика UML.
5. Заохочувати розвиток ринку об'єктних інструментальних засобів.
Більше 800 ведучих виробників програмних і апаратних засобів, зусилля яких зосереджені в рамках OMG, бачать перспективи розвитку сучасних інформаційних технологій і основу свого комерційного успіху в широкому просуванні на ринок інструментальних засобів, що підтримують об'єктні технології. Кажучи ж про об'єктні технології, розробники з OMG мають у вигляді, перш за все, сукупність технологічних рішень CORBA і UML. З цієї точки зору язику UML відводиться роль базового засобу для опису і документування різних об'єктних компонентів CORBA.
6. Сприяти розповсюдженню об'єктних технологій і відповідних понять ООАП.
Ця задача тісно пов'язана з попередньою і має з нею багато загального. Якщо виключити з розгляду рекламні заяви розробників про виняткову гнучкість і потужність язика UML, а спробувати скласти об'єктивну картину можливостей цього язика, то можна прийти до наступного висновку. Слід визнати, що зусилля. достатньо великої групи розробників були направлені на інтеграцію в рамках язика UML багатьох відомої техніки візуального моделювання, яка успішно зарекомендувала себе на практиці (див. розділ 2). Хоча це привело до ускладнення язика UML в порівнянні з відомими нотаціями структурного системного аналізу, платнею за складність є дійсно висока гнучкість і образотворчі можливості вже перших версій язика UML. У свою чергу, використовування язика UML для вирішення всіляких практичних задач тільки сприятиме його подальшому вдосконаленню, а значить і подальшому розвитку об'єктних технологій і практики ООАП.
