Vous êtes sur la page 1sur 26

Cap. 7.

1 Modelao do Comportamento Diagrama de Interao [Parte 2]


2

Tpicos

ENGENHARIA DE SOFTWARE

 Diagramas de Interao:
 Diagramas de Sequncia
 Diagramas de Colaborao

 Anlise comparativa dos Diagramas de Sequncia e Colaborao

PARTE 2

 Quando utilizar os Diagramas de Interao

LINGUAGEM DE MODELAO UML

C AP. 7 . 1 U M L M O D E L A O D O C O M P O RTAM E NTO


D I AG R AM A D E I NT E R A O

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


3

Objectivos

Diagramas de Interao

 Familiarizar com os conceitos essenciais sobre os Diagramas de

 Os diagramas de interao:
 so utilizados em UML para modelar os aspetos dinmicos do sistema em

Interao, nas suas duas vertentes:

termos dos objetos e suas relaes, com base nas mensagens trocadas entre

 Diagramas de Sequncia;

os objetos;

 Diagramas de Colaborao.

 so modelos que descrevem como grupos de objetos colaboram entre si na


obteno de um dado comportamento;
 Agrupam dois tipos de diagramas:
 diagramas de sequncia,
 diagramas de colaborao.

 Tipicamente, cada um deles descreve o comportamento de um nico caso de


uso, ilustrando um conjunto de objetos tpicos e as mensagens que so
trocadas entre eles no seio do caso de uso.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


5

Diagramas de Interao

Diagramas de Sequncia

 Modelar a dinmica de um sistema fundamental para dominar a sua


complexidade e aumentar a compreenso das suas particularidades.

 Os diagramas de sequncia mostram a perspetiva temporal da


interao entre os objetos, realando a ordem cronolgica das

 frequente utilizar diagramas de interao em conjunto com a


descrio textual dos casos de uso, pois facilitam a sua compreenso
ao fornecer uma representao grfica das interaes entre os objetos.
 Podemos desenhar estes diagramas com vrios nveis de detalhe e ao
longo das diversas etapas do processo de desenvolvimento do sistema.

mensagens entre os objetos


 O contexto dos objetos (forma como se posicionam uns relativamente
aos outros) no representada de forma explcita.
 A representao concentra-se
sobre a expresso das interaes.
Nome: Classe

 Um objeto representado por


 um retngulo e
 uma linha vertical, denominada
linha de vida do objeto.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


7

Diagramas de Sequncia: Mensagens

 Os objetos comunicam trocando mensagens representadas por setas


horizontais orientadas do emissor de uma mensagem para o seu

 As mensagens so trocadas entre objetos e representam a invocao


de um servio (operao) disponibilizado por um objeto, com o
objetivo de despoletar uma ao ou atividade.

 Sncronas - o objeto emissor fica suspenso espera de uma resposta,


 este tipo de mensagem utilizado quando o objeto emissor necessita de dados
provenientes do objeto recetor, para que possa continuar o seu processamento

 Assncronas

permite

 particularmente til
Objeto 1

Objeto 2

Objeto 3

para ilustrar sistemas

operao

emissora

prosseguir

seu

Objeto 1

Objeto 2

Objeto 3

com processos
Mensagem 1

concorrentes
Mensagem 2

Engenharia de Software - 2011/2012

processamento, sem esperar pela resposta do objeto recetor

 A ordem de envio das


posio no eixo vertical.

 As mensagens podem ser:


retomando posteriormente o controlo

destinatrio.

mensagens dada pela

Diagramas de Sequncia: Mensagens

Carlos Barrico - Departamento Informtica da UBI

Mensagem Sncrona

Mensagem Assncrona

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


9

Diagramas de Sequncia: Mensagens

10

Diagramas de Sequncia: Mensagens

 As mensagens podem ainda ser:

 A seta pode ser representada numa

 simples - utilizadas quando no est definido o tipo de mensagem, ou este


tipo no relevante.

Objeto 1

de transmisso que no sejam

 de retorno - utilizada para ilustrar o retorno da mensagem enviada que


poder ser um valor ou um sinal.
 para mensagens sncronas est implcita a existncia de um retorno no fim de

Objeto 2

posio oblqua para exprimir atrasos


Mensagem

desprezveis relativamente dinmica


de conjunto.
 Um objeto pode tambm enviar uma

execuo, no carecendo de representao

mensagem para si prprio. Trata-se

 j para mensagens assncronas, deve representar-se a mensagem de retorno

Objeto 1

de uma mensagem reflexiva ou


Mensagem
Reflexiva

autodelegao (pode no ser uma


verdadeira mensagem, mas sim o incio
de uma atividade de mais baixo nvel
que tem lugar no interior do objeto).
Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


11

Diagramas de Sequncia: Tipos de Utilizao

12

Diagramas de Sequncia: Tipos de Utilizao

 H dois tipos de utilizao muito distintos dos diagramas de sequncia,


dependentes da fase do ciclo de desenvolvimento em que estivermos:
1. Documentao de casos de uso (mais aligeirados);
2. Representao de interaes entre objetos (aqui mostrando todas as

1. Documentao dos casos de uso:


 Os diagramas so utilizados para descrever a interao em termos muito
gerais, sem tomar em considerao os pormenores de sincronizao;
 As setas limitam-se a
indicar eventos, e

interaes entre os objetos).

Chamador

Linha Telefnica

Chamado

no mensagens em
Levanta

sentido restrito usado


em programao;
 Em geral no se
pretende distinguir
entre fluxos de controlo

Tonalidade p/ marcar
Digitao nmero
Indicao de
chamada

Campanha

Levanta

e de dados.
Est ?

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


13

Diagramas de Sequncia: Tipos de Utilizao

14

Diagramas de Sequncia: Objetos Compsitos

 As

2. Representao das interaes entre objetos:


 A este nvel podem exprimir-se todas as formas de interao entre objetos:
chamadas de procedimentos, eventos discretos, sinalizao entre fluxos de

interaes

compsito

internas

podem

entre

tambm

sub-objetos

ser

contidos

expressas,

ao

num

objeto

