Análise e Projeto de Sistemas
Aula 10
Diagramas de Apoio
UML – Diagramas de Interação

O que é interação?


“Interação é a ação que se exerce
mutuamente entre duas ou mais coisas, duas
ou mais pessoas.”
Corresponde a um conjunto de mensagens
trocadas entre objetos, com o objetivo de
alcançar
um
determinado
propósito,
respeitando-se o contexto do sistema.
UML – Diagramas de Interação

Diagrama de Interação:


Mostra as interações por meio de uma visão
dinâmica do sistema.
Pode representar um sistema , subsistema,
operação, classe ou cenário de um caso uso
(sendo esta última representação a mais
frequente).
UML – Diagramas de Interação

Tipos de Diagramas de Interação:

Veremos 2 tipos de diagramas de interação:

Diagrama de Seqüência -> enfatiza a
seqüência de mensagens dentro de uma
linha de tempo;

Diagrama
de
Comunicação
(ou
Colaboração) -> enfatiza o relacionamento
estrutural entre os objetos, sem se
preocupar com o tempo determinado para
cada interação.
UML – Diagramas de Interação

Diagrama de Seqüência:



Mostra a colaboração dinâmica entre os
vários objetos de um sistema.
A partir dele percebe-se a seqüência de
mensagens enviadas entre os objetos.
Mostra a interação entre os objetos, alguma
coisa que acontecerá em um ponto específico
da execução de um sistema.
UML – Diagramas de Seqüência

Representação:




A representação gráfica de um diagrama de
seqüência é baseada em duas dimensões.
A primeira dimensão é vertical e representa
as mensagens trocadas no decorrer de um
tempo de vida (eixo Y).
A segunda dimensão é horizontal e
representa os objetos participantes das
interações (eixo x).
As mensagens correspondem a chamadas de
serviços dos objetos, ou seja, a chamada de
suas operações.
UML – Diagramas de Seqüência

Representações - Objetos:

Os objetos em um diagrama de seqüência é
feita com um retângulo alinhado no topo do
diagrama, partindo dele uma linha vertical
tracejada denominada linha de vida, que é
desenhada até o fim do diagrama. A linha de
vida representará a vida deste objeto dentro
de um determinado período de tempo.
livroA : Livro
UML – Diagramas de Seqüência

Representações – Objetos:


Um objeto, que já existe quando a transação
do diagrama tem inicio, é mostrado alinhado
ao topo do diagrama, de forma a ficar acima
da primeira seta de mensagem.
Um objeto que continuará a existir, mesmo
após a finalização da transação do diagrama,
tem sua linha de vida estendida para além
da última seta da mensagem.
UML – Diagramas de Seqüência

Representações - Objetos:
: BaseDesenho
: Retangulo
desenhe (coordX , coordY)
existe antes
da transação
iniciar
continua existindo
após o fim da transação
UML – Diagramas de Seqüência

Representações - Objetos:

A criação ou destruição de um objeto dentro
do período de tempo total representado pelo
diagrama são mostrados desenhando-se o
início ou fim da linha de vida do objeto no
ponto determinado pela criação e destruição.
UML – Diagramas de Seqüência

Representações – Objetos (criação):

A seta que representa a mensagem de
criação é desenhada de forma a apontar sua
cabeça para o símbolo do objeto.
: Funcionario
novo ()
: ContraCheque
UML – Diagramas de Seqüência

Representações – Objetos (destruição):

A seta que carrega a mensagem de
destruição é direcionada a um “X” colocado
no fim da linha de vida.
: Funcionario
excluirbeneficio ()
: Beneficio
UML – Diagramas de Seqüência

Representações – Mensagens:



As mensagens são enviadas de um objeto
para outro, por meio de setas que partem de
uma linha de vida para outra.
São identificadas com o nome da operação
que está sendo chamada.
Podem carregar a solicitação de um
processamento, a comunicação de um evento
ou outras informações relevantes para o
cumprimento de responsabilidades.
UML – Diagramas de Seqüência

