Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

metoda_2013

.pdf
Скачиваний:
54
Добавлен:
03.05.2015
Размер:
6.36 Mб
Скачать

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Композиция - разновидность отношения агрегации, при которой составные части целого имеют такое же время жизни, что и само целое. Эти части уничтожаются вместе с уничтожением целого.

23. UML. Диаграмма состояний (statechart diagram).

Назначение. Пример использования.

Диаграмма состояний используется для представления поведения системы, представленной конечным числом состояний. Есть много форм диаграмм состояний, которые немного отличаются и имеют разную семантику. Каждая диаграмма обычно представляет объекты единственного класса и переходы между разными состояниями объекта при

130

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

срабатывании определенных событий. Была представлена в 1967 Taylor Booth в его книге "Sequential Machines and Automata Theory". В вольном переводе, можно определить как «Конечные автоматы».

Направленный граф Классическая форма диаграммы состояний для системы с

конечным числом состояний – направленный граф со следующими элементами:

Состояния Q: конечный набор вершин, обычно представленных окружностями, с уникальными обозначениями, подписываемыми внутри этих окружностей;

Входные символы Σ: конечный набор входных символов;

Выходные символы Z: конечный набор выходных символов;

Функция ω представляет соответствие входных символов – выходным. Математически она описывается следующим образом: ω : Σ × QZ.

Переходы δ: представляют переходы между двумя состояниями, вызываемые при помощи входных данных (идентифицируются при помощи своих обозначений, подписываемых на ребрах). ‘Переход’ обычно рисуется как стрелка, указывающая из текущего состояния в следующее. Это соответствие раскрывает смены состояний, которые должны происходить при вводе определенного символа. Оно описывается математически следующим образом: δ : Σ × Q Z

Начальное состояние q0: начальное состояние q0 Q

обычно представляется при помощи стрелки не выходящей из какого-то определенного состояния. В более старых текстах, начальное состояние не показывалось, а должно было описываться в тексте.

Конечное состояни(е,я) F: конечное состояния F Q.

Обычно изображается в виде двойного круга.

Для детерминированных, недетерминированных, обобщенных недетерминированных конечных автоматов и автомата Мура входные данные описывают каждый переход. Для автомата Мили, вход и выход назначаются на каждый переход, разделенные "/": "1/0" обозначает, что состояние меняется при

131

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

получении символа "1" и на выход дает "0". Для автомата Мура выходной символ для состояния обычно пишется внутри окружности состояния, так же отделенный от обозначения состояния при помощи "/". Есть так же варианты, комбинирующие эти две нотации.

Например, если состояние имеет следующие выходные значения: "a=1, b=0" диаграмма должна отразить это: например, "q5/1,0" обозначает состояние q5 с выходными значениями a=1, b=0. Это обозначение будет написано внутри окружности состояния.

Пример: DFA, NFA, GNFA, или Moore machine (детерминированный, недетерминированный, обобщенный недетерминированный конечные автоматы или автомат Мура)

S1 и S2 состояния, и S1 – конечное состояние. Каждый переход подписан входным символом. Этот пример показывает автомат, принимающий строки из символов {0, 1}, которые содержат четное количество нулей.

Пример: Mealy machine (автомат Мили)

S0, S1, и S2 состояния. Каждый переход обозначен как "j / k" где j – входной символ, и k - выходной.

Harel statechart

(диаграмма состояний Харела)

Диаграммы состояний Harel получают широкое применение с тех пор, как стали частью UML.

Классические диаграммы состояний дизъюнктивны (“или”), потому что автомат может быть только в одном из возможных состояний. С диаграммами состояний Harel стало возможным моделировать “и”-автоматы, где автомат может находиться в двух и более состояниях одновременно. В соответствие с этим,

132

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

появляется возможность моделирования сверхсостояний и пересекающихся (совпадающих) автоматов.

UML state diagram (UML диаграмма состояний)

Пример UML диаграммы состояний.

Диаграмма состояний UML (Unified Modeling Language) по существу – диаграмма состояний Harel со стандартизированный нотацией, которая может описать множество систем, начиная компьютерными программами и заканчивая бизнес-процессами. Ниже перечислены основные элементы нотации, которые могут быть использованы для создания диаграмм:

