OpenU.Ru
Выражение, с помощью которого описывают множество
вариантов итераций. Каждый вариант описывает выполнение действия в итерации.
Он может включать в себя установку значений переменных итерации. Выполнение
действия происходит для каждого варианта итерации всего один раз.
См. message.
Семантика
Выражение, описывающее итерацию, представляет собой обусловленное итеративное
выполнение. В зависимости от условий оно является выполнением нуля и более сообщений.
Существуют следующие альтернативы:
* [итерационное выражение] Итерация
[условное выражение] Разветвление
Итерация представляет собой последовательность сообщений. Переменная итерации
и проверка се значения изображаются с помощью строки итерационное выражение,
однако, она необязательна. В случае ее отсутствия условия итерации останутся
неопределенными. Итерационное выражение предназначено для реализации в псевдокоде
или языке программирования, формат которого язык UML не определяет. Например,
это может быть
*[i := 1..n]
Условие представляет собой сообщение, выполнение которого возможно при истинности
выражения условное выражение. Условное выражение предназначено для реализации
в псевдокоде или языке программирования, формат которого UML не определяет.
Например, это может быть
[х > у]
Обратите внимание, что разветвление изображается точно так же, как и итерация
без звездочки. Иначе говоря, его можно считать итерацией, которая происходит
всего один раз.
Нотация итерации предполагает, что сообщения в итерации будут, а выполняться
одно за другим. Однако они могут выполняться и параллельно. В таком случае в
нотации будут присутствовать звездочка и две вертикальные линии, изображающие
параллелизм (*| | ) . Например:
*[ i :=1..n ] | | q [ i ] . calculateScore ( )
Обратите также внимание, что во вложенной структуре выражение итерации не повторяется
на вложенных уровнях. Каждый уровень структуры определяет в своем контексте
собственную итерацию.