12.12. Что мы узнали 297
• Линии жизни выполняются слева направо:
• у линий жизни есть вертикальные пунктирные «хвосты», от
ражающие продолжительность существования линии жизни;
• линии жизни могут иметь активации для обозначения того,
что фокус управления находится на этой линии жизни;
• линии жизни должны быть хорошо организованы, чтобы све
сти к минимуму количество пересекающихся линий.
• Поясняющие сценарии необходимо размещать на диаграмме по
следовательностей внизу слева.
• Инварианты состояний – символы состояний размещаются в со
ответствующих точках линии жизни.
• Ограничения заключаются в {} и размещаются на или рядом
с линиями жизни.
• Комбинированные фрагменты – области разного поведения на диа
граммах последовательностей.
• Оператор определяет, как исполняются его операнды.
• Сторожевое условие определяет, будут ли исполняться операнды.
• Операнд заключает в себе поведение.
• Операторы.
• opt – существует единственный операнд, который исполняется
в случае истинности условия (как if … then).
• alt – выполняется тот операнд, условие которого истинно.
• loop – loop min, max [условие]:
• loop или loop * – повторяется бесконечно;
• loop n, m – повторяется (m n) раз;
• loop [ booleanExpression ] – повторяется, пока booleanExpression ис
тинно;
• loop 1, * [ booleanExpression ] – выполняется один раз, затем по
вторяется, пока booleanExpression истинно;
• loop [ for each object in collectionOfObjects ] – тело цикла выполня
ется один раз для каждого объекта коллекции;
• loop [ for each object in className ] – тело цикла выполняется
один раз для каждого объекта класса.
• break – если сторожевое условие истинно, выполняется операнд,
а не остальная часть взаимодействия, в которую включен опера
тор.
• ref – комбинированный фрагмент ссылается на другое взаимо
действие.
• par – все операнды исполняются параллельно.
• critical – операнд исполняется атомарно без прерывания.