Representações – Ativação:


A mensagem da inicio à ativação, que
corresponde ao período de tempo durante o
qual um determinado método de um objeto
esta sendo executado.
A ativação é mostrada graficamente como
um retângulo fino, branco ou cinza, que tem
sua parte superior alinhada ao final da seta
ativadora e se estende até o fim do
processamento,
que
pode
ter
uma
representação extra como uma mensagem
de retorno (não é obrigatória).
UML – Diagramas de Seqüência

Representações – Ativação:
: Curso
: Aluno
obterNome (matricula)
Ativação
mensagem
mensagem de retorno
UML – Diagramas de Seqüência

Exemplo:
: Computador
: Servidor_de_impressao
Imprimir (arquivo)
: impressora
: fila_impressão
[Impressora livre]
Imprimir (arquivo)
[Impressora ocupada]
Imprimir (arquivo)
UML – Diagramas de Interação

Tipos de Diagramas de Interação:
 Veremos 2 tipos de diagramas de
interação:


Diagrama de Seqüência -> enfatiza a
seqüência de mensagens dentro de uma
linha de tempo;
Diagrama
de
Comunicação
(ou
Colaboração) -> enfatiza o relacionamento
estrutural entre os objetos, sem se
preocupar com o tempo determinado para
cada interação.
UML – Diagramas de Comunicação
Chamado na UML 1.4 de diagrama de
colaboração.
 Os objetos são distribuídos neste
diagrama em ordem similar a do
diagrama de seqüências, obedecendo
à seqüência das mensagens.
 A
colaboração
entre
objetos
é
representada por uma ligação simples
acompanhada de uma numeração
seqüencial e de outras informações
como condições e iterações.

UML – Diagramas de Comunicação

Em virtude da forma como um
diagrama
de
comunicação
é
apresentado,
identificamos
a
seqüência temporal das mensagens
por meio de seqüências numéricas.

A autochamada do diagrama de
comunicação e representado como um
arco ligado ao objeto.
UML – Diagramas de Comunicação
1 : obterGrade ( cursoX )
Coordenador
3 : *[Disciplina.temPreReq]
obterPreRequisito (disc1)
2 : *[Para cada disciplina]
obterInfDisciplina ( disc1 )
cursoX : curso
4 : obterTurmasAtivas (cursoX)
turma1 : Turma
disc1 : disciplina
UML – Diagramas de Comunicação
1 : obterGrade ( cursoX )
Coordenador
3 : *[Disciplina.temPreReq]
obterPreRequisito (disc1)
2 : *[Para cada disciplina]
obterInfDisciplina ( disc1 )
cursoX : curso
disc1 : disciplina
4 : obterTurmasAtivas (cursoX)
turma1 : Turma

A primeira mensagem é a chamada do método
obterGrade( cursoX ) para o objeto cursoX.
UML – Diagramas de Comunicação
1 : obterGrade ( cursoX )
Coordenador
3 : *[Disciplina.temPreReq]
obterPreRequisito (disc1)
2 : *[Para cada disciplina]
obterInfDisciplina ( disc1 )
cursoX : curso
disc1 : disciplina
4 : obterTurmasAtivas (cursoX)
turma1 : Turma

O código deste método para ser concluído
necessita de informações das disciplinas do
referido curso e das turmas ativas. Então, para
cada
disciplina
é
chamado
o
método
obterInfDisciplina( disc1 ) do objeto disc1.
UML – Diagramas de Comunicação
1 : obterGrade ( cursoX )
Coordenador
3 : *[Disciplina.temPreReq]
obterPreRequisito (disc1)
2 : *[Para cada disciplina]
obterInfDisciplina ( disc1 )
cursoX : curso
disc1 : disciplina
4 : obterTurmasAtivas (cursoX)
turma1 : Turma