Закрашенный круг – начальное состояние.

Полый круг, с маленьким закрашенным кругом внутри – конечное состояние (если таковое имеется)

Закругленный четырехугольник указывает на состояние. Верхняя часть четырехугольника содержит имя состояния. Может содержать горизонтальную линию в середине, ниже которой располагаются действия, производимые в этом состоянии.

Стрелка – переход. Имя события, (если есть) вызывающего этот переход, подписывается рядом со стрелкой. Можно добавить выражение (guard expression) перед "/", заключенное в квадратные скобки ( eventName[guardExpression]), что будет означать, что это выражение должно быть истинным для того, что переход произошел. Если действие выполняется в течение этого перехода, то оно добавляется к записи после "/" ( eventName[guardExpression]/action ).

133

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Жирная горизонтальная линия с либо x>1 линиями, входящими и одной выходящей, либо с 1 входящей и x>1 выходящими линиями. Это обозначает объединение и разделение, соответственно.

24. UML.Диаграмма активности (activity diagram) .

Назначение. Пример использования.

Диаграммы активности – это свободно определенная диаграммная техника для отображения последовательности шагов для поэтапных действий с поддержкой условий, итеративности и параллельности. В UML (Unified Modeling Language), диаграммы активности могут быть использованы для того, чтобы описать последовательность действий компонентов в системе. Диаграмма активности отображает общий поток управления.

В UML 1.x, диаграмма активности – это вариация диаграммы состояний (UML State diagram), в которой “состояния” представляют активности (действия), а переходы представляют результаты соответствующих действий.

Диаграммы активностей обычно используется для моделирования бизнес-процессов. Они состоят из:

Закрашенный круг – начальный узел(initial node).

Полый круг, с маленьким закрашенным кругом внутри – конечный узел (если имеется) (activity final node)

Закругленный четырехугольник указывает на промежуточные действия активности.

Стрелка – переход между действиями.

Жирная горизонтальная линия с либо x>1 линиями, входящими и одной выходящей, либо с 1 входящей и x>1 выходящими линиями. Это обозначает объединение и разделение, соответственно.

Так же при помощи ромба, можно задавать условные переходы (внутри ромба указывается выражение, на исходящих переходах – значения, при которых происходит данный переход).

Начальный узел – начальная точка на диаграмме.

Конечный узел – конечная точка диаграммы (их может быть 0 и больше).

134

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Диаграмма активности для цикла for.

25. UML. Диаграммы взаимодействия (interaction diagrams) . Назначение. Пример использования.

Взаимодействие между объектами в системе представляются диаграммами взаимодействия. В унифицированном языке моделирования UML диаграммы взаимодействия (interaction diagrams) делятся на два вида: диаграммы последовательности

(sequence diagram) и диаграммы кооперации (collaboration diagram).

Диаграмма последовательности делает упор на временную последовательность передаваемых сообщений, важен порядок, вид и имя сообщения, на диаграмме изображаются исключительно те объекты, которые непосредственно участвуют во взаимодействии и не показываются возможные статические ассоциации с другими объектами. Таким образом, для диаграмм последовательности ключевым моментом является динамика взаимодействия.

Диаграмма последовательности имеет два измерения. Одно - слева направо в виде вертикальных линий, изображающих объекты, участвующие во взаимодействии. Верхняя часть линий дополняется прямоугольником, содержащим имя класса объекта или имя экземпляра объекта. Второе измерение - вертикальная временная ось. Сообщения, посылаемые одним объектом другому, изображаются в виде стрелок с именем сообщения и упорядочены по времени возникновения.

135

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Для диаграммы кооперации главным является возможность отобразить не столько последовательность взаимодействия, сколько все окружение объектов, участвующих в нем. То есть показаны не только посылаемые и принимаемые сообщения, но и косвенные связи между ассоциированными объектами. Говорят, что диаграммы кооперации описывают полный контекст взаимодействия и представляют собой своеобразный временной "срез" конфигурации сети объектов, взаимодействующих для выполнения определенной бизнес-цели программной системы.

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