do

objeto

nvel

compsito, como mensagens reflexivas.

execuo, interrupes de hardware, condies a serem satisfeitas.


 Neste tipo de utilizao, as mensagens so j mais especficas, podendo ser
Objeto compsito

de vrios tipos (sncronas, assncronas, simples e de retorno).

Sub-objeto A

Sub-objeto B

 Tambm h variantes que levam em conta atrasos de transmisso e auto


mensagens.
Ponto de
entrada

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


15

Diagramas de Sequncia: Criao e Destruio de Objetos

 A criao de objetos representa-se fazendo apontar a mensagem de


 A destruio de um objeto representada pela terminao da linha
de vida, sobre a qual se coloca um X, quer altura da mensagem que
provocou a destruio, quer aps a ltima mensagem enviada, para
um objeto que se suicida.

Destri

indiretamente, atravs de um objeto que lhe presta servio.


 Representa-se por bandas retangulares colocadas sobre as linhas de vida.
 O incio e o fim de uma banda
Objeto

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

criao para um retngulo que simboliza o objeto criado.

Engenharia de Software - 2011/2012

16

Diagramas de Sequncia: Tempos de Atividade dos Objetos

Ativao

Objeto criado

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


17

Diagramas de Sequncia: Tempos de Atividade dos Objetos

18

Diagramas de Sequncia: Tempos de Atividade dos Objetos e Retorno

 Exemplo de uma situao em que o perodo de atividade do objeto A


cobre o perodo de atividade do objeto B.

 No caso de envios assncronos, o retorno deve ser representado,


quando existe.

 No caso da chamada de um procedimento,

 Note-se que o fim da ativao de um objeto no corresponde ao fim da

 o fluxo de execuo passado do

sua vida. Um objeto pode ser ativado vrias vezes durante a sua
A

objeto A ao objeto B, e

existncia.

 o objeto A fica bloqueado at que


o objeto B lhe restitua o controlo

