Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООТ 2011 3(6) Практикум 03 .doc
Скачиваний:
32
Добавлен:
12.04.2015
Размер:
621.57 Кб
Скачать

Структурные диаграммы

В UML существует четыре структурных диаграммы для визуализации, специфицирования, конструирования и документирования статических аспектов системы, составляющих ее относительно прочный "костяк". Подобно тому, как статические аспекты дома показывают, что и каким образом будет размещено в здании (стены, двери, окна, трубы, электропроводки, вентиляционные отверстия и т.д.), так и статические аспекты программных систем отражают наличие и расположение классов интерфейсов, коопераций, компонентов, узлов и других сущностей.

Названия структурных диаграмм UML соответствуют названиям основных групп сущностей, используемых при моделировании системы:

  • диаграммы классов - классам, интерфейсам и кооперациям;

  • диаграммы объектов - объектам;

  • диаграммы компонентов - компонентам;

  • диаграммы развертывания - узлам.

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

Рисунок 1.1 - Изображение класса Стиральная машина

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

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

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

Диаграммы поведения

Пять основных диаграмм поведения в UML используются для визуализации, специфицирования, конструирования и документирования динамических аспектов системы. Можно считать, что динамические аспекты системы представляют собой ее изменяющиеся части. Например, динамические аспекты жилого дома -это перемещение потоков воздуха и людей по комнатам. Динамические аспекты программной системы охватывают такие ее элементы, как поток сообщений во времени и физическое перемещение компонентов по сети.

Диаграммы поведения в UML условно разделяются на пять типов в соответствии с основными способами моделирования динамики системы:

  • диаграммы прецедентов описывают организацию поведения системы;

  • диаграммы последовательностей акцентируют внимание на временной упорядоченности сообщений;

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

  • диаграммы состояний описывают изменение состояния системы в ответ на события;

  • диаграммы деятельности демонстрируют передачу управления от одной деятельности к другой.

На диаграммах прецедентов показывается совокупность вариантов использования (прецедентов), актеров (частный случай классов) и отношений между ними. С помощью таких диаграмм иллюстрируют статический вид системы с точки зрения прецедентов, что особенно важно для ее организации и моделирования ее поведения. На Рисунок 1.2 показано, как можно отразить использование стиральной машины на диаграмме прецедентов UML.

Небольшая простая фигурка, соответствующая пользователю стиральной машины, называется Актер. Эллипс представляет прецедент. Отметим, что актер, инициирующий прецедент, может быть как человеком, так и другой системой.

Рисунок 1.2 - Диаграмма прецедентов UML

Следующие две диаграммы семантически идентичны, так же как и две последние. Иными словами, для моделирования динамики системы можно воспользоваться диаграммами одного типа, а затем преобразовать их к другому типу без потерь информации. Это позволяет лучше понять различные аспекты динамики системы. Например, можно сначала создать диаграмму последовательностей, иллюстрирующую временную упорядоченность сообщений, а затем преобразовать в диаграмму кооперации, помогающую легко разрабатывать структурные отношения между классами, объекты которых участвуют в этой кооперации (разумеется, не воспрещено двигаться и в обратном направлении, от диаграммы кооперации к диаграмм последовательностей). Можно также начать с диаграммы состояний, показывающей реакцию системы на события, и преобразовать ее в диаграмму действий, которая заостряет внимание на потоке управления (или же, наоборот, от диаграммы действий перейти к диаграмме состояний). Причина, по которой в UML предусмотрены семантически эквивалентные диаграммы, состоит в том, что моделирование динамики системы - очень непростая задача, и зачастую приходится подходит к решению какой-нибудь многогранной проблемы сразу с нескольких сторон.

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

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

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

1. Вода поступает в барабан через подводную трубу.

2. Барабан остается неподвижным в течение пяти минут.

3. Прекращается подача воды.

4. Барабан вращается вперед и назад пятнадцать минут.

5. Мыльная вода выливается через сливную трубу.

6. Возобновляется подача воды.

7. Барабан продолжает вращаться вперед и назад.

8. Прекращается подача воды

9. Отжатая вода выходит через сливную трубу.

10. Барабан начинает вращаться в одну сторону, скорость вращения увеличивается, вращение происходит в течение пяти минут.

11. Вращение барабана прекращается, стирка окончена.

На Рисунке 1.4 показана диаграмма последовательностей, иллюстрирующая функционирование во времени трубы для подачи воды, барабана и сливной трубы (представлены прямоугольниками вверху диаграммы). На этой диаграмме время изменяется сверху вниз.

Рисунок 1.3 - Диаграмма последовательностей UML

Кстати, возвращаясь к идее о состояниях, можно охарактеризовать шаги 1 и 2 как состояние замачивания, шаги 3 и 4 как состояние стирки, шаги с 5 по 7 как состояние полоскания и шаги с 8 по 10 как состояние отжима белья

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

Рисунок 1.4 - Диаграмма кооперации UML

Диаграмма кооперации UML, разработанная для выполнения этой задачи, показана на Рисунке 1.4. В набор классов, представляющих стиральную машину, вводится внутренний таймер. Через определенный промежуток времени он останавливает подачу воды и запускает вращение барабана вперед и назад.

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

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

Рисунок 1.5 - Диаграмма состояний UML

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

На диаграммах деятельности изображают передачу управления от одной деятельности к другой внутри системы. На них показаны виды деятельности, последовательные или параллельные ветвления потока управления и объекты, которые воздействуют на что-то или сами подвергаются воздействию. Диаграммы деятельности относятся к динамическому представлению системы и особенно важны при моделировании ее функций. Они являются особой разновидностью диаграмм состояния. На диаграммах деятельности основное внимание уделено потоку управления между объектами. Действия, которые совершаются при выполнении прецедента или во время функционирования объекта, обычно происходят последовательно, как описанные выше шаги работы стиральной машины. На Рисунке 1.6 показано, как на диаграмме видов деятельности UML представлены шаги 4—6 этой цепочки.

Рисунок 1.6 - Диаграмма видов деятельности UML

Типичные приемы моделирования

Различные представления системы

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

Моделирование системы с использованием различных представлений осуществляется следующим образом:

  1. Решите, какие именно виды лучше всего отражают архитектуру систем и возможный технический риск, связанный с проектом.

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

  3. В ходе планирования процесса решите, какие из диаграмм удобнее все превратить в инструмент контроля (формального или неформального) разработкой системы. Эти диаграммы вы будете периодически корректировать и сохранять в составе проектной документации.

  4. На всякий случай сохраняйте даже забракованные диаграммы, - они могут пригодиться при анализе результатов ваших действий и для экспериментов по изменению каких-либо рабочих параметров.