49
C C E PUC-Rio 1 Tópico 5 UML - Diagrama de Atividade Luiz Antônio M. Pereira [email protected] [email protected]

UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

Embed Size (px)

Citation preview

Page 1: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

C C

E

PUC-Rio

1

Tópico 5 – UML - Diagrama de Atividade

Luiz Antônio M. Pereira [email protected]

[email protected]

Page 2: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Motivação

Em muitas situações precisamos especificar

Os passos necessários para a realização de uma tarefa

Executada em paralelo por mais de um executor;

Onde os passos se estruturam de forma não sequencial;

Com desvios causados por diversas condicionalidades;

Onde artefatos são produzidos e trocados entre os executores.

Um algoritmo complexo

Envolvendo processamento em paralelo, pontos de sincronismo, desvios múltiplos (switches), intercalações, etc.

2

Page 3: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Motivação

Diagramas de Atividade da UML são expressivos o suficiente para a modelagem completa de processos com muitas ações executadas em paralelo.

3

Page 4: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

4

DA - Conceitos

Antes da UML 2.0 eram entendidos como variantes do DTE, onde os estados são estados de atividade;

Transição entre “Ação 1” e “Ação 2” só é trilhada quando “Ação 1” termina, ou seja, o evento que provoca a transição é o evento de fim de “Ação 1”.

Ação 1 Ação 2

Page 5: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Conceitos

Dos diagramas que já existiam na UML, foi o que mais sofreu inovações na versão 2.0;

DAs incorporaram nos últimos anos mecanismos para tratamento de paralelismo, partições hierarquizadas e em duas dimensões, pinos etc.

5

Page 6: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

6

DA - Conceitos

Enfocam o fluxo de controle entre ações do sistema (visão dinâmica);

Esses diagramas especificam a ordem de execução das ações, cobrindo, portanto, parte da dimensão temporal do modelo de um sistema;

Úteis para modelagem de programas concorrentes, onde se projetam graficamente as threads e pontos de sincronismo.

Page 7: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Conceitos

Vêm sendo usados em inúmeras outras aplicações, além das tradicionais especificações de algoritmos complexos:

Processos de engenharia;

Processos de negócios (fluxos de trabalho - workflows);

...

7

Page 8: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

8

DA - Elementos da Notação

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

Page 9: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

9

DA - Estados Inicial e Final

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

Estado Inicial

Page 10: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

10

DA - Estados Inicial e Final

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

Estado Final ou Ponto de Parada

Page 11: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

11

DA - Estados Inicial e Final

Estado inicial:

Indica o ponto de início da atividade;

Só pode ter um no mesmo contexto.

Estado final:

Pode haver mais de um no mesmo diagrama;

Quando atingido, a máquina é encerrada, indicando o ponto de término da atividade.

Page 12: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

12

DA – Atividade e Ações

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

Atividade

Ação

Page 13: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

Preparar

Café

Imposto = Renda

Líquida * 0,20

DA – Atividade e Ações

Exemplos de ações:

Preferencialmente usar nomes com verbos no infinitivo.

13

Page 14: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Atividade e Ações

Ação é a unidade fundamental para a especificação de um comportamento (UML);

Representa algo indivisível (atômica);

Atividade é composta de ações e/ou sub-atividades.

14

Page 15: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Atividade e Ações

Uma ação recebe um conjunto de entradas e as converte em um conjunto de saídas, embora ambos os conjuntos possam ser vazios;

O conjunto de entradas para uma ação pode ser resultado das saídas de uma ou mais ações executadas anteriormente.

15

Page 16: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

16

DA - Transições

Transição

Page 17: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

17

DA – Transições

Também chamadas de fluxos;

São trilhadas quando as atividades origem terminam.

São não-qualificadas; ou

Qualificadas com “guardas”: expressões lógicas que indicam as condições em que são trilhadas. As guardas são colocadas entre “[” e “]”;

Page 18: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

18

DA – Transições

Desvio ou branch Intercalação ou merge

Page 19: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Transições

Um desvio ou nó de decisão é um nó de controle que escolhe entre fluxos de saída;

Fluxos de saída obrigatoriamente guardados com as respectivas condições de saída;