(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.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


19

Diagramas de Sequncia: Mensagens de Autodelegao

 No caso particular do envio de mensagens recursivas representa-se por


um desdobramento da banda retangular.

20

Diagramas de Sequncia: Exemplo

 Exemplo de um
diagrama mais

Mensagem assncrona
Cria
umaTransao

 O objeto comporta-se ento como se estivesse ativo vrias vezes.

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

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


21

Diagramas de Sequncia: Exemplo cenrio 1

22

Diagramas de Sequncia: Exemplo - cenrio 2

Quando uma transao criada, criado um coordenador de transao para coordenar a


verificao da transao.
Este coordenador cria, por sua vez, dois objetos verificadores de transao, cada um dos quais
Cria

responsvel por uma verificao particular.

umaTransaco

Cria

Este processo permitir facilmente

 Se um dado teste

umaTransao

adicionar vrios processos de

Cria

verificao, dado que cada verificador

umVerificador
de transao

Cria

Cria
OK

Quando um verificador de transao


completa a sua operao, notifica

umCoordenador
de transaco

mata todos os outros

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

o coordenador de transao. Este

OK

verifica se todos os verificadores j

outroVerificador
de transaco

X
X

serVlida
Terminado?

responderam. Em caso negativo, no


faz nada. Em caso afirmativo, e se todos

 e diz transao que invlida.

tiveram sucesso (como este o caso), o coordenador notifica a transao que est tudo bem.
Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


23

Diagramas de Sequncia: Formas de Controlo

24

Diagramas de Sequncia: Transies e sua especificao

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

A forma dos diagramas de sequncia refletem


indiretamente as escolhas do modo de controlo.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Exemplos de
constrangimentos temporais
construdos a partir de
nomes de transies

Engenharia de Software - 2011/2012

t
{t-t < 2s}
t

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


25

Diagramas de Sequncia: Estruturas de Controlo

While X
loop

Mensagem

26

Diagramas de Sequncia: Estruturas de Controlo

A
Iterao simbolizada
pelo caracter *

* [X] Mensagem

condio entre [ ]

If X

Mensagem

else

Mensagem

end if

end loop

Objeto A envia mensagem a B sem parar


enquanto a condio X for verdadeira Representao atravs de pseudocdigo

Objeto A envia mensagem a B ou C dependendo da


condio X - Representao atravs de pseudocdigo

Objeto A envia mensagem a B sem parar enquanto a


condio X for verdadeira - Representao alternativa,
atravs de iterao condicional

[X] Mensagem

[no X] Mensagem

Objeto A envia mensagem a B ou C dependendo da


condio X - Representao atravs de condio

Representao de salto condicional atravs de duas formas alternativas

Representao de loop atravs de duas formas alternativas

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


27

Diagramas de Colaborao

28

Diagramas de Colaborao

 Diagramas de Colaborao apresentam as interaes entre objetos,


mas centradas nos objetos intervenientes.
 O contexto de uma interao compreende os argumentos, as variveis
locais criadas durante a execuo, e as ligaes entre os objetos que
participam na interao.

 Diagramas de Colaborao so uma extenso dos diagramas de


objetos.
 Reala a organizao estrutural dos objetos que enviam e recebem
mensagens.
 Mostram as interaes entre objetos, insistindo sobre a sua estrutura

 Uma interao realizada por um conjunto de objetos que colaboram


entre si atravs da troca de mensagens.
 Nos diagramas de colaborao o tempo no representado de maneira

espacial esttica que permite que os objetos de um grupo colaborem


entre si.
 So compostos pelos seguintes elementos abstratos de modelao:

explcita (ao contrrio do que acontece nos diagramas de sequncia,

 objetos

rigidamente ligados varivel tempo). Por isso, as sucessivas

 ligaes

mensagens tm que ser numeradas para exprimir a ordem de envio.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

 mensagens

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


29

Diagramas de Colaborao

30

Diagramas de Colaborao

 Os diagramas de colaborao:

 Exemplo de interao: a cabina do

 exprimem o contexto de um grupo de objetos, atravs dos objetos e ligaes

:Cabina

elevador pede porta que se abra

Abrir

 compreende os argumentos, as variveis locais criadas durante a execuo e as


ligaes entre os objetos que participam na interao.

:Porta

 e mostram as interaes entre esses objetos pela representao dos envios


de mensagens.

 Exemplo de representao da

:Elevador

sequncia de envio de mensagens,


1: Subir

atravs da respetiva numerao.


:Cabina
3: Fechar
2: Acender

:Porta
:Luz

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


31

Diagramas de Colaborao

 Os objetos e ligaes criados e destrudos no decurso de uma interao


podem ser portadores das restries {novo} ou {destrudo}.

 A notao permite fazer figurar atores nos diagramas de colaborao


para exprimir o desencadear de interaes provocadas por elementos

 Os objetos criados e depois destrudos

externos ao sistema.

no seio da mesma interao so

 Graas a este artifcio, a interao

identificados pela

1: vem buscar-me ao rs-do-cho

:Pessoa

pode ser descrita de forma mais


B

restrio {transitrio}.

abstrata, sem entrar nos


{novo}

:Elevador

2: junta o destino rs-do-cho

pormenores dos objetos da

Representao da criao
de objetos e de ligaes

32

Diagramas de Colaborao: Representao do Utilizador

interface com o utilizador.

:Cabina

C
D

Fragmento de uma interao


desencadeada por um ator externo
(pessoa que chama o elevador)

{transitrio}

{destrudo}
Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


33

Diagramas de Colaborao: Objetos Ativos

34

Diagramas de Colaborao: Representao das Mensagens

 Os objetos que detm o fluxo de controlo dizem-se objetos ativos.

 Uma mensagem representa-se por uma seta colocada na proximidade

 Um objeto ativo pode ativar um objeto

de uma ligao que aponta para o objeto destinatrio.


:Processador de Texto

passivo pelo perodo de uma operao,


enviando-lhe uma mensagem.
 Uma vez processada esta mensagem,

 Uma ligao serve de suporte transmisso da mensagem

2: Escrever

1: Ler

:Scanner

 A mensagem desencadeia uma ao no objeto destinatrio


 As mensagens seguem o seguinte formato geral:

:Impressora

o fluxo de controlo restitudo ao

sequncia de sincronizao : resultado :=

objeto ativo.

nome argumentos

 Num ambiente multitarefa, podem estar

Representao de objeto ativo


(com linha mais grossa) e
objetos passivos (retngulos
com linha mais fina)

ativos vrios objetos simultaneamente.


 Um objeto ativo representa-se por um

retngulo com a linha mais forte do que a linha que delimita os objetos
passivos.
Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


35

Diagramas de Colaborao: Sincronizao

36

Diagramas de Colaborao: Numerao de mensagens

 A sincronizao exprime-se como uma sequncia de envio, terminada

 A numerao das mensagens faz-se atravs de um inteiro que


representa a ordem de envio da mensagem de entre um conjunto de

pelo caracter / ao qual se segue a mensagem corrente.


 Todas as mensagens referenciadas na sequncia (antes do /) devem
ter sido enviadas, para validar o envio da mensagem corrente.

mensagens.
 Pode tambm utilizar-se um nome para identificar um fluxo de
execuo paralela no seio de um conjunto.
 Assim:

A.1, B.3 / Mensagem

 o envio da mensagem 3.1.3 tem lugar aps o envio da mensagem 3.1.2, no


seio do conjunto 3.1 (s inteiros)
 O envio da mensagem 3.1.a tem lugar em simultneo com o envio da

A mensagem Mensagem s ser


enviada quando os envios de A.1 e
B.3 j tiverem sido efetuados.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

mensagem 3.1.b (a e b so os nomes) - fluxos de execuo paralela.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


37

Diagramas de Colaborao: Sequncia

38

Diagramas de Colaborao: Sequncia

 A sequncia indica o nvel de imbricao do envio de uma mensagem


no seio de uma interao.

 Ao exprimir a sequncia possvel descrever uma recorrncia (isto ,

* [I :=1 .. N) : Mensagem

 Representao de uma iterao:

iteraes e saltos condicionais).

:X

 Sintaxe da sequncia:
Rank * [clausula de iterao]
Ou
Rank [clausula condicional]

 Representao de uma condio:

 A notao (descrita na documentao da UML) permite ainda distinguir


envios sequenciais e envios paralelos.

[X > Y] : Mensagem

 a mensagem s ser enviada se


a condio for vlida.
B

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


39

Diagramas de Colaborao: Resultado

40

Diagramas de Colaborao: Nome e Argumentos

 O resultado constitudo por uma lista de valores devolvidos pela

 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

 O nome corresponde frequentemente a uma operao definida na classe do


objeto destinatrio da mensagem.

 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

anteriormente, assim como expresses de navegao construdas a partir do


objeto fonte.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


41

Diagramas de Colaborao: Argumentos

42

Diagramas de Colaborao: Exemplos de Sintaxe de Mensagens

 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 imbricada com valor de


retorno

[idade >= 18 anos] 6.2: Votar()

Mensagem condicional

4.a, b.6 / c.1 : Ligar(lmpada)

Sincronizao com outros fluxos de


execuo a ligao da lmpada ser
feita aps as mensagens 4.a e b.6

1 * : Lavar()

Iterao

3.a, 3.b 4 * || [i:= 1..n] : Desligar()

Iterao paralela

utilizando pseudocdigo, quer diretamente na sintaxe da linguagem de


programao.
 A notao prope tambm a representao grfica dos argumentos sob a
forma de setas que tm origem em pequenos crculos.

Mensagem

Argumento

B
Argumento

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.1 Modelao do Comportamento Diagrama de Interao [Parte 2]


43

Diagramas de Sequncia e Colaborao: Anlise Comparativa

 Diagrama de sequncia vs. Diagrama de colaborao:


 so simples

44

Quando utilizar os Diagramas de Interao?

 Os diagramas de interao so usados quando se pretende descrever o


comportamento de vrios objetos no seio de um nico caso de uso.

 podem ver-se facilmente as mensagens olhando o diagrama


 mas se pretendermos representar muitos comportamentos condicionais ou
de ciclos, torna-se difcil empregar as tcnicas, podendo utilizar-se diagramas
separados para cada cenrio ou usar condies nas mensagens para
representar o comportamento

 So teis para exprimir a colaborao entre objetos.


 No so to bons na definio precisa do comportamento, para o que
poderemos utilizar os diagramas de transio de estados ou de
atividade, a tratar mais frente.

 pode dizer-se que no so muito poderosos na definio precisa do


comportamento.

 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

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


2

Tpicos

ENGENHARIA DE SOFTWARE

 Diagrama de Estados:
 Conceito e aplicao
 estado
 transio de estados

 Tpicos avanados

PARTE 2

 agrupamento de estados

LINGUAGEM DE MODELAO UML

 concorrncia entre subestados

 Quando utilizar os Diagramas de Estados

C AP. 7 . 2 U M L M O D E L A O D O C O M P O RTAM E NTO


D I AG R AM A D E E S TAD O S

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


3

Objetivos

Mquinas de Estado: Conceito

 Familiarizar com os conceitos essenciais sobre os Diagramas de

 O comportamento dos objetos de uma classe pode ser descrito

Estados

formalmente em termos de estados e eventos, utilizando uma mquina

 perceber o conceito de estado e transio entre estados

de estados conectada classe em considerao.

 mostrar exemplos de diagramas de estados


 familiarizar-se com alguns aspetos avanados relativos aos diagramas de
estados
 compreender quando usar os diagramas de estados

 Uma mquina de estado uma abstrao


de todos os comportamentos possveis,

Classe
1

semelhante forma como os diagramas


de classes so abstraes da estrutura esttica.
0..*

Mquina de
Estados

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


5

Estado e Diagrama de Estados: Conceito

Diagramas de Estados: Smbolos e Elementos de Representao

 Cada objeto est num estado particular em cada momento. O estado

 Estado
 representado por um retngulo de cantos arredondados, pode ter atividade

caracterizado pelos conceitos de durao e estabilidade.

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

um identificador e um compartimento para descrever as operaes que so


executadas nesse estado.

 Estados inicial e final

alterao de valor, nem o objeto sofre estmulos externos.

 o primeiro representado por um circulo negro, sendo o segundo representado

 Diagrama de Estados

por um circulo negro e circunferncia exterior concntrica com o circulo.

 uma tcnica familiar para descrever o comportamento de um sistema.


 Descreve todos os estados possveis que um dado objeto pode assumir e o
modo como o estado do objeto se altera em resultado de eventos que

Estado
Intermdio

atingem o objeto.
Estado Inicial

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Estado Final

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


7

Diagramas de Estados: Smbolos e Elementos de Representao

Diagramas de Estados: Smbolos e Elementos de Representao

 Transio

 Evento

 Ligao unidirecional entre estados, representada por uma seta. A passagem

 corresponde ocorrncia de uma dada situao no domnio do problema.

de um estado a outro (instantnea) acontece por via de estmulos externos

 Um evento utilizado como um trigger para ir de um estado a outro.

(eventos) que esto associadas realizao de aes (operaes da classe).

 As transies especificam caminhos num diagrama de estados. Os eventos

 Com etiqueta de transio, possuindo trs partes (todas opcionais):


Nome do Evento (argumentos) [Guarda] / Ao

determinam que caminhos sero percorridos.


 Eventos, transies e estados no podem ser dissociados da descrio do

 Quando uma transio no tem um evento associado, isso significa que a


transio ocorrer logo que qualquer atividade associada ao estado seja
completada.

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

Carlos Barrico - Departamento Informtica da UBI

Estado B

Um evento dispara a transio a ele associada

Uma transio permite a passagem de um estado a outro; representada


atravs de uma linha desenhada do estado inicial para o final
Engenharia de Software - 2011/2012

Evento

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


9

Diagramas de Estados: Smbolos e Elementos de Representao

10

Diagramas de Estados: Smbolos e Elementos de Representao

 Guarda

 Aes

 condio lgica que retornar o valor verdade ou falso. Uma transao


com guarda s ocorre se a guarda for satisfeita.

 esto associadas s transies ou estados e so consideradas ser processos


que ocorrem rapidamente idealmente instantaneamente, mas no real de
alguns ciclos de relgio at alguns segundos, mas sempre com um tempo de

Estado A
Est muito quente [vero]

Estado A

Evento [condio]

Estado B

A ocorrncia do evento disparar a


transio se a condio se verificar

execuo desprezvel face dinmica do sistema;

Est muito quente [inverno]

Ar
Condicionado

 no so interruptveis.

 A ao corresponde a uma das operaes declaradas na classe do


Abrir Janela

objeto que est a receber o evento.

Quando est muito quente, as guardas tornam possvel


ligar o ar condicionado ou simplesmente abrir as janelas

 As condies expressas na guarda tm de ser mutuamente exclusivas,


por forma a que num dado momento s possa ocorrer uma transio
de sada de um estado.
Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


11

Diagramas de Estados: Smbolos e Elementos de Representao

 Os estados podem tambm conter aes, executadas ao entrar


(simbolizada por entry), sair (simbolizada por exit) ou quando ocorre
um evento quando o objeto est no estado (simbolizada pelo nome do
evento seguido de /), evento esse que no leve a outro estado.

12

Diagramas de Estados: Smbolos e Elementos de Representao

 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/

 ou em resposta a um estmulo (on event/)




neste caso a sintaxe : evento(args) [condio]: / operao

Uma ao pode ser executada ao entrar ou sair de um estado,


ou na ocorrncia de um evento dentro do estado

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


13

Diagramas de Estados: Smbolos e Elementos de Representao

14

Diagramas de Estados: Criao e Destruio de Objetos

 Pontos de Execuo de Operaes

 A criao de objetos representada atravs do envio de um evento de

 Para resumir, indica-se que h 6 lugares para

criao para a classe do objeto.

especificar operaes que devem ser executadas.

 Os parmetros do evento

/Op1

 Por ordem de execuo:

tornam possvel inicializar

 Ao associada transio entrada do estado (op1)


 Ao de entrada no estado (op2)
 Atividade dentro do estado (op3)

Despenhar-se

Um estado

o novo objeto que tem

entry/Op2
do/Op3
AnEvent/Op4
exit/Op5

incio num dado estado


Levantar

inicial definido na mquina

 Ao associada a eventos internos (op4)

de estados da classe.

/Op6

 Ao sada do estado (op5)

A voar

Aterrar

Criar(Registo)

Em terra

 Ao associada transio sada do estado (op6)


A transio de criao leva o objeto do seu estado inicial ao
seu primeiro estado de operao. Atingir o estado final implica
que o objeto desaparece.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


15

Diagramas de Estados: Transies Temporizadas

16

Diagramas de Estados: Transies Temporizadas

 Por definio, os atrasos so atividades que demoram algum tempo.


Assim, atrasos so naturalmente associados a um estado e no a uma
transio e representados atravs de uma atividade atraso.
 A atividade atraso ser interrompida quando o evento esperado
ocorrer.

 Sequncia de atraso relativo operao de depsito numa ATM.


 Quando a ranhura se abre o utilizador tem 3 minutos para introduzir o
envelope com o depsito.
 Se o fizer, a atividade de atraso interrompida e h o disparo da transio que leva
ao estado B
 Se no o fizer em 3 minutos, disparada a transio para o estado cancelada no fim

 De facto esse evento ao ocorrer, ir disparar uma transio e o fluxo de

da atividade atraso.

controlo transferido para outro estado.


 No acetato seguinte mostra-se uma sequncia de atraso relativo
operao de depsito numa ATM.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


17

Diagramas de Estados: Transies Temporizadas

18

Estado e Diagrama de Estados: Exemplo

 Sequncia de atraso relativo operao de depsito numa ATM.


 Quando a ranhura se abre o utilizador tem 3 minutos para introduzir o

incio
busca 1. item

envelope com o depsito.


 Se o fizer, a atividade de atraso interrompida e h o disparo da transio que leva ao estado B
 Se no o fizer em 3 minutos, disparada a transio para o estado cancelada no fim da atividade

busca prximo item


[ainda no verificados todos os itens]

atraso.

Verificao

[todos os itens verificados && todos


os itens disponveis]

do / verifica
item

do / inicia
entrega

/ Abre ranhura

[todos os itens verificados &&


alguns itens no existentes em armazm]

/ Abre ranhura

Espera pelo dinheiro


do/Espera 3 minutos
entry/Mostra mensagem
exit/Fecha a ranhura

Despacho

Espera pelo dinheiro


Cancelar
Transao

entry/Mostra mensagem
exit/Fecha a ranhura
Depsito executado

Depsito executado

transio

Entregue

Representao de um temporizador atravs


da com uma atividade Espera e uma
transio automtica binao de

Engenharia de Software - 2011/2012

Item recebido
[alguns itens no em stock]

Cancelar
Transao

Espera

A voar

Entregue
atividade

depois de (3 minutos)

Representao alternativa de um temporizador


utilizando uma notao mais compacta merc do
evento de disparo after (durao de temporizao)

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

auto-transio

Engenharia de Software - 2011/2012

estado

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


19

Diagramas de Estados: Exemplo

20

Diagramas de Estados: Exemplo

 Explicao do Diagrama

 Explicao do Diagrama (cont)

 Comea-se com uma transio inicial (com ao / busca o 1. item) para o


estado verificao, que tem uma atividade associada (verifica item)
 Trs transies saem do estado verificao, todas com guardas:
 A 1. uma auto-transao: se no tivermos verificado todos os itens, busca-se o
prximo e volta-se para o estado verificao para ser verificado.
 A 2. se tiverem sido verificados todos os itens e estiverem todos em stock, d-se a
transio para o estado Despacho.

 Olhemos para o estado Espera: no h atividades para este estado e temos


duas transies a sair dele, ambas com o evento Item recebido.
 Isto significa que a encomenda fica em Espera at que seja detetado esse evento.
 Nessa altura, vo ser avaliadas as guardas (ou se continua em Espera ou se passa
para o estado Despacho).

 No estado Despacho, temos uma atividade que inicia a entrega. H uma


nica transio sem guarda despoletada pelo evento Entregue.

 Na 3. se tiverem sido verificados todos os itens, mas no existirem todos em stock,


d-se a transio para o estado Espera.

 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.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


21

Diagramas de Estados: Exemplo

22

Diagramas de Estados: Tpicos Avanados - Agrupamento de Estados

 No diagrama de estados anterior, o estado final era Encomenda Entregue,

 No exemplo que estamos a tratar, a encomenda pode passar a cancelada, a

mas tambm de prever que o processo seja abortado em qualquer ponto,

partir de trs estados distintos: verificao, espera e despacho. Poderemos

ou seja teremos um estado final alternativo Cancelada.

agrupar estes num Super-Estado, aumentando a legibilidade do diagrama.


Nome do Superestado

busca prximo item


[ainda no verificados todos os itens]

Verificao

Enc. Ativa

busca 1. item

busca 1. item

[todos os itens verificados && todos


os itens disponveis]

do / verifica
item

busca prximo item


[ainda no verificados todos os itens]

Verificao

[todos os itens verificados && todos


os itens disponveis]

do / verifica
item

Despacho
do / inicia
entrega

Despacho
do / inicia
entrega

[todos os itens verificados &&


alguns itens no existentes em armazm]

Entregue

Item recebido
[todos itens disponveis]

[todos os itens verificados &&


alguns itens no existentes em armazm]

Item recebido
[alguns itens no em stock]

Entregue

Cancelada

Espera

Cancelada
Item recebido
[alguns itens no em stock]

Espera
Cancelada

Cancelada

Cancelada

Entregue

Cancelada

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Engenharia de Software - 2011/2012

Entregue

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


23

Diagramas de Estados: Tpicos Avanados - Concorrncia Entre Subestados

24

Diagramas de Estados: Tpicos Avanados - Diagrama de Estados Concorrentes

 As sees concorrentes do diagrama de estados so lugares nos quais,


 No exemplo anterior os estados

em qualquer ponto, a encomenda est em dois estados, cada um a

da encomenda so baseados na
disponibilidade dos itens.

partir de um dos diagramas.


Autorizao
[pagamento no OK]

Ora h que ter em conta a

do / valida
pagamento

 Quando a encomenda deixa os estados concorrentes, est apenas num nico


estado.

questo da autorizao de
cancelada

[pagamento OK]

Cancelada

pagamento. Se olharmos para


essa questo poderemos

Autorizada

Espera

Rejeitada

construir o diagrama ao lado.


Verificao

Despacho

Entregue
Entregue

Autorizao

Autorizada
fim

Recusada
[Pagamento recusado]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]

