Завершить диаграмму активности из субактивности

Я пытаюсь нарисовать диаграмму активности UML для функции, которая (очень упрощенно) представлена ​​следующим фрагментом кода. Мое намерение состоит в том, чтобы иметь подчиненную активность для строк, которые проверяют параметр режима (если-еще).

ErrorType DoSomething(int mode) {

    if(mode==MODE1) {
        ...
    }
    else {
        return MODE_NOT_AVAILABLE;
    }

    SomethingElse...

    return NO_ERROR;
 }

Как видите, оператор return в else-блоке приводит к завершению функции DoSomething. Так что, если оно выполнено, то SomethingElse... не будет выполнено.

Как я уже говорил, этот блок else должен находиться в субактивности. Как визуализировать, что действие в субактивности (возврат MODE_NOT_AVAILABLE) имеет следствие того, что его родительская диаграмма активности должна находиться в конечном состоянии?

На следующем рисунке вы можете увидеть мою попытку решить ее. Это правильное решение?

Диаграмма активности UML

1 ответ

Поскольку вы имеете дело с какими-то исключениями, я бы смоделировал их с помощью обработчика исключений, как вы видите здесь http://www.sparxsystems.com.au/images/screenshots/uml2_tutorial/ad11.GIF. Даже если ваша конкретная реализация использует if/else, это должен быть способ, который позволит легко понять, чего вы хотите достичь (не допустить выполнения подпрограммы в неправильном режиме).

Вы можете увидеть более подробную информацию о записи здесь: http://edn.embarcadero.com/article/30169

Это зависит от того, сколько вы хотите диктовать фактической реализации. Сам UML не знает языков, как и большинство заинтересованных сторон.

Другие вопросы по тегам