O objeto disc1, por sua vez, necessita de
informações dos pré-requisitos das disciplinas.
Então, passa uma mensagem para si mesmo,
chamando o método obterPreRequisito(
disc1 ).
UML – Diagramas de Comunicação
1 : obterGrade ( cursoX )
Coordenador
3 : *[Disciplina.temPreReq]
obterPreRequisito (disc1)
2 : *[Para cada disciplina]
obterInfDisciplina ( disc1 )
cursoX : curso
disc1 : disciplina
4 : obterTurmasAtivas (cursoX)
turma1 : Turma

O objeto cursoX, depois de receber a resposta
de sua mensagem nº 2, chama o método
obterTurmasAtivas ( cursoX ) que pertence
ao objeto turma1.
UML – Diagramas de Comunicação

A grande diferença entre o Diagrama de
Comunicação e o de Seqüência é
exatamente o que ocorre com o objeto
do cursoX, isto é, não fica explicito no
diagrama as mensagens de retorno e o
momento em que isso ocorre.
UML – Diagramas de máquina
de Estado


Descreve o comportamento de objetos como
reação a eventos discretos (como por
exemplo sinais e invocação de operações),
por meio de seqüências de estados e ações
que ocorrem durante a sua vida.
Tipicamente este diagrama é usado para
descrever a conduta de objetos, mas de
acordo com a documentação da UML,
também pode descrever a conduta de outras
entidades tais como casos de uso , atores ,
subsistemas, operações ou métodos.
UML – Diagramas de máquina
de Estado



Todo objeto possui uma vida, ou um ciclo de
vida, que tem inicio quando ele é criado e
finaliza quando ele é destruído.
Durante esta vida ele passa por vários
estados que, na maioria das vezes, deve
obedecer a uma seqüência lógica e
cronológica.
O diagrama de máquina de estados nos
auxilia a enxergar essa seqüência dentro do
ciclo de vida.
UML – Diagramas de máquina
de Estado

Estado:



É uma condição ou situação existente na
vida de um objeto durante a qual o estado
satisfaz alguma condição, executa alguma
atividade ou espera por algum evento.
É representado graficamente por um
retângulo com cantos arredondados.
O nome do estado é colocado no centro do
mesmo, caso ele não esteja subdivididos em
compartimentos.
UML – Diagramas de máquina de
Estado

Estado – Representação Gráfica:
Aguardando
Leitura do Cartão

Um estado pode ser subdivididos em dois
compartimentos separados
por uma linha
horizontal.
 Compartimento de nome;
 Compartimento de atividades internas.
UML – Diagramas de máquina de
Estado

Estado – Representação Gráfica:
Nome do estado
Digitando senha
entry / echoInvisivel(True)
exit / echoInvisible(False)
do / validaCaracter ()
Compartimento de
Transições internas
UML – Diagramas de máquina de
Estado

Compartimento de nome:


Armazena o nome do estado, como uma
string.
Compartilhamento
internas:

de
atividades
Este compartimento armazena uma lista de
ações ou atividades internas que são
executadas enquanto o objeto se apresenta
no estado em foco.
UML – Diagramas de máquina de
Estado

Compartilhamento
internas:

de
atividades
Existem algumas palavras que representam
as atividades internas:

Entry: identifica uma ação que é
executada na entrada do estado.

Do:
identifica
uma
atividade
em
andamento, ou seja, que é executada
continuamente durante o tempo em que o
objeto permanece neste estado.

Exit: identifica uma ação que é executada
na saída do estado.
UML – Diagramas de máquina de
Estado

Estado Inicial:
Aguardando
Leitura do Cartão

É um tipo de estado que indica o local de
início
na
maquina
de
estados.
È
representado graficamente como um círculo
preenchido.
UML – Diagramas de máquina de
Estado

Estado Final:
Atualizando
Lançamentos

É um tipo de estado que indica que a
máquina de estados concluiu sua execução.
É representado graficamente como um
círculo envolvendo um pequeno círculo
preenchido.
UML – Diagramas de máquina de
Estado

Exemplo:
Nascimento
Bebê
entry / reconhecerMae ()
do / desenvolverHabilidades ()
Primeiro
Amadurecimento
Criança
entry / buscarParques ()
do / brincar ()
exit / abandonarBonecas () [se sexo = F]
exit / abandonarCarrinhos () [se sexo = M]
Puberdade
Adolescente
entry / estabelecerTerritorio ()
do / namorar ()
Adulto
do / trabalhar ()
conhece a pessoa de sua vida
Casado
entry / casamento ()
do / planejarFilhos ()
viver a vida de
casado até o fim
UML – Diagramas de máquina de
Estado

Exemplo:
Nascimento
Bebê
entry / reconhecerMae ()
do / desenvolverHabilidades ()
Primeiro
Amadurecimento
Criança
entry / buscarParques ()
do / brincar ()
exit / abandonarBonecas () [se sexo = F]
exit / abandonarCarrinhos () [se sexo = M]
Puberdade
UML – Diagramas de máquina de
Estado

Exemplo:
Puberdade
Adolescente
entry / estabelecerTerritorio ()
do / namorar ()
Adulto
do / trabalhar ()
conhece a pessoa de sua vida
Casado
entry / casamento ()
do / planejarFilhos ()
viver a vida de
casado até o fim
UML – Diagramas de
Atividades



Tem por propósito focalizar um fluxo de
atividades que ocorrem internamente em um
processamento, dentro de um período de
tempo.
Sua versão atual esta mais coerente com um
diagrama de fluxo de dados ou de workflow.
O diagrama de atividades completo é ligado a
um classificador, como um caso de uso, um
pacote ou a implementação de uma operação.
UML – Diagramas de Atividades

Ação (Action):

É uma atividade básica existente para a
especificação de um comportamento que
venha
a
representar
alguma
transformação ou processamento na
modelagem de um sistema.
Preencher Nota
UML – Diagramas de Atividades

Fluxo de Controle (Control Flow):


Mostra o fluxo que conecta as ações e
atividades, ou seja, mostra a seqüência
de execução.
Representa
a
conclusão
de
uma
atividade e inicialização da próxima.
Corrigir Provas
Fluxo de Controle
Preencher Nota
UML – Diagramas de Atividades

Nó Inicial (Initial Node):


Indica o nó que inicia um fluxo quando
uma seqüência de atividades é invocada.
Similar ao estado inicial do diagrama de
máquinas de estado.
UML – Diagramas de Atividades

Atividade Final (Activity Final):


Indica o nó que para todos os fluxos
numa atividade.
Similar ao estado final do diagrama de
máquinas de estado.
UML – Diagramas de Atividades

Fluxo Final (Flow Final) :

Indica o nó final que termina um fluxo.
Utilizado para finalizar algum fluxo, mas
não todos.
UML – Diagramas de Atividades

Nó de Decisão (Decision Node):




Permite que, a partir de condições de
guarda, sejam escolhidos entre mais de
um fluxo de saída.
Utilizado para simular a construção de
um
if-then-else.
Uma decisão faz a separação de um
fluxo de entrada de outros fluxos
disjuntos.
Cada um desses fluxos deve possuir
uma condição de guarda que será
avaliada.
UML – Diagramas de Atividades

Nó de Decisão (Decision Node):

A partir destas avaliações, pelo menos
um fluxo deve ser disparado ou o
modelo estará mal formado.
UML – Diagramas de Atividades

Nó de Intercalação (Merge Node):

A mesma representação gráfica da
decisão é utilizada para marcar o fim de
fluxos disparados por uma decisão.
UML – Diagramas de Atividades

Exemplo de um nó de Bifurcação e de
Intercalação em uma parte de um
diagrama de Atividades:
Calcular custo
total
[ custo < 2500 ]
Decisão
[ custo >= 2500 ]
Obter Autorização
Emitir Carnê
Intercalação
UML – Diagramas de Atividades

Nó de Bifurcação (Fork Node):


A bifurcação separa um fluxo de entrada
em vários fluxos concorrentes, sendo
que todos eles são disparados ao mesmo
tempo.
A representação gráfica é feita através
de uma linha grossa (no formato de uma
barra).
UML – Diagramas de Atividades

Nó de União (Join Node):


A união é um nó que sincroniza
múltiplos fluxos concorrentes, ou seja, a
união concatena fluxos de regiões
concorrentes em um único fluxo simples.
A representação gráfica é feita através
de uma linha grossa (no formato de uma
barra).
UML – Diagramas de Atividades

Exemplo de um nó de Bifurcação e União
em uma parte de um diagrama de
Atividades.
Abrindo Arquivo
Bifurcação
Corregando
texto
Exibindo
texto
Liberando Edição
de texto
União
UML – Diagramas de Atividades

Raias (Swinlanes):



Ações
ou
atividades
podem
ser
organizadas dentro de raias, que são
usadas para agrupar responsabilidades
para ações ou atividades.
Frequentemente
correspondem
a
unidades organizacionais num modelo
de negócio.
Um diagrama de atividades pode ser
dividido visualmente em raias, cada qual
separada de suas raias vizinhas por
linhas sólidas verticais de ambos os
lados.
UML – Diagramas de Atividades

Raias (Swinlanes):



A ordenação relativa das raias não tem
significado semântico.
Cada ação é representada por uma raia
e os fluxos podem atravessar as zonas
das raias.
Exemplo de uma parte de um diagrama
de Atividades com divisão de Raias.
UML – Diagramas de Atividades

Exemplo de uma parte de um diagrama de
Atividades com divisão de Raias.
Cliente
Vendedor
Solicitação de
compra
Efetuar
Pagamento
Lançar Venda
Raias
Liberar
Mercadoria
UML – Diagramas de Atividades

Raias (Swinlanes):


A UML 2.0 acrescenta uma segunda
maneira de mostrar responsabilidades –
são os nomes de divisão (partition
names). Este caso é usado quando não é
possível fazer o uso de raias.
Na representação deve colocar o nome
da parte responsável entre parênteses,
dentro do retângulo da ação.
(Cliente)
Efetuar Pagamento
UML – Diagramas de Atividades

Exemplo:
Preparando Liberação
Produto
Separando Produto
em estoque
Verificando programação
do caminhão de entrega
[ com atraso ]
[ sem atraso ]
Embalar Produto
Emitindo liberação
para entrega
Emitir nota fiscal
Remanejar
entregas
UML – Diagramas de Interação
Geral / Visão Geral



É uma variação do Diagrama de
Atividade
Seu objetivo é fornecer uma visão
geral do controle de fluxo
São utilizados quadros em vez de Nós
de ação, embora símbolos como Nó de
Decisão e Nó Inicial sejam também
utilizados
UML – Diagramas de Interação
Geral / Visão Geral

Existem basicamente dois tipos de
quadros:
 Quadros de Interação: que contém
qualquer tipo de diagrama de
interação da UML
 Quadro
de
Ocorrências
de
Interação: que normalmente fazem
uma referência a um diagrama de
interação, mas não apresentam seu
detalhamento
UML – Diagramas de Interação Geral /
Visão Geral

Exemplo:
ref.
[ Registrado ]
Realiza Login
ref.
Efetua Compra
[ Não registrado ]
Cadastrar Cliente
Quadro de Ocorrência
de Interação
: Usuário
Cliente
obterNome (matricula)
Quadro de Interação
UML – Diagramas de Interação
Geral / Visão Geral

No exemplo de diagrama de Interação
Geral estão descritos:
 Dois Quadros de Ocorrência de
Interação, referentes ao processo de
Login do Cliente e ao processo de
Efetuar a Compra
 Um Quadro de Interação referente
ao processo de Cadastrar Cliente
UML – Diagramas de
Implementação

Diagramas
de
Implementação
mostram aspectos de implementação
física do sistema, incluindo a estrutura
de componentes e a estrutura do
sistema em tempo de execução
(runtime)
UML – Diagramas de
Implementação

São expressos de duas formas:

Diagramas de Componentes

Diagramas de Implantação
UML – Diagramas de
Componentes