Cap. 7.2 Modelao do Comportamento Diagrama de Estados [Parte 2]


25

Diagramas de Estados: Tpicos Avanados - Diagrama de Estados Concorrentes

26

Diagramas de Estados: Tpicos Avanados - Diagrama de Estados Concorrentes

 Podemos ver que uma encomenda inicia-se em ambos os estados


(verificao e autorizao).

 Os diagramas de estados concorrentes so teis quando um dado


objeto tiver conjuntos de comportamentos independentes.

 Se a atividade verifica pagamento do estado Verificao completada

 Note-se

que

no

deveremos

estabelecer

muitos

conjuntos

de

antes e com sucesso, ento a encomenda ficar nos estados Verificao e

comportamentos concorrentes a ocorrer num nico objeto.

Autorizada. Se o evento cancel ocorrer, ento a encomenda ficar somente

 Se tivermos muitos digramas de estados concorrentes para um objeto, deve

no estado Cancelada.

considerar-se a diviso do objeto em objetos separados.


cancelada

Cancelada

 Somente para cada classe de objeto que tenha um comportamento


Espera

dinmico relevante como, por exemplo, os objetos de controlo ou de

Verificao

Despacho

Autorizao

Autorizada

interface.
Entregue

fim

Recusada
[Pagamento recusado]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

 Utilizar os diagramas de estado para as classes que exibam um


