Если вы говорите о цикле, то у вас есть ряд операций, которые выполняются для всех элементов цикла.
Я бы смоделировал операции, выполненные в цикле, как диаграмму последовательности сам по себе, если операция в цикле довольно сложна.
Я не думаю, что здесь мы можем иметь эмпирические правила, но когда процесс с самим циклом является сложным, а цикл относительно менее сложным, мы можем иметь их в одной диаграмме последовательности.
Если процесс, который имеет цикл, не очень сложный, но цикл является сложным, тогда я бы нарисовал диаграмму последовательности для операций цикла и отметит, что вся эта последовательность вызывается циклом.
При необходимости вы также можете иметь обе диаграммы последовательности.
Update:
Мы должны добавить некоторые примечания к схеме, потому что это не так просто, чтобы обозначить «состояние» в диаграмме последовательности.
При проверке является частью что-то вроде
do validation
if validation succeeds
proceed to next (business or other) logic
if validation fails
feedback to user (or some other logic)
+----+ +----+ +----------------+ +----------------+
|User| | UI | | Your Validator | | Business Logic |
+----+ +----+ +----------------+ +----------------+
| select | | |
|--------------->| doValidation | |
| |------------------>|----+ |
| | | | Validate |
| | |<---+ |
| | | |
| | | (validation fails: |
| | Validation Fail | feedback to client) |
| |<------------------| |
| | | |
| | | |
| | | (validation succeeds: |
| | | proceed to |
| | | business logic) |
| | | |
| | | someLogic |
| | |----------------------->|
| | | |
UPDATE 2
Почему использование схема последовательности операций в случае, как у меня? Потому что вы все еще должны показать последовательность операций, и разработчик все еще нуждается в этой информации для кодирования :-)
С UML, как вы, наверное, уже знаете, ничего не наложен. Вы в своей свободе обозначать что-то в некотором роде, если ваша команда также понимает это так, как вы планировали. Эти примечания также полезны.
Я должен был упомянуть об этом раньше, некоторые используют фрагмент «option» для обозначения if else. Это более или менее примечание (я вижу это так), но, возможно, более очевидно. Я использую их только тогда, когда оба блока IF
и ELSE
являются сложными.
+----+ +----+ +----------------+ +----------------+
|User| | UI | | UI - Backend | | Busines Logic |
+----+ +----+ +----------------+ +----------------+
| Add Record | | |
|--------------->| doinsertOrUpdate | |
| |------------------>| |
| | | exists(record) |
| | |----------------------->|
| | | |
____|________________|___________________|________________________|__________
|[Record exists] | | | |
| | | | Get Record | |
| | | |----------------------->| |
| | | | | |
| | | |--------+ | |
| | | | | Set UI Values | |
| | | |<-------+ | |
| | | | | |
| | | | Update Record | |
| | | |----------------------->| |
| | | | | |
| | | Send Message | | |
| | |<------------------| | |
| | | "Record found, | | |
| | | Updated" | | |
|___|________________|___________________|________________________|_________|
| | | |
| | | |
______|________________|___________________|________________________|_________
| [Record does not | | | |
| exist] | | | |
| | | |--------+ | |
| | | | | Generate | |
| | | | | Seqeuence | |
| | | |<-------+ | |
| | | | | |
| | | | Create New Record | |
| | | |----------------------->| |
| | | Send Message | | |
| | |<------------------| | |
| | | "New Record | | |
| | | Created" | | |
|_____|________________|___________________|________________________|_________|
| | | |
| | | |
| | | |
См this для примера, используя блок альт.
Как я могу описать диаграмму последовательности, что пользователь выбирает что-то и при выборе чего-то, что я делаю валидацией? – Elisabeth
В диаграмме последовательности обычно присутствует актер. «Сообщение» от актера до первого класса (будет пользовательским интерфейсом в вашем случае) будет «Выбрать элемент», например, – Nivas
да, но во время выбора алгоритм запускает проверку некоторых символов в выбранном/Пока выбор происходит. Как описать это с помощью диаграммы последовательности? – Elisabeth