Académique Documents
Professionnel Documents
Culture Documents
Tpicos
ENGENHARIA DE SOFTWARE
Diagramas de Interao:
Diagramas de Sequncia
Diagramas de Colaborao
PARTE 2
Objectivos
Diagramas de Interao
Os diagramas de interao:
so utilizados em UML para modelar os aspetos dinmicos do sistema em
termos dos objetos e suas relaes, com base nas mensagens trocadas entre
Diagramas de Sequncia;
os objetos;
Diagramas de Colaborao.
Diagramas de Interao
Diagramas de Sequncia
Assncronas
permite
particularmente til
Objeto 1
Objeto 2
Objeto 3
operao
emissora
prosseguir
seu
Objeto 1
Objeto 2
Objeto 3
com processos
Mensagem 1
concorrentes
Mensagem 2
destinatrio.
Mensagem Sncrona
Mensagem Assncrona
10
Objeto 1
Objeto 2
Objeto 1
12
Chamador
Linha Telefnica
Chamado
no mensagens em
Levanta
Tonalidade p/ marcar
Digitao nmero
Indicao de
chamada
Campanha
Levanta
e de dados.
Est ?
14
As
interaes
compsito
internas
podem
entre
tambm
sub-objetos
ser
contidos
expressas,
ao
num
objeto
do
objeto
nvel
Sub-objeto A
Sub-objeto B
Destri
correspondem temporalmente ao
incio e fim de um perodo de atividade.
Objeto criador
Cria
Um perodo de atividade
Corresponde ao tempo durante o qual um objeto exerce a sua ao, direta ou
16
Ativao
Objeto criado
18
sua vida. Um objeto pode ser ativado vrias vezes durante a sua
A
objeto A ao objeto B, e
existncia.
(a mensagem sncrona).
O retorno implcito,
no necessrio represent-lo.
O objeto A retoma a execuo
logo que a ao desencadeada
Retorno explcito
Retorno explcito
antes do suicdio
em B termine.
20
Exemplo de um
diagrama mais
Mensagem assncrona
Cria
umaTransao
complexo que
inclui processos
Cria
umCoordenador
de transao
Cria
concorrentes:
umVerificador
De transao
Cria
Transao
OK
bancria
Recurso explcito
com vrias
Terminado?
mensagens
assncronas.
outroVerificador
De transao
OK
X
serVlida
Terminado?
Objeto suicida-se
Autodelegao
Engenharia de Software - 2011/2012
22
umaTransaco
Cria
Se um dado teste
umaTransao
Cria
umVerificador
de transao
Cria
Cria
OK
umCoordenador
de transaco
chamado assincronamente e
executado em paralelo.
Cria
falha, o coordenador
umCoordenador
de transao
outroVerificador
de transao
Cria
verificadores que
Cria
estejam ainda
falha
em execuo
Terminado?
umVerificador
de transaco
mata verificadores
mata
serInvlida
OK
outroVerificador
de transaco
X
X
serVlida
Terminado?
tiveram sucesso (como este o caso), o coordenador notifica a transao que est tudo bem.
Engenharia de Software - 2011/2012
24
Transio: momento de
emisso da mensagem. A
sua nomeao pode ser
especificada no diagrama e
utilizada como referncia,
por exemplo, para a
construo de
constrangimentos temporais
x
{y-x < 3s}
y
{y-z < 1s}
z
Controlo Centralizado
Mensagem
Mensagem
Mensagem
Controlo Descentralizado
Mensagem
Exemplos de
constrangimentos temporais
construdos a partir de
nomes de transies
t
{t-t < 2s}
t
While X
loop
Mensagem
26
A
Iterao simbolizada
pelo caracter *
* [X] Mensagem
condio entre [ ]
If X
Mensagem
else
Mensagem
end if
end loop
[X] Mensagem
[no X] Mensagem
Diagramas de Colaborao
28
Diagramas de Colaborao
objetos
ligaes
mensagens
Diagramas de Colaborao
30
Diagramas de Colaborao
Os diagramas de colaborao:
:Cabina
Abrir
:Porta
Exemplo de representao da
:Elevador
:Porta
:Luz
Diagramas de Colaborao
externos ao sistema.
identificados pela
:Pessoa
restrio {transitrio}.
:Elevador
Representao da criao
de objetos e de ligaes
32
:Cabina
C
D
{transitrio}
{destrudo}
Engenharia de Software - 2011/2012
34
2: Escrever
1: Ler
:Scanner
:Impressora
objeto ativo.
nome argumentos
retngulo com a linha mais forte do que a linha que delimita os objetos
passivos.
Engenharia de Software - 2011/2012
36
mensagens.
Pode tambm utilizar-se um nome para identificar um fluxo de
execuo paralela no seio de um conjunto.
Assim:
38
* [I :=1 .. N) : Mensagem
:X
Sintaxe da sequncia:
Rank * [clausula de iterao]
Ou
Rank [clausula condicional]
[X > Y] : Mensagem
40
Nome
Trata-se do nome da mensagem.
mensagem.
Esses valores podem ser utilizados como parmetros das outras
mensagens que compem a interao.
Este campo no existe quando no h valores devolvidos.
O formato do campo livre.
Exemplo de representao da recuperao de um resultado:
A
Argumentos
Trata-se da lista de parmetros da mensagem,
Os argumentos e o nome da mensagem identificam de maneira nica a ao
que deve ser desencadeada no objeto destinatrio.
Os argumentos podem conter valores devolvidos por mensagens enviadas
p:= pergunta
42
Argumentos (cont)
Os argumentos das mensagens so representados nos diagramas, quer
Etiqueta da mensagem
Significado
4: Display(x, y)
Mensagem simples
3.3.1: Display(x,y)
Mensagem imbricada
4.2:idade:=Subtrair(Hoje, DataNascimento)
Mensagem condicional
1 * : Lavar()
Iterao
Iterao paralela
Mensagem
Argumento
B
Argumento
44
J sabemos:
Diagramas de sequncia mostram as interaes numa perspetiva temporal;
J nos diagramas de colaborao a nfase deslocada para a estrutura
espacial esttica que permite a colaborao entre os objetos.
Engenharia de Software - 2011/2012
Tpicos
ENGENHARIA DE SOFTWARE
Diagrama de Estados:
Conceito e aplicao
estado
transio de estados
Tpicos avanados
PARTE 2
agrupamento de estados
Objetivos
Estados
Classe
1
Mquina de
Estados
Estado
representado por um retngulo de cantos arredondados, pode ter atividade
associada, indicado por uma etiqueta com a sintaxe: ex. do/atividade; possui
Estado
representa uma situao estvel de um objeto que se prolonga durante um
intervalo de tempo, durante o qual os atributos no sofrem qualquer
Diagrama de Estados
Estado
Intermdio
atingem o objeto.
Estado Inicial
Estado Final
Transio
Evento
comportamento dinmico.
Um objeto, quando num dado estado, espera pela ocorrncia de um dado
evento para transitar para outro estado.
Estado A
Estado B
Estado A
Estado B
Evento
10
Guarda
Aes
Estado A
Est muito quente [vero]
Estado A
Evento [condio]
Estado B
Ar
Condicionado
no so interruptveis.
12
Atividades
so as operaes que esto associadas a estados e podem demorar mais;
podem ser interrompidas por algum evento.
Podem ser ativadas em quatro momentos distintos:
no incio do estado (entry/)
durante o estado (do/)
imediatamente antes da transio do estado (exit/)
A
entry/
AnEvent/
exit/
14
Os parmetros do evento
/Op1
Despenhar-se
Um estado
entry/Op2
do/Op3
AnEvent/Op4
exit/Op5
de estados da classe.
/Op6
A voar
Aterrar
Criar(Registo)
Em terra
16
da atividade atraso.
18
incio
busca 1. item
atraso.
Verificao
do / verifica
item
do / inicia
entrega
/ Abre ranhura
/ Abre ranhura
Despacho
entry/Mostra mensagem
exit/Fecha a ranhura
Depsito executado
Depsito executado
transio
Entregue
Item recebido
[alguns itens no em stock]
Cancelar
Transao
Espera
A voar
Entregue
atividade
depois de (3 minutos)
auto-transio
estado
20
Explicao do Diagrama
Isto indica que a transio ocorrer sempre quando esse evento ocorrer.
Note-se que a transio no ocorrer quando a atividade ficar completa; em vez
disso, uma vez a atividade iniciar entrega esteja acabada, a encomenda permanece
no estado Despacho at que o evento Entregue ocorra.
22
Verificao
Enc. Ativa
busca 1. item
busca 1. item
do / verifica
item
Verificao
do / verifica
item
Despacho
do / inicia
entrega
Despacho
do / inicia
entrega
Entregue
Item recebido
[todos itens disponveis]
Item recebido
[alguns itens no em stock]
Entregue
Cancelada
Espera
Cancelada
Item recebido
[alguns itens no em stock]
Espera
Cancelada
Cancelada
Cancelada
Entregue
Cancelada
Entregue
24
da encomenda so baseados na
disponibilidade dos itens.
do / valida
pagamento
questo da autorizao de
cancelada
[pagamento OK]
Cancelada
Autorizada
Espera
Rejeitada
Despacho
Entregue
Entregue
Autorizao
Autorizada
fim
Recusada
[Pagamento recusado]
26
Note-se
que
no
deveremos
estabelecer
muitos
conjuntos
de
no estado Cancelada.
Cancelada
Verificao
Despacho
Autorizao
Autorizada
interface.
Entregue
fim
Recusada
[Pagamento recusado]
Tpicos
ENGENHARIA DE SOFTWARE
Diagrama de Atividades:
Conceitos fundamentais
origem
conceito e aplicao
elementos de modelao
PARTE 2
Tpicos avanados
decomposio de atividades
pistas ou linhas verticais de responsabilizao
Objectivos
Origens
diagramas de eventos
redes Petri
na abordagem ao paralelismo.
descrever
comportamentos
que
tenham
bastante
processamento
paralelo.
Definio
Conceito de Atividade
a desenhar o diagrama:
mas
eficaz
para
descrever
fluxos
de
trabalho
numa
Elementos de Modelao
Exemplo de Atividade
Exemplo:
Atende
entry/ Cumprimenta cliente
do/ Informa sobre a promoo da semana
exit/ Pergunta o que deseja
on Pedido do Gestor da Loja (Mensagem)
[No existirem clientes em fila de espera]/ Executa tarefa
Elementos de Modelao
10
Elementos de Modelao
realizam
Evento(argumentos) [condio] / Ao
[muito frio]
Inicia
Encomenda
Mede a
temperatura
Mede a
temperatura
[muito quente]
[muito frio]
Aquecer
[muito quente]
Arrefecer
Aquecer
Arrefecer
Elementos de Modelao
12
Elementos de Modelao
Barras de sincronizao
Barras de sincronizao
Desligar
aquecimento
Arrefecer
Abrir janela
um AND lgico); e
Barras de sincronizao condicionais, que exigem a satisfao de uma condio alm
da disponibilidade de todos os disparos.
Desligar
aquecimento
Abrir janela
Medir
temperatura
Exemplo
14
Exemplo
Encontra bebida tem dois triggers a sair: cada um tem uma guarda (tal
PESSOA
Guarda
Encontra
bebida
Deciso
[No h caf]
Barra de
Sincronizao
[H caf]
Ponto de
entrada
[No h cola]
Obtm lata de
cola
Obtm as
chvenas
Pe gua no
reservatrio
onde saem trs triggers (um leva atividade pr caf no filtro, outro
Pe o filtro na
mquina
Liga a
mquina
Faz infuso do
caf
luz desliga-se
Ponto de
sada
Bebe
bebida
Vasa
o caf
Exemplo
16
Exemplo
gua no reservatrio. Ento vamos ter no final dos triggers que saem destas
em paralelo (simultaneamente)
atividades uma nova barra de sincronizao, que aqui vai indicar que o
trigger de sada vai ser disparado s quando ambos os triggers de entrada
PESSOA
Guarda
Encontra
bebida
Pe caf no
filtro
tenham ocorrido.
Deciso
[No h caf]
Barra de
Sincronizao
[H caf]
Ponto de
entrada
Obtm as
alternativas
Pe gua no
reservatrio
[No h cola]
[H cola]
Obtm lata de
cola
Pe o filtro na
mquina
Liga a
mquina
Faz infuso do
caf
luz desliga-se
Ponto de
sada
Vasa
o caf
Bebe
bebida
Exemplo
18
Exemplo
Guarda
Encontra
bebida
Barra de
Sincronizao
[H caf]
Ponto de
entrada
Pe caf no
filtro
Deciso
[No h caf]
Obtm as
alternativas
Pe gua no
reservatrio
[No h cola]
a entrar nela:
[H cola]
Obtm lata de
cola
Pe o filtro na
mquina
Liga a
mquina
PESSOA
Guarda
Faz infuso do
caf
luz desliga-se
Encontra
bebida
Ponto de
sada
Vasa
o caf
Deciso
[No h caf]
Barra de
Sincronizao
[H caf]
Ponto de
entrada
Bebe
bebida
Pe caf no
filtro
Obtm as
alternativas
Pe gua no
reservatrio
[No h cola]
[H cola]
Obtm lata de
cola
Pe o filtro na
mquina
Liga a
mquina
Faz infuso do
caf
luz desliga-se
Ponto de
sada
Vasa
o caf
Bebe
bebida
Aplicaes Tpicas
20
22
Cancela
encomenda
[no]
Disparo
mltiplo
Recebe
encomenda
*
Autorizado
pagamento
Verifica
item
[sim]
[em stock]
Afecta
encomenda
Condio de
sincronizao
[ necessrio
encomendar mais]
Encomenda
mais
Despacha
encomenda
Disparo
mltiplo
Recebe
encomenda
*
Cancela
encomenda
[no]
Autorizado
pagamento
Verifica
item
[sim]
[em stock]
Afecta
encomenda
Condio de
sincronizao
[ necessrio
encomendar mais]
Encomenda
mais
Despacha
encomenda
24
Receo de fornecimento e
afetao de produtos a
Recebe
fornecimento
encomendas em espera.
Afecta
encomenda
[todas os itens
de encomendas
em espera
satisfeitos]
[stock afecto a
todos os itens e
pagamento
autorizado]
Despacha
encomenda
Escolhe Itens de
encomenda em espera
Para cada item selecionado
* da encomenda
26
Recebe
encomenda
Cancela
encomenda
[no]
Autorizado
pagamento
Verifica
item
[sim]
[em stock]
Afecta
encomenda
Afecta
encomenda
[ necessrio
encomendar mais]
Encomenda
mais
[todas os itens
de encomendas
em espera
satisfeitos]
Recebe
fornecimento
28
Finanas
Processamento de
Encomendas
Recebe
encomenda
cada uma das atividades criando reas separadas que formam pistas
(como as de uma piscina).
Autorizado
pagamento
[sim]
[no]
Cancela
encomenda
Escolhe Itens de
encomenda em espera
[em stock]
[ necessrio
Encomenda
mais
[stock afeto a todos os itens
e pagamento autorizado]
Despacha
encomenda
Afeta
encomenda
encomendar mais]
efetuar rearranjos no diagrama por forma a que seja possvel formar zonas
Recebe
fornecimento
Verifica
item
Afeta
encomenda
Gestor de
Armazm
[todas os itens
de encomendas
em espera
satisfeitos]
Decomposio de Atividades
30
[c. crdito]
Determina tipo
de Pagamento
[cheque]
[falhou]
[no]
Cheque com
Cobertura
[factura]
Cliente
habitual?
[no]
[no]
[no]
[OK]
[OK]
[sim]
[sim]
Autoriza Carto
de Crdito
Verifica histria
de pagamentos
[mau pagador]
Requere prpagamento
[no recebido]
[OK]
Verifica
crdito
[mau crdito]
[falhou]
[OK]
Abre conta de
cliente
[bem sucedido]
Quando Utilizar