O
Objetivo
do
Diagrama
de
Componentes , na versão 2.0 da UML, é
mostrar as caixas pretas (que são os
componentes) e especificar quais são
suas interfaces, para que outros
componentes possam acessar seus
serviços sem que conheçam seus
conteúdos
Um componente representa uma parte
modular de um sistema, que encapsula
UML – Diagramas de
Componentes



Seu comportamento é definido em
termos de prover e requerer interfaces
Está amplamente associado à linguagem
de programação que será utilizada para
desenvolver o sistema modelado
Pode ser utilizado para modelar o
código-fonte, os módulos executáveis de
um sistema, a estrutura física de um
banco
de dados
ou mesmo
os
componentes
necessários
para
a
construção de interfaces
UML – Diagramas de
Componentes

Determina
como
os
componentes
estarão estruturados e interagirão para
que o sistema funcione de maneira
adequada
UML – Diagramas de Componentes

Representação:
 Componente: representado como um
retângulo, onde, dentro desta figura é
colocado
o
estereótipo
<<component>> e / ou é colocada
uma figura no canto direito superior
similar a representação antiga (um
retângulo com duas tabs sobrepostas)
UML – Diagramas de Componentes

Exemplo
de
componente:
representação
<<component>>
Gerenciador de Compras
de
UML – Diagramas de Componentes

Representação:

Associado
ao
componente
são
conectados ícones para representação
de interfaces que são providas e/ou
requeridas pelo componente
Interfaces requeridas
Interfaces providas
UML – Diagramas de Componentes

Exemplo:
<<component>>
<<component>>
Gerenciador de Login
Gerenciador de Compras
<<component>>
<<component>>
Cadastro de Clientes
Controlador de Estoque
UML – Diagramas de Implantação


O Diagrama de Implantação é o
diagrama com a visão mais física da
UML
Este diagrama enfoca a questão da
organização da arquitetura física sobre a
qual o software ira ser implantado e
executado em termos de hardware
UML – Diagramas de Implantação

Neste
descrevemos
as
máquinas
(computadores pessoais, servidores,
etc) que suportarão o sistema e
definimos como estas máquinas estarão
conectadas
e
através
de
quais
protocolos
se
comunicarão
e
transmitirão informações
UML – Diagramas de Implantação

Exemplo:
<<device>>
Hardware do
Cliente
<< TCP / IP>>
<<device>>
<< TCP / IP>>
<<device>>
Servidor de
Firewall
Servidor de
Comunicação
<< TCP / IP >>
<<device>>
Servidor de
Banco de Dados
<< TCP / IP>>
<<device>>
Servidor de
Aplicação
UML – Diagramas de Pacotes



O Diagrama de Pacotes tem por objetivo
representar os sub-sistemas ou sub-módulos
englobados por um sistema de forma a
determinar as partes que o compõe
Demonstra
como
os
elementos
estão
organizados nos pacotes e a dependências que
existem entre os elementos e os próprios
pacotes
Pode ser utilizado de maneira independente ou
associado a outros diagramas
UML – Diagramas de Pacotes

Exemplo de um pacote:
Login
UML – Diagramas de Tempo


O Diagrama de Tempo apresenta
algumas semelhanças com o Diagrama
de Máquina de Estado, no entanto, ele
enfoca as mudanças de estado de um
objeto ao longo do tempo
Este diagrama terá pouca utilidade para
modelar aplicações comerciais, contudo
poderá ser utilizado na modelagem de
sistemas de tempo real ou sistemas que
utilizem
recursos
multimídia
/
hipermídia, onde o tempo em que o
UML – Diagramas de Tempo


Exemplo:
Neste exemplo descrevemos as etapas do objeto congresso.
Cada etapa ou estado do objeto congresso é representado por
meio de um hexágono, sendo que o primeiro e o último se
encontram abertos. Acima de cada etapa entre barras verticais,
se encontram as Restrições de Duração que determinam o
tempo em que transcorrem as etapas
Download

analiseeprojsistemas10