19

Page 20: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Transições

De um desvio podem partir vários fluxos, desde que as guardas especifiquem condições lógicas mutuamente excludentes.

Em outras palavras: um desvio corresponde a um fluxo de controle de entrada com um fluxo de controle de saída.

20

Page 21: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

21

DA – Transições

[senão] [A]

...

[...] [B]

[C]

Page 22: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Transições

A contrapartida de um nó de decisão é um nó de intercalação;

Recebe os vários fluxos de entrada (que correspondem aos desvios) e tem um único fluxo de saída.

22

Page 23: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Transições

Uma intercalação tem que ser colocada sempre que colocamos um nó de decisão, a menos que o fluxo termine ou que outra decisão precise ser tomada.

23

Ação Tal

Action1

[condição tal]

Page 24: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

24

DA – Separações e Junções

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

Separação ou fork Junção, união ou join

Page 25: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

25

DA – Separações e Junções

Separações:

Uma transição de entrada e várias transições de saída;

As atividades ligadas às transições de saída são executadas em paralelo (threads ou fios de execução);

Em outras palavras: um fork corresponde a um fluxo de controle de entrada com dois ou mais fluxos de controle de saída.

Page 26: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

26

DA – Separações e Junções

Junções:

São as contrapartidas das separações;

Marcam pontos de sincronismo;

Processamento só passa da junção quanto todos os fios de execução que nela convergem são terminados;

A representação no modelo não é obrigatória pela UML. Múltiplos fluxos de entrada em uma ação caracterizam uma junção implícita.

Action2 Action3

Action4

Action2 Action3

Action4

Page 27: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

27

DA - Partições

Partições:

Partições ou raias (swimlanes) são usadas quando há necessidade de se indicar quem executa as atividades;

As ações executadas por determinado executor/setor são colocadas na raia desse determinado executor/setor;

As raias podem ser hierarquizadas;

As raias podem ser bi-dimensionais.

Page 28: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Partições

28

Processamento

Despacho

Estoque

B

B1 B2

A

A1

A2

Page 29: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Fluxo de Objetos

Objetos (artefatos) podem ser passados de uma ação a outra durante a execução de uma atividade;

Objetos são denotados por retângulos que se situam no fluxo entre as ações que os passam e as que os recebem:

29

Receber Pedido Atualizar

Estoque

umaFatura:Fatura

Page 30: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Fluxo de Objetos

O nome do objeto deve ser colocado no interior do retângulo na forma objeto:classe,

A referência à instância ou à classe (uma ou outra) é opcional.

Nomes aceitáveis:

copiaFatura:Fatura, copiaFatura, :Fatura

30

Page 31: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

Emitir Boleto de

Mensalidade

DA – Atividades Aninhadas

Exemplos:

31

Atividades

aninhadas são

detalhadas em

outros diagramas

Emitir Boleto de

Mensalidade

Page 32: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Atividades Aninhadas Para manterem a consistência do

modelo, os CASEs

1. Criam um diagrama para modelarmos a atividade aninhada;

2. Permitem que arrastemos um diagrama para dentro de outro.

32

Page 33: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Sinais e Eventos Temporais

O envio de um sinal em um modelo de sistema pode estar associado ao lançamento de uma interrupção;

A recepção de um sinal pode estar associada à execução da ação de tratamento dessa interrupção.

33

Pro

ce

ss

am

en

toA

ten

dim

en

toF

ina

nc

eir

o

Receber

pedido

«signal sending»Solicitar Pagamento

«signal receipt»Pagamento Confirmado

Preparar

fatura

cópia do pedido

Organizar pedido

«signal receipt»Pedido Completo

Embalar

pedido

Notificar

transportadora

ActivityFinal

[senão]

[pedido completo]

Page 34: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Sinais e Eventos Temporais

Um evento temporal é algo que ocorre

em um instante determinado (evento temporal fixo), ou

após determinado tempo medido com relação à ocorrência de outro evento (evento temporal relativo);

Um evento temporal pode dar origem a um fluxo.

34

Page 35: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Consolidando...

35

Preparar Café

Receber

Ficha

Informar "Ficha

Inv álida"

Colocar Pó no

Filtro

