Howto UML: дополнительные методы / вызовы / операции / процедуры - PullRequest
2 голосов
/ 17 марта 2010

Я не уверен, как моделировать под-методы в диаграмме последовательности UML. Когда при выполнении одного метода вызывается другой метод (из того же класса). Я попытался привести пример ниже:

Как бы вы, ребята, смоделировали это в UML (на диаграмме последовательности)?

..
car1.drive();
..

... в классе автомобиля:

..
drive(){
    this.startEngine();
}
startEngine(){
    this.getKey();
    this.insertKey();
}
..

небольшое начало:

objx     car1
----     ----
|         |
| drive() |
|-------->| startEngine()
|         |------------.
|         |            |
|         |<-----------.
|         |

Но откуда взялся метод getKey ()? Должно ли это быть передано через другую диаграмму последовательности? Или есть способ включить подпроцедуры?

Ответы [ 2 ]

4 голосов
/ 07 апреля 2010

Вы используете собственное сообщение, как показано ниже:

Drive a Car

Обратите внимание на «сложенные» линии жизни?Это уровни активации.Это показывает, что метод привода вызывает startEngine, который затем вызывает getKey, а затем insertKey.Я оставил возврат неявным.

0 голосов
/ 30 марта 2010

Вы можете иметь более одной линии жизни объекта класса на диаграмме. Вы могли бы даже получить свой ключ get, предоставленный вашим объектом актера. Диаграмма последовательности поможет вам определиться с порядком, в котором все происходит. Если вы пытаетесь продемонстрировать реальную жизненную ситуацию, то ключ предоставляется вашим водителем актером. Таким образом, GetKey () будет внутренним процессом в драйвере. Затем водитель вставит ключ () в спасательный круг автомобиля. Автомобиль будет VerifyKey () как внутренний процесс и вернет, был ли ключ проверен или нет. Если проверено, водитель будет TurnKey () на автомобиле. Автомобиль внутренне запустит StartEngine () и вернет сообщение о состоянии водителю.

...