В каких типах шагов мы должны использовать обратную линию в диаграмме последовательности?Что именно представляет собой обратная линия (пунктирная линия) на диаграмме последовательности?
<- - - - - -
В каких типах шагов мы должны использовать обратную линию в диаграмме последовательности?Что именно представляет собой обратная линия (пунктирная линия) на диаграмме последовательности?
<- - - - - -
Обратная линия представляет поток управления возвращается из вызова метода/функции
В случае методов/функций, которые возвращают результат, это будет означать, значение возвращается.
E.g.
result
<-------------
В противном случае, для недействительных методов/функций было бы просто стрелка
<-------------
Для асинхронных вызовов, а вызывающий абонент не дает управление вызванной методе/функции, я хотел бы использовать только линия возврата, если он возвращается результат (например, Непустой методы/функции)
Надежда, что помогает
EDIT
Вот пример диаграммы последовательности я создал для поиска прецеденту example of a sequence diagram I created for a search use case http://web10.twitpic.com/img/107669708-1d6f9df82534756bfe2a684d4480cc43.4c00f3b0-full.png
Обратите внимание, что анонимный пользователь делает только асинхронные вызовы, потому что, как человеческое существо, они не дают управление приложению, следовательно, нет возврата стрелки
также отметим возвращение стрелку поиска() вызова, который возвращает
Наконец, стрелки создания «Результаты» (------ |>) не имеют возврата стрелки, как они неявно возвращают экземпляр объекта
EDIT 2
В ответ на ваш обновленный вопрос:
Я бы не иметь возврата стрелки для операций со стороны пользователя, таких как логин(), так как результаты не возвращаются к пользователь таким же образом, как и объект, но обычно выводится на какой-то пользовательский интерфейс. Другой способ взглянуть на это состоит в том, что пользователь выходит за рамки программы, поэтому нет смысла возвращать результаты напрямую.
Из вашей диаграммы, моя интерпретация (в виде псевдокода) будет:
class User{
public void login()
public void sendEmail()
}
class Patient{
public void getPatient()
}
class Doctor{
public void getDoctor()
}
class Appointment{
//This method returns something, but it's not clear what, so I assumed a boolean
public boolean checkAvailability()
}
Как вы можете видеть, все, кроме одного из этих методов ничего не возвращает. Если это то, что вы хотели, тогда это хорошо, но я подозреваю, что это не так.
Я также подозреваю, что вы не собираетесь, чтобы метод sendEmail() находился в классе User.
Вы должны также рассмотреть вопрос о том, что происходит, когда checkAvailability() возвращает, как поток управления, кажется, вернуться к пользователю, а затем необъяснимо перейти обратно Назначение
Объекты в диаграмме последовательности должны всегда соответствовать объекту диаграммы классов или могут быть включены больше? – Milena
Они, как правило, соответствуют классу диаграммы классов, да. Я также должен отметить, что актер (анонимный пользователь) должен быть изображен как человек-паук, но программа, которую я использовал для этого, не полностью поддерживает UML2, но – chrisbunney
ОК в соответствии с этим я чувствую, как будто у меня большой беспорядок. Что я пытаюсь моделировать: Вход пользователя в систему как пациент (роль), чтобы просить о встрече. Пациент должен ввести врача, а затем дату. Система должна проверять наличие на эту дату, если theres avilability должна создать новое назначение и отправить электронное письмо пользователю. Если пользователь вошел в качестве врача (роль), он изменился, но теперь я не хочу включать это Письмо им не уверен, если tis ok – Milena
Он представляет собой ответное сообщение о operation.You может укажите возвращаемые значения с помощью этого символа.
Простой пример:
club member
|
| getName()
'------------------------>.
|
|
result: "lee" |
<- - - - - - - - - - - - '
String memberName = member.getName();
//memberName now contains "lee"
Пунктирная стрелка < - - - - это значение, возвращаемое из вызова метода.
Я обновил свой ответ с комментариями к вашей диаграмме seq и вопросам. – chrisbunney