Diagramas de Sequência e
Comunicação
Introdução
• Faltam informações aos modelos de Classes
de Análise:
– De que forma os objetos colaboram para que um
determinado caso de uso seja realizado?
– Em que ordem as mensagens são enviadas
durante esta realização?
– Que informações precisam ser enviadas em uma
mensagem de um objeto a outro?
Introdução
• Para responder às questões anteriores, o
modelo de interações deve ser criado.
• Esse modelo representa mensagens trocadas
entre objetos para a execução de cenários dos
casos de uso do sistema.
Objetivos da criação de modelos de
interação
• Obter informações adicionais para completar
e aprimorar outros modelos (principalmente o
modelo de classes)
– Quais os métodos de uma classe?
– Quais os objetos participantes da realização de um
caso de uso?
– Para cada método, qual a sua assinatura?
– Uma classe precisa de mais atributos?
Mensagens
• Qual o objetivo da construção dos diagramas
de interação?
– Identificar mensagens
O que uma mensagem indica?
• Uma mensagem implica na existência de uma
operação no objeto receptor.
• A resposta do objeto receptor ao recebimento
de uma mensagem é a execução da operação
correspondente.
Exemplos de mensagens
• Mensagem simples, sem cláusula alguma.
– 1: adicionarItem(item)
• Mensagem com cláusula de condição.
– 3 [a > b]: trocar(a, b)
• Mensagem com cláusula de iteração e com limites indefinidos.
– 2 *: desenhar( )
• Mensagem com cláusula de iteração e com limites definidos.
– 2 *[i := 1..10]: figuras[i].desenhar( )
• Mensagem aninhada com retorno armazenado na variável x.
– 1.2.1: x := selecionar(e)
Tipos de diagrama de interação
• Há três tipos de diagrama de interação na UML
2.0 : diagrama de seqüência, diagrama de
comunicação e diagrama de visão geral da
interação.
• O diagrama de seqüência e o diagrama de
comunicação são equivalentes.
– Diagrama de seqüência: foco nas mensagens
enviadas no decorrer do tempo.
– Diagrama de comunicação: foco nas mensagens
enviadas entre objetos que estão relacionados.
Diagrama de Sequência
• Os objetos participantes da interação são
organizados na horizontal.
• Abaixo de cada objeto existe uma linha (linha de
vida)
• Cada linha de vida possui o seu foco de controle.
– O foco de controle indica que o objeto está fazendo
algo.
Elementos gráficos de um diagrama de
sequência
• Elementos básicos em um diagrama de
seqüência:
– Atores
– Objetos e classes
– Mensagens
– Linhas de vida e focos de controle
– Criação e destruição de objetos
– Iterações
Exemplo de diagrama de sequência
Mensagens reflexivas
• Em uma mensagem reflexiva (ou auto-mensagem) o
remetente é também o receptor.
– Corresponde a uma mensagem para this (self).
Criação/destruição de objetos
Quadros de interação
• Elemento gráfico, que serve para modularizar
a construção de diagramas de seqüência (ou
de comunicação).
Exemplo
Diagramas referenciados
Alternativas
Opções
Iterações
Fragmentos de um diagrama de
sequência
Heurísticas para modelagem de
diagramas de sequência
• Na primeira coluna deve ser colocado o ator que
iniciou o caso de uso.
• Na segunda coluna deve ser colocado um objeto de
fronteira (usado pelo ator para iniciar o caso de uso).
• Na terceira coluna deve ser colocado o objeto de
controle responsável pelo caso de uso.
• Objetos de entidade nunca acessam objetos de
fronteira ou de controle.
• Objetos de entidade normalmente são compartilhados
por outros diagramas de sequência
Diagrama de comunicação
• Chamado de diagrama de colaboração na UML 1.X.
• 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.
• As ligações (linhas) entre objetos correspondem a
relacionamentos existentes entre os objetos.
Diagrama de Comunicação
• Os objetos estão distribuídos em duas dimensões
– Vantagem: normalmente permite construir
modelos mais legíveis comparativamente aos
diagramas de seqüência.
– Desvantagem: não há como saber a ordem de
envio das mensagens a não ser pelas expressões
de seqüência.
• Direção de envio de mensagem é indicada por uma
seta próxima ao rótulo da mensagem.
Elementos gráficos de um diagrama de
comunicação
Exemplo de diagrama de comunicação
Exemplo de diagrama de comunicação
Criação de objetos em um diagrama
de comunicação
• Durante a execução de um cenário de caso de
uso, objetos podem ser criados e outros
objetos podem ser destruídos.
• A UML define (tags) para criação e destruição
de objetos no diagrama de comunicação.
– {new}: objetos ou ligações criados durante a
interação.
– {destroyed}: objetos ou ligações destruídos
durante a interação.
Criação de objetos em um diagrama
de comunicação
Heurísticas para construção do MI
• Verifique a consistência dos diagramas de
interação em relação aos Casos de Uso e ao
modelo de classes.
– Cada cenário relevante para cada caso de uso foi
considerado na modelagem de interações.
– Durante a construção do diagrama de interação,
pode-se identificar novas classes.
– Atributos, associações e operações também
surgem como subproduto da construção dos
diagramas de interação.
Heurísticas para construção do MI
• O objeto de controle realiza apenas a
coordenação da realização do caso de uso.
– Todas as ações do ator resultam em alguma atividade
realizada por esse objeto de controle.
– Isso pode levar ao alto acoplamento; no pior caso, o
controlador tem conhecimento de todas as classes
participantes do caso de uso.
– Sempre que for adequado, segundo os princípios de
coesão e de acoplamento, as classes de domínio
devem enviar mensagens entre si, aliviando o objeto
de controle.
MI em um processo iterativo e
incremental
• São construídos para os casos de uso.
• Há controvérsias sobre o momento de início da
utilização desse modelo (análise vs. 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.
MI em um processo iterativo e
incremental
• A construção do Modelo de Interação fornece
informações úteis para transformar o modelo de classes
de análise no modelo de classes de projeto.
• Em particular, Modelo de Interação fornece os
seguintes itens para refinar o modelo de classes:
–
–
–
–
–
Detalhamento de métodos
Detalhamento de associações
Novos métodos
Novos atributos
Novas classes
MI em um processo iterativo e
incremental
Exercícios
• Para cada especificação, desenvolva um
diagrama de sequência e um de comunicação.
• Use as classes entity, control e boundary nos
diagramas
Locação de DVDs
• Primeiramente o atendente deve verificar se o
sócio está cadastrado. Se este não estiver, a
locação deve ser recusada.
• Em seguida deve verificar se o sócio possui
alguma locação pendente, caso em que também
recusará o empréstimo.
• Se o sócio existir e não tiver locações pendentes,
então a locação deverá ser registrada e as cópias
emprestadas ao sócio.
• Durante o registro da locação deverão ser
registrados também todos os itens da locação
Clínica Veterinária (módulo de consulta)
• Se a consulta em questão não for a primeira consulta do
tratamento, o veterinário antes de examinar o animal pode
querer verificar o histórico das últimas consultas do
tratamento. Para isso será necessário consultar o dono do
animal que está sendo tratado. Esta consulta trará
juntamente com as informações do cliente uma listagem de
todos os animais por ele possuídos. Por meio desta
listagem, o veterinário selecionará o animal a ser tratado, o
que forçará a apresentação das informações específicas
deste. A partir da interface do cadastro do animal, pode-se
verificar a listagem de todos os tratamentos feitos pelo
mesmo.
• Após a consulta deve-se registrar seu histórico, contendo a
data em que a consulta foi realizada, o resumo do que foi
feito e o médico veterinário que realizou a consulta.
Leitura
• Art 11 - Effects of Defects in UML Models – An
Experimental Investigation
Diagrama de Estados
Introdução
• Cada objeto participante de um software
orientado a objetos se encontra em um estado
particular.
– Um objeto muda de estado quando acontece
algum evento interno ou externo ao sistema.
• Quando um objeto transita de um estado para
outro, significa que o sistema no qual ele está
inserido também está mudando de estado.
Diagrama de Transição de Estados
• A UML tem um conjunto rico de notações para
desenhar um DTE - diagrama de transição de
estado.
–
–
–
–
–
–
–
–
Estados
Transições
Evento
Ação
Atividade
Transições internas
Estados aninhados
Estados concorrentes
Definição de Estado
• Situação na vida de um objeto em que ele satisfaz a
alguma condição ou realiza alguma atividade.
• É função dos valores dos atributos e (ou) das ligações
com outros objetos. Exs:
– O atributo reservado deste objeto livro tem valor
verdadeiro.
– Uma conta bancária passa para o vermelho quando o seu
saldo fica negativo.
– Um tanque está na reserva quando o nível está abaixo de
20%.
• Estados podem ser vistos como uma abstração dos
atributos e associações de um objeto.
Estado Inicial e Final
• O estado inicial indica o estado de um objeto quando ele é
criado.
• O estado final indica o fim do ciclo de vida de um objeto.
• Normalmente verbos no gerúndio (esperando, cadastrando)
ou representando uma condição (ligado)
Definição de evento
• Ocorrência em um determinado momento do
tempo
– Usuário pressiona um botão
– Carro é ligado
– Ação é comprada
• Por definição, um evento é instantâneo
• Eventos não relacionados de modo causal são
considerados concorrentes.
Definição de transição
• Os estados estão associados a outros pelas
transições.
• Uma transição
– indica mudança de estados.
– é 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.
Condição de guarda
• É uma expressão de valor lógico que
condiciona o disparo de uma transição.
– A transição correspondente é disparada se e
somente se o evento associado ocorre e a
condição de guarda é verdadeira.
• Uma transição que não possui condição de
guarda é sempre disparada quando o evento
ocorre.
Ação
• Ao transitar de um estado para outro, um
objeto pode realizar uma ou mais ações.
• A ação associada a uma transição é executada
se e somente se a transição for disparada.
Exemplo (Conta Bancária)
Exemplo (Oferta de disciplinas)
Cláusulas
• No compartimento adicional de um retângulo
de estado podem-se especificar ações ou
atividades a serem executadas.
• Sintaxe geral: evento / [ação | atividade]
Cláusulas
• Cláusula entry
– Pode ser usada para especificar uma ação a ser
realizada no momento em que o objeto entra em um
estado.
• Cláusula exit
– Declarar ações que são executadas sempre que o
objeto sai de um estado.
• Cláusula do
– Usada para definir alguma atividade a ser executada
em um determinado estado.
– Especifica uma atividade, em vez de uma ação.
Entry e exit - exemplo
Identificação de elementos no DTE
• Cada operação com visibilidade pública de
uma classe é um evento em potencial.
• Outra fonte para identificação de eventos é
analisar as regras de negócio.
– “Um cliente do banco não pode retirar mais de R$
1.000 por dia de sua conta”.
– “O número máximo de alunos por curso é igual a
30”.
Um DTE para cada classe
• Os diagramas de estados são desenhados por
classe.
• Desvantagens:
– dificuldade na visualização do estado do sistema como
um todo.
– Essa desvantagem é parcialmente compensada pelos
diagramas de interação.
• Nem todas as classes de um sistema precisam de
um DTE.
– Somente classes que exibem um comportamento
dinâmico relevante.
Modelagem de estados em um
processo
• Os DTEs podem ser construídos com base nos
diagramas de interação e nos diagramas de
classes.
• Durante a construção do DTE para uma classe,
novos atributos e operações podem surgir.
– Essas novas propriedades devem ser adicionadas ao
modelo de classes.
• A construção de um DTE freqüentemente leva à
descoberta de novos atributos para uma classe
– Este processo de construção permite identificar novas
operações na classe
Exercício
• Desenvolva um diagrama de estados para o
módulo de locação de DVDs, com foco nos
estados do objeto da classe Locação, de acordo
com os outros modelos e os seguintes dados:
• Deve-se verificar se não há locações pendentes.
• Caso não haja pendências, deve-se iniciar o
registro da nova locação, bem como de cada item
locado.
• Após selecionar todas as cópias desejadas para a
locação, esta deve ser finalizada.
Diagrama de Atividades
Introdução
• Tipo de fluxograma estendido
• Permite representar ações concorrentes e sua
sincronização.
• Pode-se especificar:
– Processos de negócios
– Comportamento interno de um objeto
– Comportamento de casos de uso
– Algoritmos
Elementos de diagrama de atividades
• Elementos podem ser divididos em dois grupos:
controle seqüencial e controle paralelo .
• Elementos utilizados em fluxos seqüenciais:
–
–
–
–
–
Ação
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)
Elementos
Fluxo de controle sequencial
• Um estado em um diagrama de atividade
pode ser:
– um estado atividade leva um certo tempo para
ser finalizado.
– um estado ação: realizado instantaneamente.
• Deve haver um estado inicial e podem haver
vários estados finais e guardas associadas a
transições.
Fluxo de controle sequencial
• 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.
Fluxo de controle paralelo
• 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.
– A transição de saída da barra de junção somente é
disparada quando todas as transições de entrada
tiverem sido disparadas.
Diagrama de Atividades – formato
geral
Swimlanes
• As atividades de um processo podem ser
distribuídas por vários agentes que o
executarão.
– Ex. processos de negócio de uma organização.
• As raias de natação (swim lanes) dividem o
diagrama de atividade em compartimentos .
• Cada compartimento contém atividades que
são realizadas por uma entidade.
Exemplo de swimlanes
Modelagem de processo de negócios
Modelagem da lógica de casos de uso
• A realização de um caso de uso requer que
alguma computação seja realizada.
– Esta computação pode ser dividida em atividades.
– “Passo P ocorre até que a C seja verdadeira”
– “Se ocorre C, vai para o passo P”.
• Nessas situações, é interessante
complementar a descrição do caso de uso com
um diagrama de atividade.
Modelagem da lógica de casos de uso
• Os fluxos principal, alternativos e de exceção
podem ser representados em um único
diagrama de atividade.
• Identificação de atividades através do exame
dos fluxos do caso de uso.
Modelagem de Casos de Uso
Modelagem de Algoritmos
• Nível de abstração mais baixo
• Possibilidades de modularização
Exercícios
• Faça um diagrama de atividades para
representar o algoritmo para o cálculo do
fatorial de um número.
Locação de DVDs
• O sócio deve se dirigir ao atendente e apresentar seu
código de registro.
• O atendente pesquisará o sócio para verificar se este
realmente se encontra registrado.
• Se a pessoa em questão não estiver registrada, a
locação deve ser recusada.
• Caso o sócio esteja cadastrado, o sistema deve verificar
se este possui alguma pendência, ou seja, se possui
alguma locação ainda não devolvida. Se houver
alguma pendência a locação deverá ser recusada.
• Se o sócio não possuir pendências, então o atendente
irá registrar a locação, bem como cada uma das cópias
locadas.
Download

Diagramas de Sequência e Comunicação