Ferv er Água

Colocar Copo

na Bandeja

Despejar

Água

Ferv ente

Sobre o Pó

Despejar Açúcar

no Copo

Despejar Café no

Copo

Informar "O Café

Pode Ser

Retirado"

[ficha válida]

[senão]

Page 36: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Consolidando...

36

Pro

ce

ss

am

en

toA

ten

dim

en

toF

ina

nc

eir

o

Receber

pedido

«signal sending»Solicitar Pagamento

«signal receipt»Pagamento Confirmado

Preparar

fatura

cópia do pedido

Organizar pedido

Embalar

pedido

Notificar

transportadora

Page 37: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

C C

E

PUC-Rio

Aspectos Complementares

37

Page 38: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Fim de Fluxo

Também chamado de cancelamento;

Usado para denotar que um fio de execução terminou, mas a máquina continua ativa;

Diferente do ponto de parada, que especifica que TODA a máquina se encerra naquele ponto;

Notação:

38

Page 39: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Fim de Fluxo

39

A

B

C

D

E

[c1]

[c2]

Page 40: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Conectores

Usados para evitar longas setas de fluxos;

Usados em quebras de páginas.

40

Page 41: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Pinos

Uma ação pode receber parâmetros (objetos, valores, listas de objetos ou de valores etc.) da ação anterior

Uma ação pode passar parâmetros para a ação seguinte na sequência.

Podemos usar a notação de pinos.

41

Receber Fatura

PedidoReceber Pagamento

Pedido

Receber Fatura Receber PagamentoPedido

Page 42: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA - Transformações

Usadas quando o parâmetro de entrada de uma ação é o resultado de uma operação aplicada no parâmetro de saída da ação anterior na sequência.

As transformações devem ser livres de efeitos colaterais (não podem alterar o estado do ambiente).

42

Elaborar Análise de Crédito

Laudo

Informar Resultado de Análise de

Crédito

Nome eMail Parecer

Page 43: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Regiões de Expansão

Usadas para especificar conjuntos de ações que são realizadas em paralelo ou iterativamente.

43

Aplicar Prov as

Provas

Notas

«parallel»

Provas

Notas

Corrigir Prov a Lançar Nota

Classificar

Alunos

Fluxo de Objetos

Paralelo ou iterativo

Page 44: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Especificando UCs

Problemas da especificação textual:

Não é concisa;

Dificilmente é completa;

Pouco manutenível.

Inserção, alteração e remoção de passos facilmente provoca inconsistências na especificação (a rastreabilidade);

A tecnologia tipicamente usada (tabelas do Word com referências cruzadas) é de baixa usabilidade.

44

Continua ...

Page 45: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Especificando UCs

Problemas da especificação textual (cont):

Precisam ser interpretadas e convertidas em diagramas pelos projetistas (é nessa etapa que a incompletude é evidenciada);

Demandam retrabalho (novas entrevistas).

45

Page 46: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Especificando UCs

Vantagens de uso:

Concisão;

Completude mais facilmente buscada;

Cenários podem ser facilmente identificados;

Maior manutenibilidade;

Especificação da colaboração Ator(es) Sistema feita visualmente, com o uso de ferramenta gráfica.

46

Page 47: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Especificando UCs

Desvantagem de uso:

Usuário em geral não é familiarizado com a notação dos DAs da UML.

O caminho do meio:

Analista especifica em DA e depois converte para texto, para homologação pelo cliente.

47

Page 48: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E DA – Especificando UCs

Duas formas básicas de especificação com DAs:

Especificando unicamente as ações do sistema;

Vantagem: melhor estruturação do diagrama.

Desvantagem: as ações dos atores não são evidenciadas.

Incluindo também as ações dos atores na especificação.

Em raias distintas;

Usando cores distintas para as ações.

48

Page 49: UML - Diagramas 5 - UML... · PUC-Rio C C E Emitir Boleto de Mensalidade DA – Atividades Aninhadas

PUC-Rio

C C

E

49

DA – Onde Mais Usar?

Quando utilizar DAs (dicas do Fowler):

Descrevendo um algoritmo complicado;

Lidando com aplicações de processamento paralelo.

Modelagem de negócios.