Курсовая работа: Объектно-ориентированный анализ и проектирование деятельности ООО "Формула торговли"
На диаграммах последовательностей внимание акцентируется прежде всего на временной упорядоченности сообщений. Для создания такой диаграммы надо прежде всего расположить объекты, участвующие во взаимодействии, в верхней ее части вдоль оси X. Обычно инициирующий взаимодействие объект размещают слева, а остальные – правее (тем дальше, чем более подчиненным является объект). Затем вдоль оси Y размещаются сообщения, которые объекты посылают и принимают, причем более поздние оказываются ниже. Это дает читателю наглядную картину, позволяющую понять развитие потока управления во времени.
Диаграммы последовательностей характеризуются двумя особенностями, отличающими их от диаграмм кооперации. Во-первых, на них показана линия жизни объекта. Вторая особенность этих диаграмм – фокус управления.
Диаграмма кооперации акцентирует внимание на организации объектов, принимающих участие во взаимодействии. Для создания диаграммы кооперации нужно расположить участвующие во взаимодействии объекта в виде вершин графа. Затем связи, соединяющие эти объекты, изображаются в вид дуг этого графа. Наконец, связи дополняются сообщениями, которые объекты принимают и посылают. Это дает пользователю ясное визуальное представление о потоке управления в контексте структурной организации кооперирующихся объектов.
У диаграмм кооперации есть два свойства, которые отличают их от диаграмм последовательностей. Первое – это путь. Второе свойство – это порядковый номер сообщения.
Поскольку диаграммы последовательностей и кооперации используют одну и ту же информацию из метамодели UML, они семантически эквивалентны. Это означает, что можно преобразовать диаграмму одного типа в другой без какой-либо потери информации. Это не означает, однако, что на обеих диаграммах представлена в точности одна и та же информация. С другой стороны, на диаграмме последовательностей могут быть показаны возвращаемые сообщения, а на соответствующей диаграмме кооперации они отсутствуют. Таким образом, можно сказать, что диаграммы обоих типов используют одну модель, но визуализируют разные ее особенности.
При моделировании динамических аспектов системы диаграммы взаимодействий обычно используются двояко:
- для моделирования временной упорядоченности потоков управления. С этой целью используют диаграммы последовательностей. При этом внимание акцентируется на передаче сообщений во времени, что бывает особенно полезно для визуализации динамического поведения в контексте прецедентов. Простые итерации и ветвления на диаграммах последовательностей отображать удобнее, чем на диаграммах кооперации;
- для моделирования структурной организации потоков управления. В этом случае нужны диаграммы кооперации. Основное внимание при этом уделяется моделированию структурных отношений между взаимодействующими экземплярами, вдоль которых передаются сообщения. Для визуализации сложных итераций, ветвлений и параллельных потоков управления диаграммы кооперации подходят лучше, чем диаграммы последовательностей.
На одной диаграмме последовательностей можно показать только один поток управления (хотя с помощью нотации UML для итераций и ветвлений можно проиллюстрировать простые вариации). Поэтому, как правило, создают несколько диаграмм взаимодействий, одни из которых считаются основными, а другие описывают альтернативные пути и исключительные условия. Такой набор диаграмм последовательностей можно организовать в пакет, дав каждой диаграмме подходящее имя, отличающее ее от остальных.
На рисунке 6 показана диаграмма последовательности, показывающая последовательность действий при оформлении заказа и продажи товара клиенту.
Рисунок 6 – Диаграмма последовательности действий при оформлении заказа и продажи товара клиенту
На рисунке 7 изображена последовательность действий при проведении сервисного обслуживания кассовых аппаратов.
Рисунок 7 – Диаграмма последовательности действий при проведении сервисного обслуживания
На рисунок 8 показана диаграмма кооперации, которая описывает поток управления, связанный с проведением сервисного обслуживания кассовых аппаратов, причем внимание акцентируется на структурных отношениях между объектами. На диаграмме представлено пять объектов: Клиент, Сервис Центр, Инженер по регламенту, ККТ и Инженер по ремонту. Поток управления пронумерован явно. Действие начинается с того, что Клиент подписывает договор на сервисное обслуживание с Сервис Центром, после чего Сервис Центр выдает акты с данными клиентов Инженеру по регламенту, который едет на место, проводит обслуживание кассовых аппаратов, после чего заполняет журнал учета. Далее, если аппарат неисправен, Инженер по регламенту отвозит его в Сервис Центр, где Инженер по ремонту его ремонтирует. В конце Инженер по регламенту отвозит отремонтированную ККТ обратно Клиенту и Клиент оплачивает услуги в Сервис Центр.
Рисунок 8 – Диаграмма кооперации процесса сервисного обслуживания
2.3.3 Моделирование потоков управления (диаграмма состояний)
С помощью взаимодействий можно моделировать поведение сообщества совместно работающих объектов. Автомат же позволяет моделировать поведение отдельного объекта. Автомат (State machine) описывает поведение в терминах последовательности состояний, через которые проходит объект в течение своей жизни, отвечая на события, а также его реакций на эти события.
Автоматы используются для моделирования динамических аспектов системы. По большей части под этим понимается описание жизни экземпляров класса, прецеденто и системы в целом. Экземпляры могут реагировать на такие события, как сигналы, операции или истечение промежутка времени. Состояние (State) объекта – это ситуация в его жизни, на протяжении которой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события. Событие (Event) – это спецификация существенного факта, который происходит во времени и пространстве. В контексте автоматов событие – это стимул, способный вызвать срабатывание перехода. Переход (Transition) – это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить некоторые действия и перейти во второе состояние, как только произойдет определенное событие и будут выполнены заданные условия. Деятельность (Activity) – это продолжающееся неатомарное вычисление внутри автомата. Действие (Action) – это атомарное вычисление, которое приводит к смене состояния или возврату значения. Диаграмма состояний изображается в виде графа с вершинами и ребрами.
Визуализировать автомат можно двумя способами: выделяя передачу потока управления от одной деятельности к другой (с помощью диаграммы деятельности) или выделяя потенциальные состояния объектов и переходы между ними (с помощью диаграммы состояний). Хорошо структурированные автоматы подобны хорошо структурированным алгоритмам – они эффективны, просты, адаптируемы к разным ситуациям и просты для понимания.
Диаграмма состояний показывает автомат. Ее частной разновидностью является диаграмма деятельности, в которой все или большая часть состояний – это состояния деятельности, а все или большая часть переходов инициируются в результате завершения деятельности в исходном состоянии. Таким образом, при моделировании жизненного цикла объекта полезны как диаграммы деятельности, так и диаграммы состояний. Но если диаграмма деятельности показывает поток управления от деятельности к деятельности, то на диаграмме состояний представлен поток управления от состояния к состоянию.
Диаграммы состояний используются для моделирования динамических аспектов системы. По большей части под этим подразумеваетс