- •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
6.4. Складовий стан і підстан
Складовий стан (composite state) – такий складний стан, який складається з інших вкладених в нього станів. Останні виступатимуть по відношенню до першого як підстани (substate). Хоча між ними має місце відношення композиції, графічно всі вершини діаграми, які відповідають вкладеним станам, зображаються усередині символу складового стану (мал. 6.6). В цьому випадку розміри графічного символу складового стану збільшуються, так щоб вміщати в себе всі підстани.
Мал. 6.6. Графічне представлення складового стану з двома вкладеними в нього послідовними підстанами
Складовий стан може містити два або більш паралельних підавтомата або декілька послідовних підстанів. Кожний складний стан може уточнюватися тільки одним з вказаних способів. При цьому будь-який з підстанів, у свою чергу, може бути складовим станом і містити усередині себе інші вкладені підстани. Кількість рівнів вкладеності складових станів не фіксована в язиці UML.
Послідовні підстани
Послідовні підстани (sequential substates) використовуються для моделювання такої поведінки об'єкту, під час якого в кожний момент часу об'єкт може знаходитися в одному і лише одному підстанів. Поведінка об'єкту в цьому випадку є послідовною зміною підстанів, починаючи від початкового і закінчуючи кінцевим підстанами. Хоча об'єкт продовжує знаходитися в складовому стані, введення в розгляд послідовних підстанів дозволяє врахувати більш тонкі логічні аспекти його внутрішньої поведінки.
Для прикладу розглянемо як модельований об'єкт звичайний телефонний апарат. Він може знаходитися в різних станах, одним з яких є стан дозвону до абонента. Очевидно, для того, щоб подзвонити, необхідно зняти телефонну трубку, почути тоновий сигнал, після чого набрати потрібний телефонний номер. Таким чином, стан дозвону до абонента є складовим і складається з двох послідовних підстанів: «підняти телефонну трубку» і «набрати телефонний номер». Фрагмент діаграми станів для цього прикладу містить один складовий стан і два послідовних підстанів (мал. 6.7).
Мал. 6.7. Приклад складового стану з двома вкладеними послідовними підстанами
Деякі пояснення можуть зажадати переходи. Два з них специфікують подію‑ трігер набір цифри, яке має ім'я «цифра» з параметром «п». Як параметр, як неважко припустити, виступає окрема цифра на диску телефонного апарату. Перехід з початкового черінь‑ стану нетрігер, оскільки він не містить ніякого рядка тексту. Останній перехід в кінцевий підстан не має події‑ трігера, але має сторожову умову, перевіряючу правильність набраного номера абонента. Тільки у разі істинності цієї умови телефонний апарат може перейти в кінцевий підстан, який характеризує суперстан «дозвон до абонента» в цілому.
Складовий стан може містити як вкладені підстани початкове і кінцеве стани. При цьому початковий підстан є початковим, коли відбувається перехід об'єкту в даний складовий стан. Якщо складовий стан містить усередині себе кінцевий підстан, то перехід в цей вкладений кінцевий стан означає завершення знаходження об'єкту в даному вкладеному стані. Важливо пам'ятати, що для послідовних підстанів початкове і кінцеве стани повинні бути єдиними в кожному складовому стані.
Це можна пояснити таким чином. Кожна сукупність вкладених послідовних підстанів є підавтоматом того автомата, якому належить даний складовий стан. Оскільки кожний автомат може мати за визначенням єдине початкове і єдине кінцеве стани, то для підавтомата ця умова також повинна виконуватися (мал. 6.7).
Паралельні підстани
Паралельні підстани (concurrent substates) дозволяють специфікувати два і більш підавтомата, які можуть виконуватися паралельно усередині складової події. Кожний з підавтоматів займає деяку область (регіон) усередині складового стану, яка відділяється від інших горизонтальною пунктирною лінією. Якщо на діаграмі станів є складовий стан з вкладеними паралельними підстанами, то об'єкт може одночасно знаходитися в кожному з цих підстанів.
Проте окремі паралельні підстани можуть, у свою чергу, складатися з декількох послідовних підстанів (підавтомати 1 і 2 на мал. 6.8). В цьому випадку за визначенням об'єкт може знаходитися тільки в одному з послідовних підстанів підавтомата. Таким чином, для абстрактного прикладу (мал. 6.8) допустиме одночасне знаходження об'єкту в підстанах (1, 3, 4), (2, 3, 4), (1, 3, 5) (2, 3, 5). Неприпустимо знаходження об'єкту одночасне в підстанах (1, 2,3) або (3, 4, 5).
Мал. 6.8. Графічне зображення складового стану з вкладеними паралельними підстанами
Оскільки кожний регіон вкладеного стану специфікує деякий підавтомат, то для кожного з вкладених підавтоматів можуть бути визначені власні початкове і кінцеві підстани (мал. 6.8). При переході в даний складовий стан кожний з підавтоматів опиняється в своєму початковому підстанів. Далі відбувається паралельне виконання кожного з цих підавтоматів, причому вихід з складового стану буде можливий лише у тому випадку, коли всі підавтомати знаходитимуться в своїх кінцевих підстанах.
Якщо какой‑ либо з підавтоматів прийшов в свій кінцевий стан раніше інших, то він повинен чекати, поки і інші підавтомати не прийдуть в свої кінцеві стани.
В деяких випадках бажано приховати внутрішню структуру складового стану. Наприклад, окремий підавтомат, що специфікує складовий стан, може бути настільки великим по масштабу, що його візуалізація утруднятиме загальне представлення діаграми станів. В подібній ситуації допускається не розкривати на початковій діаграмі станів даний складовий стан, а вказати в правому нижньому кутку спеціальний символ‑ піктограму (мал. 6.9). В подальшому діаграма станів для відповідного підавтомата може бути зображена окремо від основної з необхідними коментарями.
Мал. 6.9. Складовий стан з прихованою внутрішньою структурою і спеціальною піктограмою
