Esta pergunta é muito semelhante a esta , mas a resposta não corresponde às minhas necessidades. Ele se concentra em uma ferramenta UML específica (Papyrus), enquanto minha pergunta é mais geral sobre a UML.
Gostaria de representar uma ação aninhada em um diagrama de atividades , mas não sei qual é a maneira comum de fazer isso. A idéia é que exista uma ação com o mesmo escopo que as outras ações, mas mais complexa em sua execução. Eu gostaria de mostrar mais detalhes sobre sua execução e ainda poder mostrar esta ação no mesmo nível que as outras.
No exemplo abaixo, que é um diagrama de atividades que mostra algum tipo de atividade "de volta para casa ", as ações aninhadas estão na Pet the cat
ação. Observe que há outro erro em potencial neste diagrama; veja as erratas no final da pergunta.
Eu usei o nó estruturado, mas não tenho certeza de que é a maneira correta, daí a pergunta. Em um gráfico de estados, o equivalente seria um estado composto, mas não consigo encontrar nada sobre uma ação composta. Com relação ao nó estruturado, depois de ler alguns documentos sobre ele, eu ainda não entendo como ele deve ser usado; portanto, posso estar totalmente errado com este diagrama.
Sei também que existe a possibilidade de me referir a outra subatividade com o símbolo tridente, como na imagem abaixo, mas não corresponde às minhas necessidades, pois gostaria de obter todas as informações no mesmo diagrama (para que eu possa imprimir sem perda de informações):
Então, qual é a maneira padrão de representar uma ação tão aninhada? Por padrão, quero dizer UML válido, comumente visto e, se possível, possível na maioria das ferramentas de design UML.
Errata não relacionada: Outra coisa está errada nos meus diagramas, as setas que vêm para a mesma ação ( Scratch behind the ears
) devem ir para um nó de mesclagem antes para entrar na ação. Veja os comentários abaixo, incluindo esta citação de JOT .
Respostas:
Ambos são "padrão". A primeira imagem conforme as especificações UML é
A segunda foto é
A principal diferença entre os dois casos é a reutilização. Enquanto, em primeiro lugar, você apenas tem alguma complexidade em um único local (o seu
Pet the cat
); o segundo é quando você (re) utiliza uma determinada ação em vários locais. No entanto, costumo usar a variante de invocação, mesmo que seja apenas para um único uso. Aqui, adiciono um diagrama composto (que no EA é aberto no dbl-click) para mostrar detalhes da ação correspondente. O fluxo principal mostra apenas a visão geral e, se forem necessários detalhes, eles estão a apenas um clique de distância.Agora, a criação de um diagrama composto no EA é (novamente) diferente. Você precisa criar um AD no nível do pacote e arrastá-lo para o elemento de chamada. Agora, quando você clicar duas vezes nele, o diagrama incorporado será aberto.
fonte