Processo Unificado
Marcio de Carvalho Victorino
[email protected]
Unidade V: Projeto OO
(Aspectos Dinâmicos)
Modelo de Interação


Esse modelo representa as mensagens trocadas
entre os objetos para a execução de cenários dos
casos de uso do sistema.
Os objetivos da construção do modelo de interação
são:


obter informações adicionais para completar e aprimorar
outros modelos;
fornecer aos programadores uma visão detalhada dos
objetos e mensagens envolvidos na realização dos casos
de uso.
3
Interação através de Mensagens


O princípio básico da interação entre objetos é o
conceito de mensagem.
Um sistema de OO pode ser visto como uma rede
de objetos.

funcionalidades são realizadas pelos objetos, que só
podem interagir através de mensagens.
4
Diagramas de Interação
Diagramas de interação representam como o
sistema age internamente para que um ator atinja
seu objetivo na realização de um caso de uso. A
modelagem de um sistema de OO normalmente
contém diversos diagramas de interação. O
conjunto de todos os diagramas de interação de um
sistema constitui o seu modelo de interações.
5
Tipos de Diagrama de Interação

Há dois tipos de diagrama de interação:



Diagrama de seqüência
Diagrama de colaboração
O diagrama de seqüência e o diagrama de
colaboração são equivalentes entre si.
Diagrama de seqüência: mensagens enviadas
no decorrer do tempo.
Diagrama de colaboração: mensagens
enviadas entre objetos que estão relacionados.
6
Diagrama de Seqüência



A posição vertical das mensagens permite deduzir
a ordem na qual elas são enviadas.
Ordem de envio de mensagens em um diagrama
de colaboração pode ser deduzida a partir das
expressões de seqüência.
Elementos básicos:








Atores
Objetos
Classes
Linhas de Vida
Mensagens
Focos de controle
Criação de objetos
Destruição de objetos
7
Diagrama de Seqüência
Objeto
nomeado
item: ItemPedido
Objeto
anônimo
: ItemPedido
8
Diagrama de Seqüência
Ator
Objeto
Objeto1
Objeto2
Classe
Objeto3
Classe
Ator
mensagem0
Linha de
vida
mensagem1
mensagem2
mensagem3
Foco de
controle
Mensagem
9
Diagrama de Colaboração


Mostra os objetos relevantes para a realização de
um caso de uso (ou cenário deste).
Estruturalmente, é bastante semelhante a um
diagrama de objetos.



A diferença é que são adicionados setas e rótulos de
mensagens nas ligações entre esses objetos.
Objetos (nomeados e anônimos) e classes podem
aparecer.
As ligações (linhas) entre objetos correspondem a
relacionamentos existentes entre os objetos.
10
Seqüência x Colaboração

Diagrama de seqüência:



Diagrama de colaboração:




Exibe as mensagens ordenadas no tempo.
A visualização fica dificultada conforme o número de
objetos cresce (disposição em uma dimensão).
Exibe mensagens enfatizando relacionamentos.
Melhor utilização do espaço (disposição em duas
dimensões).
O diagrama de seqüência é equivalente ao
diagrama de colaboração
Ferramentas CASE: transformação
automaticamente.
11
Seqüência x Colaboração
12
Seqüência x Colaboração
13
Mensagens para cumprir
Responsabilidades


O fato de um objeto “precisar de ajuda” indica a
necessidade de este enviar mensagens.
Na construção de diagramas de interação,
mensagens de um objeto a outro implicam em
operações que classes devem ter.
Uma mensagem implica na existência de uma
operação no objeto receptor. A resposta ao recebimento
de uma mensagem é a execução dessa operação.
14
Mensagens para cumprir
Responsabilidades
Usuário
login
senha
validar(in id : String, in senha : String) : bool
: ControladorAcesso
umUsuário: Usuário
validar(id, senha)
15
Utilização

São utilizados na fase de construção de um ciclo de
vida incremental e iterativo.




São construídos para os casos de uso alocados para uma
iteração desta fase.
Controvérsia sobre utilização na análise ou no
projeto.
Inicialmente (+análise), pode exibir apenas os
objetos participantes e mensagens exibindo
somente o nome da operação.
Posteriormente (+projeto), pode ser refinado.

criação e destruição de objetos, tipo e assinatura
completa de cada mensagem, etc.
16
Utilização


Em um processo incremental e iterativo, os
modelos evoluem em conjunto.
Embora estes modelos representem visões distintas
do sistema, eles são interdependentes.




Modelo de classes  modelo de interações.
Modelo de interações  refinamento do modelo de casos
de uso.
Modelo de interações  operações para o modelo de
classes.
Modelo de interações  novos atributos para o modelo
de classes.
17
Utilização
Modelo de
Casos de Uso
Valida responsabilidades
e fornece detalhes sobre objetos
Valida as interações
Modelo de Classes
Fornece cenários
Fornece objetos
Modelo de Interações
(diagramas de colaboração ou de sequência)
18
Diagrama de Transição de Estados.
Diagrama de Transição de Estados.

Objetos do mundo real se encontram em estados
particulares a cada momento.




Um DVD pode estar reservado.
Uma conta bancária pode estar inativa.
Da mesma forma, cada objeto participante de um
sistema de software orientado a objetos se
encontra em um estado particular.
Um objeto muda de estado quando acontece algum
evento interno ou externo ao sistema.
20
Diagrama de Transição de Estados.


Através da análise das transições entre estados dos
objetos de um sistema de software, podem-se
prever todas as possíveis operações realizadas, em
função de eventos que possam ocorrer.
O diagrama da UML que é utilizado para realizar
esta análise é o diagrama de transição de estado
(DTE).
21
Diagrama de Transição de Estados.

A UML tem um conjunto rico de notações para
desenhar um DTE.








Estados.
Transições.
Evento.
Ação.
Atividade.
Transições internas.
Estados aninhados.
Estados concorrentes.
22
Estado


Situação na vida de um objeto em que ele satisfaz
a alguma condição ou realiza alguma atividade.
Cada estado de um objeto é determinado pelos
valores dos seus atributos e (ou) pelas suas
ligações com outros objetos.


Por exemplo: “o atributo reservado deste objeto livro tem
valor verdadeiro”.
Outro exemplo: “uma conta bancária passa para o
vermelho quando o seu saldo fica negativo”.
23
Estados

O estado inicial indica o estado de um objeto
quando ele é criado. Só pode haver um estado
inicial em um DTE.


Essa restrição serve para definir a partir de que ponto um
DTE deve começar a ser lido.
O estado final é representado como um círculo
“eclipsado” e indica o fim do ciclo de vida de um
objeto.

Este estado é opcional e pode haver mais de um estado
final em um DTE.
24
Estados

Notação para representar estados na UML.
Estado Inicial
Estado Ordinário
Estado Final
Estado
25
Transições




Os estados estão associados a outros pelas
transições.
Uma transição é mostrada como uma linha
conectando estados, com uma seta apontando para
um dos estados.
Quando uma transição entre estados ocorre, diz-se
que a transição foi disparada.
Uma transição pode ser rotulada com uma
expressão da seguinte forma:
evento (lista-parâmetros) [guarda] / ação
26
Eventos


Uma transição possui um evento associado.
Um evento é algo que acontece em algum ponto no
tempo e que pode modificar o estado de um
objeto:



Pedido realizado
Fatura paga
Cheque devolvido
27
Exemplo
Realizar deposito(quantia)
/depositar(quantia)
Conta Criada
disponível
Realizar saque(quantia)
[quantia = saldo]
/sacar(quantia)
Conta Fechada
when(saldo>0)
bloqueada
Realizar saque(quantia)
Após(30 dias)/aplicarJuros()
Realizar deposito(quantia)
/depositar(quantia)
28
Ações



Ao transitar de um estado para outro, um objeto
pode realizar uma ou mais ações.
Uma ação é uma expressão definida em termo dos
atributos, operações, associações da classe ou dos
parâmetros do evento também podem ser
utilizados.
A ação associada a uma transição é executada se e
somente se a transição for disparada.
29
Atividades


Semelhantes a ações, atividades são algo que deve
ser executado.
No entanto, uma atividade pode ser interrompida
(uma ação não pode).


