Завершить диаграмму активности из субактивности
Я пытаюсь нарисовать диаграмму активности 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) имеет следствие того, что его родительская диаграмма активности должна находиться в конечном состоянии?
На следующем рисунке вы можете увидеть мою попытку решить ее. Это правильное решение?
1 ответ
Поскольку вы имеете дело с какими-то исключениями, я бы смоделировал их с помощью обработчика исключений, как вы видите здесь http://www.sparxsystems.com.au/images/screenshots/uml2_tutorial/ad11.GIF. Даже если ваша конкретная реализация использует if/else, это должен быть способ, который позволит легко понять, чего вы хотите достичь (не допустить выполнения подпрограммы в неправильном режиме).
Вы можете увидеть более подробную информацию о записи здесь: http://edn.embarcadero.com/article/30169
Это зависит от того, сколько вы хотите диктовать фактической реализации. Сам UML не знает языков, как и большинство заинтересованных сторон.