comportamento interessante, onde a construo do diagrama ajudem
na compreenso do que se passa.
Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


2

Tpicos

ENGENHARIA DE SOFTWARE

 Diagrama de Atividades:
 Conceitos fundamentais
 origem
 conceito e aplicao
 elementos de modelao

PARTE 2

 explorao de casos de uso


 processamento paralelo e tipos de sincronizao

LINGUAGEM DE MODELAO UML

 Tpicos avanados
 decomposio de atividades
 pistas ou linhas verticais de responsabilizao

 Quando utilizar os Diagramas de Atividades

C AP. 7 . 3 U M L M O D E L A O D O C O M P O RTAM E NTO


D I AG R AM A D E AT I V I D A D E S

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


3

Objectivos

Origens

 Familiarizar com os conceitos essenciais sobre os Diagramas de

 Combina tcnicas de vrias origens:

Atividades, salientando a sua utilidade:

 diagramas de eventos

 no contexto de processo de negcio,

 tcnicas de modelao SDL

 na compreenso de fluxos de atividades mais alargado,

 redes Petri

 Diagrama particularmente til nas ligao com fluxos de trabalho e a

 na abordagem ao paralelismo.

descrever

comportamentos

que

tenham

bastante

processamento

paralelo.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


5

Definio

Conceito de Atividade

 Um diagrama de atividades uma variante de um diagrama de estados

 O conceito de atividade depende da perspetiva segundo a qual se est

