|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Примітка. Хоча діаграма діяльності призначена для моделювання поведінки систем, час на цій діаграмі в явному вигляді відсутній
Хоча діаграма діяльності призначена для моделювання поведінки систем, час на цій діаграмі в явному вигляді відсутній. Ситуація тут багато в чому аналогічна діаграмі станів. 21.1. Стан дії Стан дії (action state) є спеціальним випадком стану з деякою вхідною дією і принаймні одним переходом, що виходить із стану. Цей перехід неявно припускає, що вхідна дія вже завершилася. Стан дії не може мати внутрішніх переходів, оскільки воно є елементарним. Звичайне використання стану дії полягає в моделюванні одного кроку виконання алгоритму (процедури) або потоку керування. Графічно стан дії зображується фігурою, що нагадує прямокутник, бічні сторони якого замінені опуклими дугами (рис. 21.1). Всередині цієї фігури записується вираз дії (action-expression), яка повинна бути унікальною в межах однієї діаграми діяльності. а) Звичайна дія б) Вираз Рис. 21.1. Графічне зображення стану дії Дія може бути записана на природній мові, деякому псевдокоді або мові програмування. Ніяких додаткових або неявних обмежень при записі дій не накладаються. Рекомендується як ім'я простої дії використовувати дієслово із словами пояснень (рис. 21.1, а). Якщо ж дія може бути представлена в деякому формальному вигляді, то доцільно записати його на тій мові програмування, на якій передбачається реалізовувати конкретний проект (рис. 21.1, б). Іноді виникає необхідність представити на діаграмі діяльності деяку складну дію, яка, у свою чергу, складається з декількох простіших дій. У цьому випадку можна використовувати спеціальне позначення так званого стану піддіяльності (subactivity state). Такий стан є графом діяльності і позначається спеціальною піктограмою в правому нижньому кутку символу стану дії (рис. 21.2). Ця конструкція може застосовуватися до будь-якого елементу мови UML, яка підтримує "вкладеність" своєї структури. При цьому піктограма може бути додатково помічена типом вкладеної структури. Рис. 21.2. Графічне зображення стану піддіяльності Кожна діаграма діяльності повинна мати єдиний початковий і єдиний кінцевий стани. Вони мають такі ж позначення, як і на діаграмі станів (див. рис. 25.4). При цьому кожна діяльність починається в початковому стані і закінчується в кінцевому стані. Саму діаграму діяльності прийнято розташовувати так, щоб дії слідували зверху вниз. У цьому випадку початковий стан зображається у верхній частині діаграми, а кінцевий – в її нижній частині. 21.2. Переходи Перехід як елемент мови UML був розглянутий в розділі 20. Під час побудови діаграми діяльності використовуються тільки нетригерні переходи, тобто такі, які спрацьовують відразу після завершення діяльності або після виконання відповідної дії. Цей перехід переводить діяльність в подальший стан відразу, як тільки закінчиться дія у попередньому стані. На діаграмі такий перехід зображається суцільною лінією із стрілкою. Якщо із стану дії виходить єдиний перехід, то він може бути без мітки. Якщо ж таких переходів декілька, то спрацювати може тільки один з них. Саме у цьому випадку для кожного з таких переходів повинна бути явно записана сторожова умова в прямих дужках (див. розділ 20). При цьому для всіх переходів, що виходять з деякого стану, повинна виконуватися вимога істинності тільки одного з них. Подібний випадок зустрічається тоді, коли послідовно виконувана діяльність повинна розділитися на альтернативні гілки залежно від значення деякого проміжного результату. Така ситуація отримала назву розгалуження, а для її позначення застосовується спеціальний символ. Графічно розгалуження на діаграмі діяльності позначається невеликим ромбом, усередині якого немає ніякого тексту (рис. 21.3). У цей ромб може входити тільки одна стрілка від того стану дії, після виконання якого потік керування повинен бути продовжений однією з гілок, що взаємно виключають одна одну. Прийнято вхідну стрілку приєднувати до верхньої або лівої вершини символу розгалуження. Стрілок, що виходять, може бути дві або більше, але для кожної з них явно вказується відповідна сторожова умова у формі булевого виразу. Як приклад розглянемо фрагмент відомого алгоритму знаходження кореня квадратного рівняння. У загальному випадку після зведення рівняння другого степеня до канонічного вигляду: а*х*х + b*х + c = 0 необхідно обчислити його дискримінант. Причому, у разі від’ємного дискримінанта рівняння не має розв’язків на множині дійсних чисел, і подальші обчислення повинні бути припинені. При невід’ємному дискримінанті рівняння має розв’язки, корені якого можуть бути отримані на основі конкретної формули. Графічно фрагмент процедури обчислення кореня квадратного рівняння може бути представлений у вигляді діаграми діяльності з трьома станами дії і розгалуженням (рис. 21.3). Кожний з переходів, що виходять із стану "Обчислити дискримінант", має сторожову умову, що визначає єдину гілку, якою може бути продовжено процес обчислення кореня залежно від знаку дискримінанта. Очевидно, що у разі його від’ємності, ми відразу потрапляємо в кінцевий стан, тим самим завершуючи виконання алгоритму в цілому. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |