Вимоги до структури системи 4 страница

· для операції «перевірити правильність ПІН-коду ()» встановити квантор видимості «public». В якості типу що повертається результату для цієї операції слід вибрати тип Boolean (логічний), а в секцію її документації вводиться пояснювальний текст: "Викликається після того, як клієнт ввів значення ПІН-коду з клавіатури банкомату".

· для операції «завершити транзакцію ()» встановити квантор видимості public. У секцію її документації ввести пояснювальний текст: «Викликається після завершення всіх дій банкомату з обслуговування клієнта».

7. Створюємо напрямлену асоціацію між класом «Контролер Банкомату» і класом «Транзакція Банкомату». Викликаємо діалогове вікно специфікації властивостей асоціації «Association Specification» шляхом виділення лінії асоціації на діаграмі класів або в браузері проекту і подвійного клацання на ній лівою кнопкою миші. Задамо її кратність рівну 1 для кінця асоціації у класі «Контролер Банкомату». Для цього у вікні специфікації властивостей асоціації переходимо на вкладку «Role B Detail» і вибираємо значення 1 з вкладеного списку «Multiplicity». Аналогічним чином задаємо кратність рівну 1..n для кінця асоціації у класі «Транзакція Банкомату», для чого на вкладці «Role A Detail» і вибраємо значення 1..n з вкладеного списку «Multiplicity». Це означає, що кожен об'єкт класу «Контролер Банкомату» може бути пов'язаний з одним або декількома об'єктами класу «Транзакція Банкомату».

Додаємо напрямлену асоціацію між класом «Контролер Банкомату» і додатково створеним абстрактним класом «Контролер». Останній клас може бути призначений для специфікації системних атрибутів і операцій, необхідних при виконанні відповідної програми. На абстрактний характер класу вказує написання курсивом його імені, а для специфікації даної властивості класу необхідно на вкладці «Detail» вікна специфікації властивостей класу «Контролер» виставити позначку в рядку вибора «Abstract».

8. Для класу «IІнтерфейс Банку» додати операцію «перевірити ідентифікатор картки» (ідентифікатор картки – Integer) з квантором видимості «public». Для результату цієї операції вибрати тип «Boolean», а для цілочисленого аргументу задати ідентифікатор картки. Для завдання аргументу необхідно перейти на вкладку «Detail» вікна специфікації властивостей даної операції і після додавання аргументу за допомогою операції контекстного меню «Insert» ввести ім'я аргументу і його тип «Integer» у відповідні поля введення.

9. Для класу «IІнтерфейс Банку» додати операцію «відкрити рахунок клієнта» (ідентифікатор картки – Integer) з квантором видимості «public». В якості цілочисленого аргументу цієї операції слід задати «ідентифікатор картки».

10. Для класу «IІнтерфейс Банку» додати операцію «перевірити баланс клієнта» (ідентифікатор картки – Integer, тип введеної суми готівки – Currency) з квантором видимості «public». В якості типу що повертається результату для цієї операції слід вибрати тип «Boolean». В якості першого целочисленного аргументу цієї операції слід задати «ідентифікатор картки», а в якості другого аргументу – «введена сума готівки» встановити тип «Currency».

11. Для класу «IІнтерфейс Банку» додати операцію «зменшити рахунок клієнта» (ідентифікатор картки – Integer, введена сума готівки – Currency) з квантором видимості «public». В якості типу результату, що повертається, для цієї операції слід вибрати тип «Boolean». В якості першого цілочисленного аргументу цієї операції задається «ідентифікатор картки», а другому аргументу – «введена сума готівки» вказати тип «Currency».

12. Класу «Пристрій читання картки» додати операцію «прочитати ідентифікатор картки ()» з квантором видимості «public». В якості типу результату, що повертається, для цієї операції слід вибрати тип «Integer», а в секцію документації даної операції вводиться пояснювальний текст: «Викликається після того, як кредитна картка вставлена в Пристрій читання картки».

13. Для класу «Пристрій читання картки» додати операцію «прочитати ПІН-код ()» з квантором видимості «public». В якості типу що повертається результату для цієї операції вибрати тип «Integer», а в секцію документації даної операції ввести пояснювальний текст: «Викликається після того, як кредитна картка вставлена в Пристрій читання картки».

