Схема последовательности к диаграмме сотрудничества
Я создал Диаграмму последовательности, которую я хочу преобразовать в Диаграмму Связи / Сотрудничества. Я понимаю процесс преобразования и нумерации, но мне интересно, поскольку в моей диаграмме последовательности есть циклы, которые находятся под фрагментом alt, как их нумерация будет в диаграмме сотрудничества? Я приложил образец моей Диаграммы последовательности, в которой есть одна из этих петель.
Редактировать: что я хочу знать, так это то, что, поскольку цикл является ситуацией IF, все еще нормально нумеровать эти последовательности? Я не думаю, что было бы логично, если бы пользователь общался, 1.0. Введите зарегистрированное имя пользователя и пароль, 2.0. Повторно введите зарегистрированное имя пользователя и пароль...2.0.
1 ответ
Диаграмма связи и диаграмма последовательности представляют одни и те же взаимодействия под другим углом. Но упрощенное графическое представление сообщений подразумевает ограничения в схеме связи, когда речь идет об объединенных фрагментах.
На коммуникационной диаграмме можно изобразить:
- простая последовательность сообщений и вложенных сообщений через хронологическую нумерацию, например:
1
,2
,3
и десятичная нумерация, например2.1
,2.2
,2.2.1
- петли (
loop
оператор в диаграмме последовательности), используя после номера. Более конкретные спецификации цикла могут следовать за началом между скобками, например*[1..n]
или же*[element in collection]
. Условия вашего цикла не указаны на диаграмме последовательности, поэтому*
сделал бы. - простые условия(
opt
оператор в диаграмме последовательности), используя условие в скобках после числа, например[t>10]
Таким образом, в вашем примере мы могли бы представить: `
1: Enters username and passord
2: Check validity
2.1*: Mismatch of name or password // return message, not usual
2.2: Prompt user to re-enter credentials
2.3: Re-enter username and password
2.4: Re-check validity // missing in the SD in the loop
3: Verify user
4: USer verified
5: Display profile
Здесь есть две проблемы: во-первых, в вашей диаграмме последовательности отсутствует
check validity
в петле. Во-вторых, я показал для простоты все сообщения, но на диаграмме связи вы обычно не показываете обратные сообщения, чтобы упростить задачу. Таким образом, у нас будет немного более простая модель:
1: Enters username and passord
2: Check validity //message, return is implicit
3.1*[credentials invalid]: Prompt user to re-enter credentials
3.2: Re-enter username and password
3.3: Check validity
4: Read user
5: Display profile
Совет по выбору между SD и CD:
- если у вас много задействованных спасательных кругов, либо сделайте несколько меньших SD, либо выберите компакт-диск.
- если у вас есть много обменов сообщениями, особенно между одними и теми же линиями жизни, предпочтите SD, потому что следование числам на компакт-диске экспоненциально неинтуитивно с увеличением количества сообщений, а длинные списки сообщений над стрелками выглядят уродливо.
- если у вас много комбинированных фрагментов или если у вас больше циклов и опций, оставайтесь с SD.