Você está na página 1de 22

UML -DIAGRAMAS

COMPORTAMENTAIS II
Prof. Ramon Lummertz
Nesta unidade temática, você vai aprender
A conhecer e aplicar o diagrama de sequência;
A conhecer e aplicar o diagrama de atividades;
A conhecer os principais elementos do diagrama de sequência;
A conhecer os principais elementos do diagrama de atividades;
A realizar diagramas de sequência e de atividades.
Introdução
Em UML, um diagrama de atividades é usado para exibir a sequência de atividades. Os
diagramas de atividades mostram o fluxo de trabalho de um ponto inicial ao ponto final,
detalhando os vários caminhos de decisão que existem na progressão de eventos contidos na
atividade. Eles podem ser usados para detalhar situações onde o processamento paralelo pode
ocorrer na execução de algumas atividades. Os diagramas de atividades são úteis para a
modelagem de negócios, onde são usados para detalhar os processos envolvidos nas
atividades de negócios.

Um diagrama de sequência é uma forma de diagrama de interação que mostra objetos como
linhas de vida percorrendo a página, com suas interações ao longo do tempo representadas
como mensagens desenhadas como setas da linha de vida de origem para a linha de vida de
destino. Os diagramas de sequência são bons para mostrar quais objetos se comunicam com
quais outros objetos; e quais mensagens acionam essas comunicações.

Neste capítulo, vamos conhecer esses dois diagramas.

Mãos à obra!

UML – Diagramas de Sequência e Diagramas


de Atividades
Os diagramas comportamentais representam aspectos dinâmicos ou comportamentos do
sistema. Os diagramas de comportamento incluem o já abordado diagrama de caso de uso,
diagramas de estado, diagramas de atividades e diagramas de interação e diagrama de
sequência. Neste capítulo, vamos detalhar dois desses diagramas: o de sequência e o de
atividades.

Diagrama de Atividades
Usamos Diagramas de Atividades para ilustrar o fluxo de controle em um sistema e fazer
referência às etapas envolvidas na execução de um caso de uso. Modelamos atividades
sequenciais e concorrentes usando diagramas de atividades. Portanto, basicamente
representamos os fluxos de trabalho visualmente usando um diagrama de atividades. Um
diagrama de atividades se concentra na condição do fluxo e na sequência em que ele acontece.
Descrevemos ou representamos o que causa um determinado evento usando um diagrama de
atividades.
Fique de olho!
Um diagrama de atividades retrata o fluxo de controle de um ponto inicial a um ponto final,
mostrando os vários caminhos de decisão que existem enquanto a atividade está sendo
executada. Podemos representar o processamento sequencial e o processamento simultâneo
de atividades usando um diagrama de atividades.
Eles são usados na modelagem de negócios e processos, onde seu uso principal é descrever os
aspectos dinâmicos de um sistema.

Um diagrama de atividades é muito semelhante a um fluxograma. Então, vamos entender se os


diagramas de atividades ou fluxogramas são diferentes. Os fluxogramas foram normalmente
inventados antes dos diagramas de atividades. Não programadores usam fluxogramas para
modelar fluxos de trabalho. Por exemplo: um fabricante usa um fluxograma para explicar e
ilustrar como um determinado produto é fabricado. Podemos chamar um fluxograma de
versão primitiva de um diagrama de atividades. Os processos de negócios em que a tomada de
decisão está envolvida são expressos por meio de um fluxograma.

Portanto, os programadores usam diagramas de atividades para representar fluxos de


trabalho. Um diagrama de atividades é usado por desenvolvedores para entender o fluxo de
programas em alto nível. Ele também permite que eles descubram restrições e condições que
causam eventos específicos. Um fluxograma converge em um diagrama de atividades se
decisões complexas estiverem sendo tomadas.

Portanto, um diagrama de atividades ajuda as pessoas de ambos os lados, ou seja, empresários


e desenvolvedores a interagir e compreender os sistemas.

Diferença entre um Diagrama de Caso de Uso e um Diagrama de


Atividades
Um diagrama de atividades é usado para modelar o fluxo de trabalho que descreve as
condições, restrições, atividades sequenciais e simultâneas. Por outro lado, o objetivo de um
caso de uso é apenas descrever a funcionalidade, ou seja, o que o sistema faz e não como é
feito.

Portanto, em termos simples, um diagrama de atividades mostra "Como", enquanto um caso


de uso mostra "O quê" para um sistema específico.

Os níveis de abstração também variam para ambos. Um diagrama de atividades pode ser usado
para ilustrar um processo de negócios (implementação de alto nível) para um algoritmo
independente (implementação de nível básico). No entanto, os casos de uso têm um baixo nível
de abstração. Eles são usados para mostrar apenas um alto nível de implementação.
Notação do Diagrama de Atividades
Estado inicial: o estado inicial antes de uma atividade ocorrer é descrito usando o estado
inicial. Um processo pode ter apenas um estado inicial, a menos que estejamos
representando atividades aninhadas. Usamos um círculo preenchido em preto para
descrever o estado inicial de um sistema. Para objetos, esse é o estado em que são
instanciados. O estado inicial do diagrama de atividades UML marca o ponto de entrada e o
estado de atividade inicial. Por exemplo: aqui, o estado inicial é o estado do sistema antes de
o aplicativo ser aberto.
Figura 1: Símbolo de estado inicial sendo usado.

Atividade: uma ação representa a execução de uma ação em objetos ou por objetos.
Representamos uma atividade usando um retângulo com cantos arredondados.
Basicamente, qualquer ação ou evento que ocorre é representado por meio de uma
atividade. Por exemplo: considere o exemplo anterior de abertura de um aplicativo, a
abertura do aplicativo é um estado de atividade no diagrama de atividades.
Fluxo de ação ou fluxos de controle: fluxos de ação ou fluxos de controle também são
chamados de caminhos e bordas. Eles são usados para mostrar a transição de um estado de
atividade para outro. Um estado de atividade pode ter vários fluxos de ação de entrada e
saída. Usamos uma linha com uma ponta de seta para representar um Fluxo de Controle. Se
houver uma restrição a ser seguida durante a transição, ela será mencionada na seta.
Nó de decisão: quando precisamos tomar uma decisão antes de decidir o fluxo de controle,
usamos o nó de decisão. As setas de saída do nó de decisão podem ser rotuladas com
condições ou expressões de guarda. Sempre inclui duas ou mais setas de saída.
Figura 2: Nó de decisão.
"Guards": um "guards" guarda refere-se a uma declaração escrita ao lado de um nó de
decisão em uma seta, às vezes entre colchetes. A declaração deve ser verdadeira para que o
controle mude ao longo de uma direção específica. Os guardas nos ajudam a conhecer as
restrições e condições que determinam o fluxo de um processo.
Fork ou nó de bifurcação: nós forks, ou bifurcação, são usados para oferecer suporte a
atividades simultâneas. Quando usamos um fork quando ambas as atividades são
executadas simultaneamente, ou seja, nenhuma decisão é tomada antes de dividir a
atividade em duas partes. Ambas as partes precisam ser executadas no caso de uma
instrução fork. Usamos uma barra retangular sólida arredondada para representar uma
notação Fork com uma seta de entrada do estado de atividade do pai e setas de saída em
direção às atividades recém-criadas.
Join: os nós de união são usados para oferecer suporte a atividades simultâneas
convergindo em uma. Para notações de junção, temos duas ou mais arestas de entrada e
uma de saída.
Merge: evento de mesclagem ou mesclagem – os cenários surgem quando as atividades que
não estão sendo executadas simultaneamente precisam ser mescladas. Usamos a notação
de mesclagem para tais cenários. Podemos fundir duas ou mais atividades em uma se o
controle prosseguir para a próxima atividade, independentemente do caminho escolhido.
Ação de evento de tempo de aceitação: podemos ter um cenário em que um evento leva
algum tempo para ser concluído. Usamos uma ampulheta para representar um evento de
tempo. Por exemplo – vamos supor que o processamento de uma imagem leve muito
tempo. Em seguida, ele pode ser representado conforme mostrado abaixo.
Nó de Final de Atividade: o estado que o sistema atinge quando um determinado processo
ou atividade termina é conhecido como estado final. Usamos um círculo preenchido dentro
de uma notação de círculo para representar o estado final em um diagrama de máquina de
estado. Um sistema ou processo pode ter vários estados finais.
Nó de Final de Fluxo: representa o encerramento de uma rotina representada pelo fluxo,
mas não de toda atividade.
Figura 3: Notação.
Saiba mais
Cabe ressaltar uma diferença entre o Merge e o Fork, ambas as atividades são executadas
simultaneamente, ou seja, nenhuma decisão é tomada antes de dividir a atividade em duas
partes, ou seja ambas as partes precisam. Enquanto em um Merge uma decisão é tomada e
apenas uma linha é executada e depois juntada.
Usos de um Diagrama de Atividades
Modelagem dinâmica do sistema ou processo.
Ilustrar as várias etapas envolvidas em um caso de uso UML.
Modelar elementos de software como métodos, operações e funções.
Podemos usar diagramas de atividades para descrever atividades simultâneas facilmente.
Mostrar as restrições, condições e lógica por trás dos algoritmos.

Diagrama de Sequência
Um diagrama de sequência simplesmente representa a interação entre objetos em uma ordem
sequencial, ou seja, a ordem em que essas interações ocorrem. Também podemos usar os
termos diagramas de eventos ou cenários de eventos para nos referir a um diagrama de
sequência.

Os diagramas de sequência descrevem como e em que ordem os objetos em um sistema


funcionam.
Esses diagramas são amplamente usados por empresários e desenvolvedores de software para
documentar e compreender os requisitos de sistemas novos e existentes.

Notação do Diagrama de Sequência


Atores – um ator em um diagrama UML representa um tipo de função em que ele interage
com o sistema e seus objetos. É importante observar aqui que um ator está sempre fora do
escopo do sistema que pretendemos modelar usando o diagrama UML. Usamos atores para
representar várias funções, incluindo usuários humanos e outros assuntos externos.
Podemos ter vários atores em um diagrama de sequência.
Linhas de vida – uma linha de vida é um elemento nomeado que representa um
participante individual em um diagrama de sequência. Então, basicamente, cada instância
em um diagrama de sequência é representada por uma linha de vida. Os elementos da linha
de vida estão localizados na parte superior de um diagrama de sequência. O padrão em UML
para nomear uma linha de vida segue o seguinte formato – Nome da instância: Nome da
classe.
Mensagens – a comunicação entre objetos é representada por mensagens. As mensagens
aparecem em uma ordem sequencial na linha de vida. Representamos mensagens usando
setas. Linhas de vida e mensagens formam o núcleo de um diagrama de sequência.
As mensagens podem ser amplamente classificadas nas seguintes
categorias:

Mensagens síncronas – uma mensagem síncrona espera por uma resposta antes que a
interação possa avançar. O remetente espera até que o destinatário conclua o
processamento da mensagem. O chamador continua apenas quando sabe que o receptor
processa a mensagem anterior, ou seja, ele recebe uma mensagem de resposta. Um grande
número de chamadas na programação orientada a objetos são síncronas. Usamos uma
ponta de seta sólida para representar uma mensagem síncrona.
Mensagens assíncronas – uma mensagem assíncrona não espera por uma resposta do
receptor. A interação avança independentemente do receptor processar a mensagem
anterior ou não. Usamos uma ponta de seta alinhada para representar uma mensagem
assíncrona.
Criar mensagem – usamos uma mensagem Criar para instanciar um novo objeto no
diagrama de sequência. Existem situações em que uma determinada chamada de
mensagem requer a criação de um objeto. Ele é representado com uma seta pontilhada e
uma palavra criada rotulada nela para especificar que é o símbolo de criação de mensagem.
Excluir mensagem – usamos Excluir mensagem para excluir um objeto. Quando um objeto é
deslocado de memória ou destruído no sistema, usamos o símbolo Excluir Mensagem. Ele
destrói a ocorrência do objeto no sistema. É representado por uma seta que termina com
um x.
Auto Chamadas – certos cenários podem surgir em que o objeto precisa enviar uma
mensagem para si mesmo. Essas mensagens são chamadas de auto chamadas ou auto
delegações e são representadas por uma seta em forma de U.
Mensagem de resposta – às mensagens de resposta são usadas para mostrar a mensagem
que está sendo enviada do destinatário ao remetente. Representamos uma mensagem de
retorno/resposta usando uma ponta de seta aberta com uma linha pontilhada. A interação
avança apenas quando uma mensagem de resposta é enviada pelo receptor.
Mensagem encontrada – uma mensagem encontrada é usada para representar um cenário
em que uma fonte desconhecida envia a mensagem. Ele é representado por uma seta
direcionada a uma linha de vida de um ponto final.
Mensagem perdida – uma mensagem perdida é usada para representar um cenário em que
o destinatário não é conhecido pelo sistema. Ele é representado por uma seta direcionada a
um ponto final de uma linha de vida. Por exemplo: Considere um cenário onde um aviso é
gerado.
Usos de Diagramas de Sequência
Usado para modelar e visualizar a lógica por trás de uma função, operação ou procedimento
sofisticado.
Eles também são usados para mostrar detalhes de diagramas de caso de uso UML.
Usado para compreender a funcionalidade detalhada dos sistemas atuais ou futuros.
Visualize como mensagens, e tarefas se movem entre objetos ou componentes em um
sistema.
Referências
Roberto, G. M. T. T. Estruturas de Dados e Algoritmos em Java. [Digite o Local da Editora]:
Grupo A, 2013. 9788582600191. Disponível em:
<https://integrada.minhabiblioteca.com.br/#/books/9788582600191/>. Acesso em: 08 jan. 2021.

ROBERTS, W. R. G. Desenvolvendo Software em Java. 3. ed. [Digite o Local da Editora]: Grupo


GEN, 2009. 978-85-216-1994-9. Disponível em:
<https://integrada.minhabiblioteca.com.br/#/books/978-85-216-1994-9/>. Acesso em: 08 jan.
2021.

da, S. F. M. Paradigmas de programação. [Digite o Local da Editora]: Grupo A, 2019.


9788533500426. Disponível em:
<https://integrada.minhabiblioteca.com.br/#/books/9788533500426/>. Acesso em: 08 jan. 2021.

LUMMERTZ, O. D. B. D. S. F. M. D. P. U. R. C. Desenvolvimento para dispositivos móveis.


[Digite o Local da Editora]: Grupo A, 2019. 9788595029408. Disponível em:
<https://integrada.minhabiblioteca.com.br/#/books/9788595029408/>. Acesso em: 08 jan. 2021.

HERBERT, S. Java para iniciantes. [Digite o Local da Editora]: Grupo A, 2015. 9788582603376.
Disponível em: <https://integrada.minhabiblioteca.com.br/#/books/9788582603376/>. Acesso
em: 08 jan. 2021.

da, M. J. A. N. G. C. J. R. A. Programação de Computadores com Java. [Digite o Local da


Editora]: Editora Saraiva, 2014. 9788536519494. Disponível em:
<https://integrada.minhabiblioteca.com.br/#/books/9788536519494/>. Acesso em: 08 jan. 2021.

Sérgio, F. Java 8 - Ensino Didático - Desenvolvimento e Implementação de Aplicações.


[Digite o Local da Editora]: Editora Saraiva, 2015. 9788536519340. Disponível em:
<https://integrada.minhabiblioteca.com.br/#/books/9788536519340/>. Acesso em: 08 jan. 2021.

Créditos
Coordenação e Revisão Pedagógica: Claudiane Ramos Furtado

Design Instrucional: Luiz Specht

Diagramação: Marcelo Ferreira

Revisão ortográfica: Igor Campos Dutra

Produzido por Núcleo de Audiovisual e Tecnologias Educacionais (NATE) ULBRA EAD


Produzido por Núcleo de Audiovisual e Tecnologias Educacionais (NATE) - ULBRA EAD
Universidade Luterana do Brasil
Todos os direitos reservados.

Você também pode gostar