organizado de acordo com aes, e principalmente com o objetivo de

a desenhar o diagrama:

representar o comportamento interno de um mtodo (a implementao

 Na perspetiva conceptual, uma atividade uma tarefa a executar, quer seja


pelo computador, quer por um ser humano;

de uma operao) ou de um caso de uso.


 O diagrama de atividades constitui um elemento de modelao
simples,

mas

eficaz

para

descrever

fluxos

de

trabalho

numa

organizao ou para detalhar operaes de uma classe, incluindo

 Nas perspetivas de especificao e de implementao, uma atividade um


mtodo numa classe.

 As atividades so representadas por retngulos arredondados, as setas


que os unem so denominadas disparos (triggers) e as expresses

comportamentos que possuam processamento paralelo.

lgicas que distinguem uma via (thread) verdadeira de uma falsa


denominam-se guardas.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


7

Elementos de Modelao

Exemplo de Atividade

 Atividades de Incio e Fim

 Exemplo:

O funcionrio comea por


saudar o cliente, em
seguida informa-o sobre a
promoo da semana e,
por fim, pergunta-lhe o
que deseja.

 atividade de incio pode ser puramente virtual, definida para identificar o


incio do diagrama, ou corresponder a uma atividade operacional do sistema;
descrita por um circulo negro;
 atividade de fim, mostra a atividade terminal de um fluxo de trabalho,
podendo existir mais do que uma (mas apenas uma atividade inicial);
descrita por um circulo preto, rodeado por uma circunferncia.

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

 Atividade Intermdia (j referida atrs, quando se definiu atividade)


 Pode incluir um conjunto de aes, que so realizadas quando a atividade se
inicia, durante o seu decurso normal ou quando termina. Podemos ainda
descrever a ocorrncia de eventos excecionais.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

No decurso de uma atividade pode ser realizada


uma ao em resposta a um evento exterior.
Neste caso, o Gestor da Loja pode transmitir
uma mensagem ao Funcionrio para realizar
uma determinada tarefa, desde que no
existam clientes em fila de espera.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


9

Elementos de Modelao

10

Elementos de Modelao

 Transio entre atividades

 Smbolos de comportamento condicional

 uma transio permite descrever a sequncia pela qual as atividades se

 podem ser guardas e diamantes de deciso (losngulos):


 guardas - so expresses booleanas limitadas por parntesis retos, que tm de ser

realizam

verificados para que a transio se realize para uma nova atividade;

 a transio entre atividades representada por uma seta


 na transio podem ainda ser listados os eventos, aes e condies de
acordo com a seguinte sintaxe:

 diamantes de deciso - semanticamente semelhantes a mltiplas transies com