14. Для класу «Пристрій читання картки» додати операцію «повернути кредитну картку ()» з квантором видимості «public». У секцію документації даної операції ввести пояснювальний текст: «Викликається після завершення транзакції».

15. Для класу «Пристрій читання картки» додати операцію «блокувати кредитну картку ()» з квантором видимості «public». У секцію документації даної операції вводиться пояснювальний текст: «Викликається після того, як встановлений факт втрати кредитної картки власником».

16. Додати клас з ім'ям «Екран Банкомату», для якого вибрати стереотип «boundary». Даний клас також знаходиться на межі модельованої системи, на що і вказує цей стереотип. У секцію документації даного класу слід ввести пояснювальний текст: «Встановлюється на банкоматі».

17. Для класу «Екран Банкомату» додати операцію «показати меню опцій ()» з квантором видимості «public».

18. Для класу «Екран Банкомату» додати операцію «показати меню зняття суми ()» з квантором видимості «public».

19. Додати клас з ім'ям «клавіатура банкомату», для якого вибрати стереотип «boundary». У секцію документації даного класу ввести пояснювальний текст: «Встановлюється на банкоматі».

20. Для класу «клавіатура банкомату» додати операцію «ввести ПІН-код ()» з квантором видимості «public». В якості типу результату, що повертається, для цієї операції вибрати тип «Integer», а в секцію документації даної операції ввести пояснювальний текст: «Викликається після того, як клієнт ввів значення ПІН-коду з клавіатури».

21. Для класу «клавіатура банкомату» додати операцію «ввести тип транзакції ()» з квантором видимості «public». В якості типу результату, що повертається для цієї операції вибрати тип «Boolean», а в секцію документації даної операції слід ввести пояснювальний текст: «Повертає значення Істина, якщо клієнт вибирає зняття готівки, і значення Неправда, якщо клієнт вибирає отримання довідки про стан рахунку».

22. Для класу «клавіатура банкомату» додати операцію «ввести суму зняття готівки ()» з квантором видимості «public». В якості типу результату, що повертається, для цієї операції вибрати тип «Currency», а в секцію документації даної операції ввести пояснювальний текст: «Викликається після того, як клієнт ввів значення суми, що знімається з клавіатури».

23. Додати клас з ім'ям «Пристрій видачі готівки», для якого вибрати стереотип «boundary». У секцію документації даного класу ввести пояснювальний текст: «Встановлюється на банкоматі».

24. Для класу «Пристрій видачі готівки» додати операцію «видати готівку ()» з квантором видимості «public». У секцію документації даної операції ввести пояснювальний текст: «Викликається після того, як виконано зняття запитаної клієнтом суми з рахунку».

25. Додати клас з ім'ям «Пристрій видачі готівки», для якого вибрати стереотип «boundary». У секцію документації даного класу вводиться пояснювальний текст: «Встановлюється на банкоматі».

26. Для класу «Принтер Банкомату» додати операцію «роздрукувати чек ()» з квантором видимості «public». У секцію документації даної операції вводиться пояснювальний текст: «Викликається по додатковому запиту клієнта».

27. Додати напрямлену асоціацію від класу «Контролер Банкомату» до класу «Пристрій читання картки». Значення кратності кінцівок цієї асоціації встановити рівним 1.

28. Додати напрямлену асоціацію від класу «Контролер Банкомату» до класу «Принтер Банкомати». Встановити значення кратності кінцівок цієї асоціації рівним 1.

29. Додати напрямлену асоціацію від класу «Контролер Банкомату» до класу «клавіатура банкомату». В якості кратності кінцівок цієї асоціації встановити значення 1.

30. Додати напрямлену асоціацію від класу «Контролер Банкомату» до класу «Пристрій видачі готівки». Позначити кратність кінцівок цієї асоціації значенням 1.

31. Додати напрямлену асоціацію від класу «Контролер Банкомату» до класу «Екран Банкомату». В якості кратності кінцівок цієї асоціації встановити значення 1.

32. Додати напрямлену асоціацію від класу «Контролер Банкомату» до класу «IКонтроллер Банку». В якості кратності кінця цієї асоціації для першого класу встановити значення «0..n», а кратності кінця асоціації для другого класу встановити значення 1. В якості стереотипу даної асоціації вибрати з вкладеного списку значення «communicate». Застосування даного стереотипу означає, що між цими класами повинен існувати фізичний взаємозв'язок.

 

Оформлення результатів роботи