Por exemplo, enquanto a atividade estiver em execução,
pode acontecer um evento que a interrompa.
Outra diferença: uma atividade sempre está
associada a um estado (ao contrário, uma ação
está associada a uma transição).
30
Exemplo
31
Diagrama de Atividades
Diagrama de Atividades

É um tipo especial de diagrama de estados, onde
são representados os estados de uma atividade, ao
invés dos estados de um objeto:





Um diagrama de atividade exibe os passos de uma
computação.
Cada estado é um passo da computação, onde o sistema
está realizando algo.
É orientado a fluxos de controle (ao contrário dos DTEs
que são orientados a eventos).
Fluxogramas estendidos...
Além de possuir toda a semântica existente em um
fluxograma, permite representar ações concorrentes e
sua sincronização.
33
Diagrama de Atividades: Elementos

Elementos utilizados em fluxos seqüenciais:






Estado ação.
Estado atividade.
Estados inicial e final, e condição de guarda.
Transição de término.
Pontos de ramificação e de união.
Elementos utilizados em fluxos paralelos:



Barras de sincronização.
Barra de bifurcação (fork).
Barra de junção (join).
34
Fluxos de controle seqüenciais

Um estado em um diagrama de atividade pode ser:



Deve haver um estado inicial e pode haver vários
estados finais e guardas associadas a transições.


um estado atividade: leva um certo tempo para ser
finalizado.
um estado ação: realizado instantaneamente.
pode não ter estado final, o que significa que o processo
ou procedimento é cíclico.
Uma transição de término significa o término de um
passo e o conseqüente início do outro.

ao invés de ser disparada pela ocorrência de um evento,
é disparada pelo término de um passo.
35
Fluxos de controle seqüenciais

Um ponto de ramificação possui uma única
transição de entrada e várias transições de saída.




Para cada transição de saída, há uma condição de guarda
associada.
Quando o fluxo de controle chega a um ponto de
ramificação, uma e somente uma das condições de
guarda deve ser verdadeira.
Pode haver uma transição com [else].
Um ponto de união reúne diversas transições que,
direta ou indiretamente, têm um ponto de
ramificação em comum.
36
Diagrama de Atividades
EstadoAção1
Estado
inicial
EstadoAção2
Ponto de
ramificação
[x > 0]
[x = 0]
Bifurcação
EstadoAção6
EstadoAção7
EstadoAção3
[x < 0]
Estado
ação
EstadoAção4
Ponto de
união
EstadoAção5
Junção
Estado final
37
Fluxos de controle paralelos


Fluxos de controle paralelos: dois ou mais fluxos
sendo executados simultaneamente.
Uma barra de bifurcação recebe uma transição de
entrada, e cria dois ou mais fluxos de controle
paralelos.


cada fluxo é executado independentemente e em paralelo com
os demais.
Uma barra de junção recebe duas ou mais
transições de entrada e une os fluxos de controle
em um único fluxo.


Objetivo: sincronizar fluxos paralelos.
A transição de saída da barra de junção somente é disparada
quando todas as transições de entrada tiverem sido
disparadas.
38
Fluxos de controle paralelos

Algumas vezes, as atividades de um processo
podem ser distribuídas por vários agentes que o
executarão.




processos de negócio de uma organização.
Isso pode ser representado através de raias de
natação (swim lanes).
As raias de natação dividem o diagrama de
atividade em compartimentos.
Cada compartimento contém atividades que são
realizadas por uma entidade.
39
Fluxos de controle paralelos
Segurado
Acionar Seguro
Seguradora
Recolher Automóvel
Depositar Valor Segurado
Oficina
Avaliar Danos
[perda total]
[else]
Pagar Franquia
Cobrar Fraquia
Consertar Automóvel
40
Usos de Diagramas de Atividades

Modelagem dos fluxos de trabalho de um processo
do negócio:

Modelagem também é um processo de entendimento.


o desenvolvedor constrói modelos para entender melhor um
problema.
Modelagem da lógica de um caso de uso:

Em determinadas situações, é interessante complementar
a descrição do caso de uso com um diagrama de
atividade.
41
Diagrama de Atividades
42
FIM
Download

um estado atividade