guarda. Corresponde a uma deciso que se segue a uma deciso anterior, j
caracterizada com guardas. O recurso a losngulos permite encadear indefinidamente

Evento(argumentos) [condio] / Ao

sucessivas situaes de deciso.

 a transio com * permite representar as iteraes, ou seja no caso, a


transio processa-se para cada um dos produtos que o cliente pretenda
adquirir. Denomina-se marcador de

[muito frio]

Inicia
Encomenda

multiplicidade ou concorrncia dinmica.

Mede a
temperatura

Mede a
temperatura
[muito quente]
[muito frio]
Aquecer

* Processa item [para cada item]/Pede nome do produto

[muito quente]

Arrefecer
Aquecer

Arrefecer

Diagramas semanticamente equivalentes, exceto no facto que o da


direita a deciso mostrada explicitamente

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


11

Elementos de Modelao

12

Elementos de Modelao

 Barras de sincronizao

 Barras de sincronizao

 Tornam possvel abrir e fechar ramos paralelos dentro de fluxo de execuo


de um mtodo ou de um caso de uso.

 Tornam possvel abrir e fechar ramos paralelos dentro de fluxo de execuo


de um mtodo ou de um caso de uso.
 As barras de sincronizao de mltiplos disparos podem ser de dois tipos:
 Barras de sincronizao incondicionais, que permitem a passagem atividade
seguinte quando todos os disparos que lhe chegam esto prontos (comporta-se como

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

Para arrefecer um compartimento necessrio


simultaneamente desligar o aquecimento e abrir a janela

Engenharia de Software - 2011/2012

A medida da temperatura ser efetuada uma vez o


aquecimento tenha sido desligado e o quarto ventilado

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


13

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

como nos diagramas de estado). Se encontrar caf disparado um dos

[No h cola]

triggers, de contrrio, disparado o outro.


[H cola]

 Supondo que h caf, chegamos a uma barra de sincronizao, de


Pe caf no
filtro

Obtm lata de
cola

Obtm as
chvenas

Pe gua no
reservatrio

onde saem trs triggers (um leva atividade pr caf no filtro, outro

Exemplo de Diagrama de Atividades: caso


da sequncia de atividades (humanas)
para preparao de um caf recorrendo a
uma mquina tipo expresso e prevendo
a possibilidade de, no caso de no haver
caf, se poder beber uma cola.

Pe o filtro na
mquina

Liga a
mquina

atividade pr gua no reservatrio e o ltimo a obter as chvenas).

Faz infuso do
caf
luz desliga-se

Ponto de
sada
Bebe
bebida

Vasa
o caf

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


15

Exemplo

16

Exemplo

 O diagrama diz que essas atividades podem ocorrer:

 Quando se tem comportamento paralelo, h que sincronizar.

 em sequncia, sendo a sua ordem irrelevante

 No vamos ligar a mquina do caf antes de termos o filtro na mquina e

 de forma intercalada (parte de uma, depois parte de outra )

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

Engenharia de Software - 2011/2012

Bebe
bebida

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


17

Exemplo

18

Exemplo

 Uma outra sincronizao ocorre mais tarde: tem de se fazer a infuso

 Vamos para o outro lado:


 se no h caf, vamos encontrar uma

do caf e ter a chvena para que possamos vazar o caf.

segunda deciso, esta baseada em cola e


com um diamante de deciso.
PESSOA

Guarda

Encontra
bebida

Barra de
Sincronizao

[H caf]
Ponto de
entrada
Pe caf no
filtro

 A atividade bebe bebida tem dois triggers

Deciso
[No h caf]

Obtm as
alternativas

Pe gua no
reservatrio

[No h cola]

a entrar nela:

[H cola]

Obtm lata de
cola

 isso quer dizer que ser executada em

Pe o filtro na
mquina

qualquer caso, funciona como um OU.

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

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Bebe
bebida

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


19

Aplicaes Tpicas

20

Aplicao a um Caso de Uso

 Construo de modelos de negcio (business models).


 Os diagramas de atividade incentivam a identificao de processos paralelos.

 Descrio do caso de uso:


 Quando se recebe a encomenda, analisa-se cada item para verificar se existe

 A explorao de processos paralelos nas atividades de negcio permite que

em stock. Se existe, afeta-se a mercadoria encomenda. Se esta afetao

as atividades de negcio, normalmente propensas a situaes de paralelismo,

fizer descer a quantidade abaixo ao stock de segurana, encomendam-se

possam ser realizadas com muito mais eficincia e capacidade de resposta.

essas mercadorias. Enquanto se faz isto, verifica-se se o pagamento

 A avaliao de processos concorrentes, permite a correta anlise das


suas diversas threads e a identificao dos pontos de sincronizao.

regular. Se o pagamento for regular e tivermos a mercadoria em stock,


satisfazemos a encomenda. Se o pagamento for regular mas no houver
mercadoria, a encomenda fica em espera. Se o pagamento no regular,
ento cancelamos a encomenda.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


21

Aplicao a um Caso de Uso

22

Aplicao a um Caso de Uso

 Um diagrama de atividade no tem de ter ponto de sada.

Cancela
encomenda

[no]

 No diagrama presente as atividades terminam quando j no h mais.

Disparo
mltiplo

Recebe
encomenda

*
Autorizado
pagamento

 As atividades terminais mais visveis neste caso so Despacha


Encomenda, Encomenda mais e Cancela encomenda, mas h uma

Para cada item da


encomenda

Verifica
item

[sim]

quarta: Verifica item uma atividade terminal porque , se a condio


em stock no for satisfeita, o percurso do diagrama acaba a.

[em stock]
Afecta
encomenda

Condio de
sincronizao

[stock afeto a todos os itens


e pagamento autorizado]

[ necessrio
encomendar mais]

O indicador de multiplicidade * exprime um


disparo mltiplo, repetitivo, que deve ser
acompanhado da condio que determina o
nmero de vezes que efetuado. Neste caso a
condio para cada item da encomenda,
significando que quando se recebe uma
encomenda, iremos executar a atividade
Verifica item para cada item da encomenda.

