Схема последовательности к диаграмме сотрудничества

Я создал Диаграмму последовательности, которую я хочу преобразовать в Диаграмму Связи / Сотрудничества. Я понимаю процесс преобразования и нумерации, но мне интересно, поскольку в моей диаграмме последовательности есть циклы, которые находятся под фрагментом 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.
Другие вопросы по тегам