я вертикальна лінія називається лінією життя (lifeline) об'єкта. Вона являє собою фрагмент життєвого циклу об'єкта в процесі взаємодії. Таку форму подання вперше ввів Івар Якобсон.
Рис. 2.2 Діаграма послідовності
Кожне повідомлення представляється у вигляді стрілки між лініями життя двох об'єктів. Повідомлення з'являються в тому порядку, як вони показані на сторінці - зверху вниз. Кожне повідомлення буде позначено, як мінімум, ім'ям повідомлення; при бажанні можна додати також аргументи і деяку керуючу інформацію і, крім того, можна показати саме делегування (self-delegation) - повідомлення, яке об'єкт посилає самому собі, при цьому стрілка повідомлення вказує на ту ж саму лінію життя.
З усією можливою керуючої інформації два її види мають істотне значення. По-перше, це умова, що показує, коли надсилається повідомлення (наприклад, [нуженПовторнийЗаказ= true ]). Повідомлення надсилається тільки при виконанні даного умови. Інший корисний керуючий маркер - це маркер ітерації, що показує, що повідомлення посилається багато разів для безлічі об'єктів-адресатів (наприклад, * приготуватися).
Діаграми послідовності дуже прості і наочні (в цьому полягає найбільше їх гідність) і суттєво допомагають розібратися в процесі поведінки системи.
Діаграма (див. рис. 2.2) містить повернення, що означає не нове повідомлення, а повернення з повідомлення. На діаграмі повернення відрізняється від звичайних повідомлень тим, що його стрілка не суцільна, а має вигляд пари ліній.
Діаграми послідовності можна також використовувати для представлення паралельних процесів.
На рис. 2.2 зображений ряд об'єктів, що беруть участь у перевірці банківської транзакції. У момент створення Транзакції вона породжує Координатор Транзакції з метою координації перевірок, виконаних Транзакцією. Цей координатор створює кілька об'єктів транзакційного Контролера (в даному випадку два об'єкти), кожен з яких відповідає за певну перевірку. Такий процес полегшує створення різних додаткових процесів перевірки, оскільки кожна перевірка викликається асинхронно і виконується паралельно з іншими.
Рис. 2.3 Паралельні процеси та активізації
Коли Перевірка Транзакції завершується, вона посилає відповідне повідомлення Координатору Транзакції. Координатор перевіряє, чи всі перевірки повідомили про своє виконання. Якщо ні, то координатор не виконує ніяких дій. Якщо ж всі перевірки завершилися успішно, як в даному випадку, то координатор повідомляє Транзакції про нормальне завершення.
У діаграму послідовності на рис. 2.3 введено ряд нових елементів. По-перше, це активізації, що з'являються явно в тому випадку, коли метод стає активним або під час його виконання, або при очікуванні результату виконання будь-якої процедури. По-друге, половинні стрілки позначають асинхронні повідомлення. Асинхронне повідомлення не блокує роботу викликає об'єкта. Таким чином, він може продовжувати свій власний процес. Асинхронне повідомлення може виконувати одну з трьох функцій:
створювати нову гілку процесу (в цьому випадку воно пов'язано з самою верхньою частиною активізації);
створювати новий об'єкт;
встановлювати зв'язок з уже виконується гілкою процесу.
Видалення об'єкта показано за допомогою великого знаку X raquo ;. Об'єкти можуть виконати самознищення або можуть бути знищені за допомогою ще одного повідомлення.
Використовуючи механізм активізації, можна більш чітко показати сенс саме делегування. Без них, або без такого позначення за допомогою стовпчиків, яке тут використовується, досить важко визначити, де ж виконуються наступні після само делегування виклики - чи то в зухвалій методі, чи то в викликається методі. Активізації вносять ясність у це питання.
3. Розробка моделі програмного забезпечення,
керуючого роботою холодильника
.1 Опис предметної області
Потрібно розробити засобами Rational Rose модель програмного забезпечення вбудованого процесора холодильника.
Холодильник складається з кількох холодильних камер для зберігання продуктів. У кожній холодильній камері є регулятор температури, мотор, термометр, індикатор, таймер, датчик відкриття дверей камери і пристрій для подачі звукових сигналів. За допомогою терморегулятора встановлюється максимально припустима температура самій камері. Мотор призначений для підтримки низької температури. Термометр постійно вимірює температуру всередині камери, а індикатор температури, розташований на дверцятах, постійно висвічує її значення. При підвищенні температури вище межі, що визначається поточним положенням регулятора, включається мотор. При зниженні температури нижче деякого іншого значення, пов'язаного з першим, мотор відключаєт...