Encomenda
mais

Despacha
encomenda

Engenharia de Software - 2011/2012

Barra de sincronizao condicional, exigida a


satisfao da condio stock afeto a todos os
itens e pagamento autorizado.
Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Disparo
mltiplo

Recebe
encomenda

*
Cancela
encomenda

[no]

Autorizado
pagamento

Para cada item da


encomenda

Verifica
item

[sim]

[em stock]
Afecta
encomenda

Condio de
sincronizao

[stock afeto a todos os itens


e pagamento autorizado]

[ necessrio
encomendar mais]

Encomenda
mais

Despacha
encomenda

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


23

Aplicao a um Novo Caso de Uso

24

Aplicao a um Novo Caso de Uso

 No exemplo anterior, a atividade Verifica item poder ser terminal, se


no houver mercadoria em stock.

 Receo de fornecimento e
afetao de produtos a

 Mas se chegar mercadoria, poderemos ir verificar as encomendas em espera

Recebe
fornecimento

encomendas em espera.

e afetar os produtos recebidos s encomendas adequadas.

 Isto poderia ser um caso de uso tipo:


Quando uma entrega de fornecedores chega, ir-se- olhar para as encomendas
em espera e decidir quais poderemos satisfazer com os produtos recebidos.
A, iremos afetar os produtos s encomendas respetivas. Dessa forma poderse- conseguir que as encomendas fiquem prontas para despacho. Os
produtos recebidos e no afetos s encomendas, entraro em stock.

Este diagrama complementar do


anterior e, assim, poderemos juntlos, j que cada um parte do
quadro mais geral.
Ficaremos com um diagrama com
pontos de incio mltiplos,
perfeitamente normal j que o
diagrama ir mostrar como o
negcio reage a eventos externos
mltiplos.

 No acetato seguinte mostra-se o diagrama de atividades deste caso de

Afecta
encomenda

[todas os itens
de encomendas
em espera
satisfeitos]

[stock afecto a
todos os itens e
pagamento
autorizado]
Despacha
encomenda

uso complementar ao anterior.

Engenharia de Software - 2011/2012

Escolhe Itens de
encomenda em espera
Para cada item selecionado
* da encomenda

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Faz entrar restante


em stock

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


25

Aplicao a um Novo Caso de Uso

26

Linhas Verticais de Responsabilizao

 Os diagramas de atividade dizem o que se passa, mas no quem o faz.


 Ou seja, em programao, diremos que o diagrama no indica que classe

Recebe
encomenda

Cancela
encomenda

[no]

responsvel por cada atividade.


*

Autorizado
pagamento

Para cada item da


encomenda

Verifica
item

[sim]

ou departamento responsvel por cada atividade.


Escolhe Itens de
encomenda em espera

[em stock]

Afecta
encomenda

Para cada item selecionado


da encomenda

Afecta
encomenda

[ necessrio
encomendar mais]

Encomenda
mais
[todas os itens
de encomendas
em espera
satisfeitos]

[stock afeto a todos os itens


e pagamento autorizado]
Despacha
encomenda

Engenharia de Software - 2011/2012

 Em modelao de domnio, diremos que o diagrama no indica que pessoa

Recebe
fornecimento

Faz entrar restante


em stock

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


27

Linhas Verticais de Responsabilizao

28

Linhas Verticais de Responsabilizao

 Atravs da utilizao das linhas verticais de responsabilizao


(Swimlanes) possvel descrever quais os objetos responsveis por

Finanas

Processamento de
Encomendas

Recebe
encomenda

cada uma das atividades criando reas separadas que formam pistas
(como as de uma piscina).

Autorizado
pagamento

 Cada responsabilidade assumida por um ou mais objetos e cada atividade

[sim]

[no]
Cancela
encomenda

 Para se utilizarem essas linhas e criar as pistas, poder ser necessrio

Escolhe Itens de
encomenda em espera

[em stock]

Para cada item selecionado


da encomenda

[ necessrio

verticais separadas por linhas tracejadas, cada uma representando a

Encomenda
mais
[stock afeto a todos os itens
e pagamento autorizado]
Despacha
encomenda

Carlos Barrico - Departamento Informtica da UBI

Afeta
encomenda
encomendar mais]

efetuar rearranjos no diagrama por forma a que seja possvel formar zonas

responsabilidade de uma classe particular ou departamento.

Recebe
fornecimento

Para cada item da


encomenda

Verifica
item

Afeta
encomenda

alocada a uma dada pista.

Engenharia de Software - 2011/2012

Gestor de
Armazm

Engenharia de Software - 2011/2012

[todas os itens
de encomendas
em espera
satisfeitos]

Faz entrar restante


em stock

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


29

Decomposio de Atividades

30

Decomposio de Atividades Autorizar Pagamento

 Quando uma das atividades representada num diagrama muito


complexa, pode tomar-se isoladamente e desenhar em separado o
diagrama de atividades que descreve o seu comportamento interno.

[c. crdito]

 O diagrama resultante da decomposio apresenta frequentemente


vrios pontos de entrada e pode haver tantos pontos de sada como

Determina tipo
de Pagamento
[cheque]

[falhou]

[no]

Cheque com
Cobertura

[factura]
Cliente
habitual?

[no]

Valor de encomenda >$1,000?

[no]

[no]

triggers de sada nas atividades de alto nvel.

[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]

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 7.3 Modelao do Comportamento Diagrama de Atividades [Parte 2]


31

Quando Utilizar

 Os diagramas de atividade devem utilizar-se nas seguintes situaes:


 Anlise de um caso de uso. Auxilia a compreender que aes vo decorrer
e que dependncias comportamentais existem. Depois, faz-se a afetao dos
mtodos a objetos e descrevem-se as afetaes com diagramas de atividade.
 Compreender fluxos de trabalho (workflows) entre vrios casos de
uso. Quando os casos de uso interagem uns com outros, os diagramas de
atividade so uma boa ferramenta para representar e compreender esse
comportamento.
 Analisar e descrever aplicaes multi-threaded.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Vous aimerez peut-être aussi