- •1. Что такое диаграмма последовательностей
- •Объекты
- •Сообщения
- •2. Графический интерфейс пользователя (gui)
- •Последовательность
- •Диаграмма последовательности
- •Прецедент
- •3. Автомат по продаже лимонада: общая и частная модель
- •Частная диаграмма последовательности
- •Общая диаграмма последовательности
- •4. Отображение создания объекта на диаграмме последовательностей
- •5. Представление рекурсии
- •6. Создание общей картины
- •7. Резюме
- •Вопросы и ответы
- •Задание
5. Представление рекурсии
Иногда операции объекта воздействуют на сам объект. Это называется рекурсией. На ней основаны многие языки программирования.
Вот пример. Предположим, что элементом системы является калькулятор, вычисляющий процент прибыли. Чтобы рассчитать сложный процент для некоторого временного периода, содержащего несколько более коротких периодов, операция вычисления сложного процента должна обращаться сама к себе несколько раз.
Чтобы представить это в UML, вне точки активации, обозначающей операцию, изображается сообщение со стрелкой, а на точку активации накладывается небольшой прямоугольник. Стрелка сообщения должна указывать на этот же прямоугольник. Затем изображается возвратная стрелка на инициировавший рекурсию объект. На рис. 11 показан фрагмент диаграммы последовательности с рекурсией.
Рис. 11. Представление рекурсии на диаграмме последовательности
6. Создание общей картины
Теперь к общей картине UML можно добавить еще одну диаграмму. Поскольку диаграмма последовательностей связана с поведением объектов, она располагается в категории "Поведенческие элементы". На рис. 12 изображена обновленная общая картина UML.
Рис. 12. Общая картина UML с добавленной диаграммой последовательности
7. Резюме
Диаграмма последовательностей UML добавляет измерение времени к взаимодействию объектов. На диаграмме объекты располагаются вверху, а время изменяется сверху вниз. От каждого отображенного на диаграмме объекта опускается линия его жизни. Узкий прямоугольник на линии жизни объекта представляет точку активации — выполнение одной из операций объекта. На диаграмме последовательностей можно указать состояния объекта, разместив их вдоль линии жизни.
Сообщения (простые, синхронные или асинхронные) изображаются в виде линий, соединяющих одну линию жизни с другой, со стрелками на конце. Расположение сообщений вдоль вертикального направления соответствует времени их передачи. Переданные ранее сообщения находятся ближе к верхней части диаграммы Чем позже передается сообщение, тем ближе к нижней части диаграммы последовательностей оно располагается.
Диаграмма прецедентов представляет либо один сценарий прецедента, либо объединяет все сценарии. Каждому прецеденту соответствует диаграмма последовательностей. Один сценарий отображается на частной диаграмме, а несколько сценариев — на общей. На общей диаграмме последовательностей нередко отображают оператор "если" и циклы "пока". Условия для операторов "если" заключаются в квадратные скобки. Точно также изображаются условия для оператора "пока", но возле левой скобки добавляется звездочка.
Если последовательность операций включает создание объекта, он представляется обычным образом. Его позиция вдоль вертикального направления должна соответствовать времени его создания.
В некоторых системах операция вызывает сама себя. Это называется рекурсией. Она изображается линией, выходящей из точки активации, со стрелкой, указывающей на небольшой прямоугольник, наложенный на прямоугольник активации.