Результати лабораторної роботи оформлюються у вигляді звіту обов'язковими елементами, якого є: титульний аркуш; формулювання мети та завдання на роботу; основна частина; висновки. Зразок титульного листа наведений у Додатку 1.

Основна частина роботи повинна містити етапи вирішення індивідуального завдання шляхом аналізу досягнутих результатів в обраній предметній області.

Висновки повинні містити результати виконаної роботи.

Індивідуальні завдання

Розробити діаграму класів для систем, список яких надано в лабораторній роботі 3.1 або узгодити вибір бізнес-процесів з викладачем.

Запитання для самоперевірки

1. Які принципи знаходяться в основі ООП?

2. Що розуміють під n-арною асоціацією?

3. В чому різниця між агрегацією та композицією?

4. Що таке асоціація класу?

5. Як на діаграмі класів відображуються відношення агрегації та композиції?

6. З яких основних елементів складається діаграма класів?

7. Як записується атрибут на діаграмі класів?

Лабораторна робота 3.3

ДІАГРАММИ КООПЕРАЦІЇ ТА ПОСЛІДОВНОСТЕЙ В СЕРЕДОВИЩІ IBM RATIONAL ROSE

Мета:вивчити порядок побудови діаграм кооперації та послідовностей в середовищі IBM Rational Rose.

Завдання:побудувати діаграми кооперації та послідовностей стосовно розроблюваного проекту інформаційної системи.

Основні теоретичні відомості

Діаграма взаємодії показує потік повідомлень між об'єктами системи та основні асоціації між ними.

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

Діаграма кооперації – діаграма взаємодій, в якій основний акцент зроблено на структурній організації об'єктів, що посилають і отримують повідомлення.

Діаграма послідовностей – відображає часові особливості передачі і прийому повідомлень об'єктами.

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

Можливі такі варіанти записів повного імені об'єкта:

• о: C – об'єкт із власним ім'ям о, екземпляр класу С;

•: C – анонімний об'єкт, екземпляр класу С;

• о: (або просто о) – об'єкт-сирота з власним ім'ям о;

• о / R: C – об'єкт із власним ім'ям о, екземпляр класу С, який грає роль R;

• / R: C - анонімний об'єкт, екземпляр класу С, який грає роль R;

• о / R - об'єкт - сирота з власним ім'ям о, який грає роль R;

• / R - анонімний об'єкт і одночасно об'єкт сиріт, який грає роль R.

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

Активний об'єкт має власний процес управління і може ініціювати діяльність з управління іншими об'єктами.

Мультиоб'єкт являє собою множину анонімних об'єктів, які можуть бути утворені на основі одного класу.

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

Повідомлення на діаграмі кооперації зображаються додатковими стрілками поруч з відповідним зв'язком або роллю асоціації. Напрямок стрілки вказує на одержувача повідомлення. Зовнішній вигляд стрілки повідомлення має певний сенс. На діаграмах кооперації може використовуватися один з трьох типів стрілок для позначення повідомлень

· Суцільна лінія з трикутною стрілкою позначає виклик процедури (операції) або передачу потоку управління.

· Суцільна лінія з V-подібною стрілкою позначає асинхронне повідомлення у простому потоці управління.

· Пунктирна лінія з V-подібною стрілкою позначає повернення з виклику процедури.

В UML визначені наступні стереотипи повідомлень:

· «call» - повідомлення, що вимагає виклику операції або процедури об'єкта-одержувача;

· «return» - повідомлення, яке повертає значення виконаної операції або процедури викликав її об'єкту;

· «create» - повідомлення, що вимагає створення іншого об'єкта для виконання певних дій;

· «destroy» - повідомлення, що вимагає знищити відповідний об'єкт;

· «send» - позначає посилання об'єкту сигналу, який асинхронно ініціюється одним об'єктом і приймається (перехоплюється) іншим.

Порядок виконання роботи

Ознайомитися з літературою [1, 2, 14-16]. Діаграма кооперації, що описує реалізацію типового перебігу подій варіанта використання «Зняття готівки по кредитній картці» для проекту системи управління банкоматом, показана на рис. 3.3. Для того, щоб її отримати виконати послідовність дій 1-22.

 

Рис. 3.3. Діаграма кооперації для типового перебігу подій варіанта використання «Зняття готівки по кредитній картці»

 

1. Активізувати робоче вікно діаграми кооперації в програмі IBM Rational Rose можна декількома способами:

• клацнути на кнопці із зображенням діаграми взаємодії на стандартній панелі інструментів і вибрати для побудови нову діаграму кооперації;

• виконати операцію головного меню: Browse Interaction Diagram (Браузер Діаграма взаємодії) і вибрати для побудови нову діаграму кооперації;

• виконати операцію контекстного меню: New Collaboration Diagram (Нова Діаграма кооперації) для логічного представлення або подання варіантів використання в браузері проекту.

2. Ознайомитися з кнопками панелі інструментів.

3. Задаємо ім'я діаграмі «Зняття готівки по кредитній картці».

4. У браузері проекту виділяємо необхідний клас і, утримуючи ліву кнопку миші, перетягнути зображення піктограми класу з браузера на вільне місце робочого листа діаграми кооперації. У вікні властивостей для об'єкта обраного класу можна задавати: власне ім'я об'єкта, особливості його реалізації і множинність екземплярів.

5. Встановити зв'язок між об'єктом класу «Клієнт Банкомату» і об'єктом класу «Пристрій читання картки». Для цього потрібно натиснути кнопку із зображенням зв'язку на спеціальній панелі інструментів, клацнути лівою кнопкою миші на зображенні одного об'єкта на діаграмі і відпустити її на зображенні іншого об'єкта. При необхідності можна задати ім'я зв'язку за допомогою діалогового вікна специфікації властивостей даної зв'язку.

Крім імені повідомлення можна також задати стереотип синхронізації і частоту передачі. Для цієї мети слід скористатися діалоговим вікном специфікації властивостей повідомлень, які можна відкрити подвійним клацанням на імені повідомлення в списку розглянутої вкладки «Messages» вікна специфікації властивостей зв'язку.

6. Додати повідомлення за допомогою діалогового вікна властивостей зв'язків. Для цього подвійним клацанням на лінії зв'язку викликається вікно її властивостей і розкривається вкладка «Messages». Після цього слід виконати операцію контекстного меню «Insert To», де вибрати одну з операцій цільового класу для специфікації імені повідомлення.

Для першого повідомлення слід вибрати операцію «прочитати ідентифікатор картки ()». Після вибору операції для даного повідомлення воно додається в список повідомлень даного зв'язку, а поруч з лінією зв'язку на діаграмі кооперації з'явиться стрілка з номером і ім'ям цього повідомлення.

7. Додати об'єкти класів з іменами «Контролер Банкомату», «Транзакція Банкомату», «клавіатура банкомату», «Екран Банкомату», «Принтер Банкомату», «Пристрій видачі готівки та IІнтерфейс Банку».

8. Додати зв'язки, що з'єднують об'єкти класів з іменами «Контролер Банкомату» з «Пристроєм читання картки», «Контролер Банкомату» з «Транзакція Банкомату», «Контролер Банкомату» з «Клавіатура Банкомату», «Контролер Банкомату» з «Екран банкомату», «Контролер Банкомату» з «Принтером Банкомату», «Контролер Банкомату» з «Пристрій видачі готівки» та «Контролер Банкомату» з «IІнтерфейс банку».

9. Додати повідомлення «перевірити ідентифікатор картки (Integer)», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «IІнтерфейс Банку».

10. Додати повідомлення «ввести ПІН-код ()», спрямоване від об'єкта класу-актора «Клієнт Банкомату» до об'єкта класу «клавіатура банкомату».

11. Додати повідомлення «прочитати ПІН-код ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Пристрій читання картки».

12. Додати повідомлення «створити нову транзакцію ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Транзакція Банкомати».

13. Додати повідомлення «перевірити правильність ПІН-коду ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Транзакція Банкомати».

14. Додати повідомлення «показати меню опцій ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Екран Банкомати».

15. Додати повідомлення «ввести тип транзакції ()», спрямоване від об'єкта класу-актора «Клієнт Банкомату» до об'єкта класу «клавіатура банкомату».

16. Додати повідомлення «показати меню зняття суми ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Екран Банкомати».

17. Додати повідомлення «ввести суму зняття готівки ()», спрямоване від об'єкта класу-актора «Клієнт Банкомату» до об'єкта класу «клавіатура банкомату».