Ассоциации между объектами, как и на диаграммах классов, изображаются в виде соединительных линий. Возможно указание имени ассоциации и ролей, которые играют объекты в данной ассоциации. Динамические связи - потоки сообщений, представляются также в виде соединительных линий между объектами, сверху которых располагается стрелка с указанием направления и имени сообщения.

136

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Таким образом, диаграмма последовательностей - диаграмма взаимодействия, в которой основной акцент сделан на упорядочении сообщений во времени, а диаграмма кооперации - диаграмма взаимодействий, в которой основной акцент сделан на структурной организации объектов, посылающих и получающих сообщения.

26. UML. Диаграмма последовательности (sequence diagram) . Назначение. Пример использования.

Диаграмма последовательности – это вид диаграммы взаимодействия в UML (Unified Modeling Language), которая показывает, как процессы взаимодействуют друг с другом, и в каком порядке.

Диаграммы последовательности иногда называют Event-trace diagrams (диаграммы прослеживания событий) и event scenarios (сценарии событий).

Диаграмма последовательности, показывает параллельные вертикальные линии ("lifelines" – линии жизни объектов) в качестве различных процессов или объектов, которые “живут” в одно и то же время. Горизонтальные стрелки показывают сообщения, которыми они обмениваются, и расставляются в том порядке, в котором они происходят. Это разрешает спецификацию простых динамических сценариев в графическом виде.

Например, следующая UML 1.x диаграмма описывает последовательность сообщений простой системы ресторана (слева направо: Fred – посетитель, Bob – официант, Hank – повар, Renee - кассир). Обратите внимание, что стрелки на чертеже двух типов!

137

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Простая диаграмма последовательности ресторана Эта диаграмма представляет, как посетитель заказывает еду и

вино, пьет вино, затем обедает, и, затем, оплачивает еду. Пунктирные линии (или линии жизни) показывают временной отрезок, при этом: чем ниже точка на линии, тем более позднему моменту времени она соответствует (время протекает сверху вниз). Стрелки представляют сообщения от одного действующего лица или объекта к другим. Например, “посетитель отправляет сообщение ‘pay’ кассиру”. “Полустрелки” (вид стрелок с незаполненной головкой) указывают асинхронные вызовы метода. То есть это те вызовы, которые могут не совпадать по времени.

Диаграмма последовательности UML 2.0 придерживается похожей нотации. Здесь добавлена поддержка моделирования вариаций к стандартному потоку событий.

Пример UML 2 диаграммы

138

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Если сущность является объектом, то ее имя подчеркивается. Если – роль, то не подчеркивается. Оставляя имя сущности пустым, можно представлять анонимные и безымянные сущности.

Сообщения используются для того, чтобы показать взаимодействие. Они бывают трех типов:

1.Сплошная, полная головка стрелки – синхронный вызов.

2.Сплошная, полая головка стрелки – асинхронный вызов.

3.Штриховая, полая головка стрелки – возвращаемое сообщение.

Это определение верно для UML 2, значительно отличающегося от UML 1.x.

Боксы активации или боксы вызова методов – это четырехугольники, нарисованные на временных линиях сущностей, для представления того, какие процессы будут выполнены в ответ на сообщение.

Когда объект уничтожается (удаляется из памяти), “X” ставится в верхней части линии жизни объекта, а сама линия прекращает рисоваться дальше. Это должно быть результатом сообщения, либо от самого объекта, либо от другого объекта.

Сообщение, отправленное извне, может быть представлено как сообщение исходящее из закрашенного круга или из границы диаграммы последовательности.

UML диаграмма может выполнять серию шагов, называемых superstep (супершаг), в ответ на одно-единственное внешнее сообщение.

Некоторые системы имеют простое динамическое поведение, которое может быть выражено при помощи специфических последовательностей сообщений между небольшим, фиксированным числом объектов или процессов. В таких случаях, диаграммы последовательностей могут полностью описать поведение системы. Зачастую, поведение бывает более сложным, например, когда число взаимодействующих объектов велико или переменно. Или, например, есть много точек ветвления (например, исключения). В таких случаях, диаграммы последовательности не могут полностью раскрыть поведение системы, но могу специфицировать типичные способы использования (use cases) системы, небольшие детали в ее поведении и его упрощенный обзор.

139

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]