18. Послідовно додати 3 повідомлення «відкрити рахунок клієнта (Integer)», «перевірити баланс клієнта (Integer, Currency)» і «зменшити рахунок клієнта (Integer, Currency)», спрямовані від об'єкта класу «Контролер Банкомату» до об'єкта класу «IІнтерфейс Банку».

19. Додати повідомлення «роздрукувати чек ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Принтер Банкомати».

20. Додати повідомлення «повернути кредитну картку ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Пристрій читання картки».

21. Додати повідомлення «видати готівку ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Пристрій видачі готівки».

22. Додати повідомлення «завершити транзакцію ()», спрямоване від об'єкта класу «Контролер Банкомату» до об'єкта класу «Транзакція Банкомату».

23. Активізувати діаграмму послідовності натисненням на клавишу F5.

 

Оформлення результатів роботи

Результати лабораторної роботи оформлюються у вигляді звіту обов'язковими елементами, якого є: титульний аркуш; формулювання мети та завдання на роботу; основна частина; висновки.

Основна частина роботи повинна містити етапи вирішення індивідуального завдання шляхом аналізу досягнутих результатів в обраній предметній області.

Висновки повинні містити результати виконаної роботи.

 

Індивідуальні завдання

 

Розробити діаграму кооперації та послідовностей для систем, список яких надано в лабораторній роботі 3.1 або узгодити вибір бізнес-процесів з викладачем.

 

Запитання для самоперевірки

1. В чому призначення діаграмі кооперації?

2. У чому різниця між активними і пасивними об'єктами?

3. Чим асинхронне повідомлення відрізняється від синхронного?

4. Що таке мультиоб'єкт?

5. Що таке композитний об'єкт і як він пов'язаний з поняттям кооперації?

6. Як можна уникнути ускладнення діаграми взаємодії з розгалуженим потоком управління?

7. Як показуються повідомлення на діаграмі кооперацій?


Лабораторна робота 3.4

РОЗРОБКА ДІАГРАМИ СТАНІВ В СЕРЕДОВИЩІ IBM RATIONAL ROSE

Мета:засвоїти призначення та способи складання діаграми станів в середовищі IBM Rational Rose

Завдання:розробити діаграму станів для обраної інформаційної системи.

Основні теоретичні відомості

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

Стан на діаграмі зображується прямокутником зі скругленими вершинами. Цей прямокутник може бути розділений на дві секції горизонтальною лінією. Якщо зазначається лише одна секція, то в ній записується тільки ім'я стану. А якщо ні, то в першій з них записується ім'я стану, а в другий - список деяких внутрішніх дій або переходів у даному стані.

Дія приводить до зміни стану системи, і може бути реалізована шляхом передачі повідомлення об'єкту, модифікацією зв'язку або значення атрибута.

Кожна дія записується окремим рядком у форматі «мітка дії '/ ' вираз дії». Мітка дії вказує на обставини або умови, при яких буде виконуватися діяльність, визначена виразом дії. При цьому вираз дії може використовувати будь-які атрибути і зв'язки, що належать області імен або контексту моделюємого об'єкту.

Псевдостан (pseudo-state) – вершина кінцевого автомату, яка має форму стану, але не має поведінки. Прикладами псевдостанів, які визначені в мові UML, є початковий і кінцевий стани.

Перехід – відношення між двома станами, яке вказує на те, що об'єкт у першому стані повинен виконати певні дії і перейти в інший стан.

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

Залежно від виду подій, що відбуваються, у мові UML розрізнюють два типипереходів: триггерні та нетриггерні.

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

Перехід називається нетриггерним, якщо він відбувається по завершенню виконання діяльності в даному стані. Для них поруч зі стрілкою переходу не вказується ніякого імені події, а у вихідному стані повинна бути описана внутрішня діяльність, по завершенню якої відбудеться той або інший нетриггерний перехід.

Сторожова умова – логічна умова, записується в прямих дужках, що і представляє собою булевий вираз, який приймає значення, що взаємно виключають"істина" або"неправда".

 

Порядок виконання роботи

Ознайомитися з літературою [1, 2, 14-16], побудувати діаграму станів за прикладом розглянутої моделі банкомата, що показана на рис. 3.4. Для цього виконати послідовність дій 1-22.

1. Активізувати діаграму станів для обраного елемента моделі або моделюємої системи в цілому одним з наступних способів:

· на панелі інструментів «стандартна» вибрати подання і тип розроблювальної діаграми – нова діаграма станів;

· у браузері проекту виділити логічне подання або подання варіантів використання і виконати операцію контекстного меню: New ® Statechart Diagram.

· Виконати операцію головного меню: Browse ® State Machine Diagram, після чого слід вибрати подання і тип розроблювальної діаграми.

2. Вивчити призначення кнопок спеціальної панелі інструментів діаграми станів.

 

Рис. 3.4.Діаграма станів для модельованої поведінки банкомата

 

3. Задати ім'я діаграми станів моделі банкомата «Діаграма станів ATM», а в секцію її документації ввести текст «Діаграма станів описує кінцевий автомат банкомата».

Ввести перший стан, змінити ім'я першого доданого стану «Newstate» на «Очікування картки» у вікні редактора або у вікні специфікації властивостей нового стану. Задати текстовий стереотип стану, визначити внутрішні дії на вході і виході, а також внутрішню діяльність. Ці властивості доступні для редагування на вкладці General і Actions. На вкладці Transitions визначати або редагувати переходи, які входять і виходять із розглянутого стану.

4. Додати на діаграму станів початковий стан і з'єднати його переходом зі станом «Очікування картки». Додати стани з іменами «Очікування введення ПІН-коду», «Перевірка ПІН-коду», «Очікування вибору клієнта», «Обробка запиту на зняття готівки», «Обробка запиту на одержання довідки», «Видача готівки», «Друк», «Повернення картки», «Завершення транзакції» і «фінальний стан».

5. Додати перехід «картка вставлена», спрямований від стану «Очікування картки» до стану «Очікування введення ПІН-коду».

6. Додати перехід «ПІН-код введений», спрямований від стану «Очікування введення ПІН-коду» до стану «Перевірка ПІН-коду».

7. Додати перехід «скасування транзакції», спрямований від стану «Очікування введення ПІН-коду» до стану «Повернення картки».

8. Додати перехід зі сторожовою умовою «[ПІН-код вірний]», спрямований від стану «Перевірка ПІН-коду» до стану «Очікування вибору клієнта».

9. Додати перехід зі сторожовою умовою «[ПІН-код невірний]», спрямований від стану «Перевірка ПІН-коду» до стану «Очікування введення ПІН-коду».

10. Додати перехід три невдачі з дієюнапереході «конфіскація картки», спрямований від стану «Перевірка ПІН-коду» до стану «Завершення транзакції». Для завдання дії на даному переході слід увести текст «конфіскація картки» в поле введення «Action» на вкладці «Detail» вікна специфікації властивостей даного переходу.

11. Додати перехід вибір суми зі сторожовою умовою «[сума введена]», спрямований від стану «Очікування вибору клієнта» до стану «Обробка запиту на зняття готівки».

12. Додати перехід «вибір довідки», спрямований від стану «Очікування вибору клієнта» до стану «Обробка запиту на одержання довідки».

13. Додати перехід «скасування транзакції», спрямований від стану «Очікування вибору клієнта» до стану «Повернення картки».

14. Додати перехід зі сторожовою умовою «[кредит не перевищений]», спрямований від стану «Обробка запиту на зняття готівки» до стану «Видача готівки».

15. Додати перехід зі сторожовою умовою «[кредит перевищений]» з дією на переході повідомлення, спрямований від стану «Обробка запиту на зняття готівки» до стану «Повернення картки».

16. Додати перехід «готівка видана» зі сторожовою умовою «[обрано друк чека]», спрямований від стану «Видача готівки» до стану «Друк».

17. Додати перехід «готівка видана» зі сторожовою умовою «[друк чека не обраний]», спрямований від стану «Видача готівки» до стану «Повернення картки».

18. Додати перехід «довідка сформована», спрямований від стану «Обробка запиту на одержання довідки» до стану «Друк».

19. Додати перехід «друк завершений», спрямований від стану «Друк» до стану «Повернення картки».

20. Додати перехід «картка повернута», спрямоване від стану «Повернення картки» до стану «Завершення транзакції».

21. Додати перехід «транзакція завершена», спрямований від стану «Завершення транзакції» до стану «Очікування картки».

22. Додати перехід, спрямований від стану «Очікування картки» до фінального «стану».

 

Оформлення результатів роботи

Результати лабораторної роботи оформлюються у вигляді звіту, обов'язковими елементами, якого: титульний аркуш; формулювання мети та завдання на роботу; основна частина; висновки.