Buscar

DIAGRAMA DE INTERAÇÃO, COM ÊNFASE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

- -1
MODELAGEM DE SISTEMAS
DIAGRAMA DE INTERAÇÃO, COM ÊNFASE 
EM SEQUÊNCIA
- -2
Olá!
Bom dia!
Nesta aula, abordaremos o conceito do tripé da análise, composta pelo diagrama e especificações de casos de
uso, diagrama de classes e diagrama de sequência.
Vamos aprender que os diagramas de interação, que podem ser o diagrama de sequência ou de comunicação,
têm total interação com casos de uso e classes, na medida em que mostram como as classes interagem para
realizar o passo a passo de cada cenário do caso de uso.
Bons estudos!
Objetivos
Ao fim desta aula, você deverá ser capaz de cumprir os objetivos abaixo descritos:
1. Identificar a finalidade dos diagramas de interação;
2. Distinguir os dois diagramas de interação: sequência e comunicação;
3. Reconhecer quando usar o diagrama de sequência e o de comunicação;
4. Identificar os conceitos e elementos do diagrama de sequência;
5. Reconhecer que os diagramas de interação ajudam na identificação de novas classes e novos métodos para as
classes;
6. Identificar como se derivam os diagramas de sequência, a partir do diagrama de casos de uso, das
especificações textuais dos casos de uso e do diagrama de classes.
Diagramas de interação
Os implementam as funcionalidades que oferecem, pelasistemas orientado a objetos troca de mensagens
 ou seja, um objeto envia uma mensagem a outro quando deseja que este realize uma tarefa.entre os objetos,
Baseado nesse contexto, podemos entender de que forma os atuam. Vamos entender diagramas de interação
isso partindo do conceito de diagrama de casos de uso e diagrama de classes. Veja:
O d apresentam as funcionalidades.iagrama de casos de uso 
O mostra a estrutura (nome, atributos e métodos) diagrama de classes e relacionamentos entre as classes
necessárias ao sistema.
Os mostram como as classes (na verdade, os objetos) trocam , ou seja,diagramas de interação mensagens
interagem para oferecer uma funcionalidade (ou realizar um caso de uso).
- -3
Tipos de diagramas de interação
Os diagramas de interação, de uma forma geral, mostram como as classes colaboram em determinados
 Visam ilustrar como os objetos interagem, por meio de mensagens.comportamentos.
São dois tipos de diagramas de interação: o e o . diagrama de sequência diagrama de comunicação
Veja algumas características desses dois tipos de diagramas de interação:
• De uma forma genérica, o é o mais rico dos dois, mas o diagrama de diagrama de sequência 
comunicação também tem sua finalidade, na medida em que é . Cada mais flexível quanto ao desenho
um dos diagramas de interação tem suas vantagens e desvantagens que os tornam úteis em diferentes 
situações.
• De uma forma geral, ambos visam estabelecer a integração entre o diagrama de classes e o 
, mostrando como as diagrama de especificações textuais dos casos de uso classes colaboram na 
 (um caso de uso é um conjunto de cenários de uso).realização de um cenário de uso
• Uma das grandes contribuições dos diagramas de interação é a identificação de novos métodos para 
as classes e ainda a ajuda na identificação de qual classe deve conter um determinado método.
A oferece algumas , e o é oUML, em sua versão 2.0, formas de modelar interações diagrama de sequência 
mais usado deles. O outro é o , que nas versões anteriores à 2.0 da UML era chamadodiagrama de comunicação
de diagrama de colaboração.
A seguir, veja algumas diretrizes sobre os diagramas de interação:
• Num mesmo projeto, podemos até usar os dois diagramas de interação, mas para representar interações 
ou comportamentos diferentes.
• Não faz sentido usar ambos, por exemplo, para representar um mesmo cenário de uso, pois eles têm o 
mesmo objetivo, porém focos diferentes.
• Para cenários, casos de uso ou comportamentos diferenciados, podemos optar por um dos dois. Mas em 
geral, usa-se apenas um deles por todo o projeto.
Comparativo entre os diagramas de interação
Como vimos, os diagramas de interação : epodem ser de dois tipos diagrama de sequência diagrama de
Cada um tem sua vantagem, que por sua vez atua como desvantagem para o outro. Veja, a seguir,comunicação. 
um comparativo das vantagens, quando usar, pontos fortes e fracos de cada tipo de diagrama:
• Diagrama de Sequência
Saiba mais
Uma mensagem representa a solicitação que um objeto requisitante faz a um objeto receptor
para que este execute uma das operações definidas em sua classe.
•
•
•
•
•
•
•
- -4
Vantagens:
• Há como saber a ordem de envio das mensagens, com bastante clareza. Já no diagrama de 
colaboração, o conhecimento da sequência das mensagens ocorre pela inserção da numeração 
das mensagens;
• O diagrama de sequência é oportuno, pelo fato de focar a temporalidade (daí o nome sequência) 
da interação, que é relevante.
Quando usar:
• Devemos usar o diagrama de sequência quando o foco for a sequência das mensagens no 
decorrer do tempo.
• Diagrama de Comunicação
Vantagens:
• Normalmente permite construir modelos mais legíveis, comparativamente aos diagramas de 
sequência;
• O diagrama de comunicação foca nas mensagens enviadas entre objetos que estão relacionados.
Quando usar:
• Devemos usar o diagrama de comunicação quando o foco forem as mensagens enviadas entre os 
objetos que estão relacionados.
• Diagrama de Sequência
Pontos fortes: 
• Mostra com clareza a sequência temporal das mensagens;
• Amplo conjunto de opções de notação.
Pontos fracos:
• A cada novo objeto, o diagrama cresce para a direita, consumindo espaço na horizontal, e se 
muitos objetos participam, dificulta o desenho e leitura.
• Diagrama de Comunicação
Pontos fortes: 
• Economia de espaço ao modelar — flexibilidade ao adicionar novos objetos, em qualquer 
direção do desenho.
Pontos fracos:
• Difícil perceber a sequência das mensagens, sendo necessária sua numeração sequencial;
• Menos opções de notação.
O tripé da análise
Do ponto de vista da fase de análise de sistemas, existem três modelos que se integram e formam uma base
. São eles:mínima para a modelagem e documentação de sistemas
• Diagrama de casos de uso e especificações de casos de uso;
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
- -5
• Diagrama de casos de uso e especificações de casos de uso;
• Diagrama de classes;
• Diagrama de sequência ou diagrama de colaboração.
Esses três diagramas formam o chamado . Veja essa relação na figura abaixo:tripé da análise
Casos de uso (em suas especificações) — Especificam o comportamento do sistema (ou parte dele),
descrevendo as funcionalidades deste. O caso de uso é um conjunto de cenários, no qual:
• O cenário é uma sequência de passos que descreve uma interação entre o sistema e um usuário;
• Todo caso de uso tem o cenário principal, que é o “caminho sem erros”, ou seja, tudo acontece sem 
nenhum problema ou exceção;
• A cada problema ou exceção, pode-se derivar um novo cenário, mostrando como o sistema vai se 
comportar.
O de classes mostra as classes do domínio do problema.diagrama conceitual 
O mostra a interação (como trocam mensagens) entre os objetosdiagrama de sequência ou comunicação
(classes) de um determinado cenário (caso de uso).
O Diagrama de Sequência
A partir de agora vamos conhecer as especificidades do .diagrama de sequência
Você já sabe que o diagrama de sequência visa mostrar como as classes envolvidas interagem (trocam
mensagens) para a realização de um caso
•
•
•
•
•
•
- -6
de uso, mais especificamente de um cenário de uso (parte de um caso de uso), ao longo da linha do tempo. O foco
aqui é a .sequência da troca de mensagens
Assim, o diagrama de sequência mostra o passo
a passo da especificação do cenário de uso, evidenciando as classes relacionadas e como elas trocam mensagens
entre si, conforme ilustra a imagem (trecho de diagrama de sequência) a seguir:
Fique ligado
A mensagem em um diagrama de sequência representa um método que pertence à classe do
objeto que recebe a mensagem. Vide a classe Cliente, a seguir, com o método Procurar Cliente().
- -7
O enviauma mensagem de nome Procurar Cliente() ao objeto Cliente.objeto Controlador
O Diagrama de Sequência e seus Elementos
Dentre os de um diagrama de sequência, podemos destacar:elementos principais 
• Os objetos participantes da interação são organizados na horizontal;
• Abaixo de cada objeto, existe uma linha pontilhada (linha de vida);
• Cada linha de vida possui o seu foco de controle (caixa de ativação);
• O foco de controle indica que o objeto está fazendo algo;
• As mensagens entre objetos são representadas com linhas horizontais rotuladas, partindo da linha de 
vida do objeto remetente e chegando à linha de vida do objeto receptor.
Representando decisões no diagrama de sequência
Muitas vezes, precisamos representar que determinadas mensagens serão enviadas ou não de acordo com a
chamada condição de guarda; ou ainda representar um (noconjunto de mensagens mutuamente exclusivas 
qual, dentre várias mensagens possíveis, apenas uma delas é enviada). Na imagem a seguir, vemos um trecho de
diagrama de sequência, no qual representamos a decisão.
Observe que temos o retângulo, com uma linha tracejada dentro, com o rótulo de nome “alt”, indicando um
fragmento alternativo para a lógica condicional de exclusão mútua, expresso em guardas. Na parte de cima,
inicial do retângulo, temos a condição de guarda [Tipo Cliente =F] e na parte de baixo, após a linha tracejada,
temos outra condição de guarda [Tipo Cliente = J].
Descrição:
1. O ator informa o tipo de cliente, que pode ser F (física) ou J (jurídica);
•
•
•
•
•
- -8
2. Se o Tipo Cliente = F (primeira condição de guarda) = VERDADE, executa-se as mensagens que estão
associadas a essa condição, ou seja, as mensagens que estão antes da linha tracejada;
a. Ator informa os dados da pessoa física (dados cliente físico);
b. Ocorre a inserção desses dados, através da chamada ao método Inserir CliFis(), que está na classe Pessoa
Física;
3. Se o Tipo Cliente = F = FALSO, desvia-se para a execução das mensagens que estão após a linha tracejada, na
qual temos outra condição de guarda a ser avaliada;
4. Se Tipo Cliente = J (segunda condição de guarda) = VERDADE, executa-se as mensagens que estão associadas a
essa condição, ou seja, as mensagens que estão após a linha tracejada;
a. Ator informa os dados da pessoa jurídica (Dados Jur);
b. Ocorre a inserção desses dados, através da chamada ao método Inserir CliJur(), que está na classe Pessoa
Jurídica.
Representando repetições no diagrama de sequência
Além dos elementos já discutidos, o diagrama de sequência possibilita que especifiquemos , ou seja, repetições
uma ou mais mensagens que são enviadas repetidas vezes. Veja um exemplo:
Esse trecho de diagrama de sequência representa a repetição, na caixa LOOP, chamada de quadro de interação,
com a condição de guarda [Para cada item de venda], ou seja, enquanto houver item na venda e o caixa (ator)
digitar um cod produto, as mensagens e interações contidas na caixa LOOP serão executadas (ProcurarProd(),
Inserir Novo Item() e Incluir Item() ).
O retângulo que representa a repetição tem o rótulo “Loop”, indicando fragmento de repetição enquanto a
condição de guarda for verdadeira.
Observe que os métodos Inserir Novo Item() e Incluir Item() serão executadas se a condição [Se produto Exists)
for verdadeira. E tal condição varia em função do resultado do método ProcurarProd(), contido na classe
Produto.
- -9
Criação e destruição de objetos
O diagrama de sequência dispõe de , respectivamente, a duas notações extras para representar criação
(<<Create>>) e a (<<Destroy>>) de . A seguir, veja exemplosdestruição objetos participantes da interação
das duas notações:
Uso da criação
Na figura a seguir, vemos o (Objeto Criado). Depois de criado, quando recebe a uso da criação do participante
mensagem <<CREATE>>, representado pelo método (CriaObjeto()), o Objeto Criado pode receber e enviar
mensagens normalmente.
- -10
Uso da destruição
Na figura a seguir, temos o exemplo da , quando o objeto destruidor envia a mensagemdestruição de objetos
<<destroy>>, representado pela execução do método DestroyMessage(). O elemento, representado pelo X, no
objeto destruído representa o seu fim.
Um objeto pode se autodestruir, o que é representado por um X ao final da linha de vida de um objeto (neste
caso, é como se o objeto enviasse uma destruição a si próprio).
Tipos de Mensagens: Síncronas e Assíncronas
Os exemplos aplicados sobre o diagrama de sequência,
até aqui, usaram apenas a , ou seja, aquela que uma vez enviada, (setamensagem síncrona aguarda o retorno
pontilhada na direção contrária) (tal qual uma chama de rotina em um programa).com a sua conclusão
O outro tipo é a , ou seja, a que uma vez enviada mensagem assíncrona não necessita esperar por uma
resposta e pode continuar o fluxo do processamento.
Exemplo
Um bom exemplo de uso de mensagens assíncronas são os sistemas que necessitam de processamento
 e por isso devem permitir (mensagens queconcorrente representar mensagens concorrentes assíncronas
são processadas em paralelo sem um tempo definido para a sua realização e sem esperar o retorno da
mensagem para prosseguir).
A figura a seguir mostra um exemplo de (seta vazia), representada pela chamada aomensagem assíncrona
método Message1(), que sai do Objeto 1 para o Objeto 2. Mostramos logo a seguir a Message2(), síncrona (seta
cheia), para que você perceba a diferença.
- -11
Responsabilidade das Classes
Quando definimos uma mensagem no modelo de interações, estamos atribuindo uma responsabilidade a uma
classe.
A modelagem de interações é um procedimento cuja finalidade é decompor as responsabilidades do
sistema e alocá-las a classes.
Exemplo
Se partimos do princípio que um sistema terá N responsabilidades, podemos pensar em algumas soluções de
divisões de responsabilidades entre as classes desse sistema. As soluções extremas seriam: uma classe contendo
as N responsabilidades ou N classes contendo uma responsabilidade cada. Claro que essas duas soluções são
inviáveis na prática, mas entre elas existem outras possibilidades.
A tarefa de e existem várias formasidentificação de classes e atribuição de responsabilidades é complexa
para realizá-la. A melhor solução dependerá, obviamente, da expertise do modelador e da correta aplicação de
. A alguns princípios básicos de desenvolvimento de software coesão e o acoplamento são dois desses
. Ela é uma medida que indica o princípios quão relacionadas (afins) são as responsabilidades de uma classe
. Um indica uma ou seja, as responsabilidades de uma classe devem ser fortementebom projeto alta coesão,
relacionadas entre si.
Ao modelarmos classes, uma questão de relevância surge. Veja:
Qual classe deve ser responsável por um determinado método?
Ou seja, em qual classe devemos alocar esse método?
Para tal decisão, devemos levar em consideração , volume, desempenho, segurança e outros aspectos físicos
inerentes à implementação. Existe um conjunto de critérios que devem ser avaliados, e nosso foco aqui não é nos
estendermos nesse assunto, mas alertar da preocupação. Apenas para citar, devemos alocar os métodos de
forma que tenhamos um baixo acoplamento e alta coesão entre as classes.
Classes de Interface e Controle
No , devemos separar as classes em:conceito do desenvolvimento em camadas
- -12
Responsabilidade das Classes
Quando definimos uma mensagem no modelo de interações, estamos atribuindo uma responsabilidade a uma
.classe
A é um procedimento cuja finalidade émodelagem de interações decompor as responsabilidades do
sistema e alocá-las a classes.
Exemplo
Se partimos do princípio que um sistema terá N responsabilidades, podemos pensar em algumas soluções de
divisões de responsabilidades entre as classes desse sistema. As soluções extremas seriam: uma classe contendo
as N responsabilidades ou N classes contendo uma responsabilidade cada. Claro que essas duas soluções são
inviáveis na prática, mas entre elas existem outras possibilidades.A tarefa de é complexa e existem várias formasidentificação de classes e atribuição de responsabilidades
para realizá-la. A melhor solução dependerá, obviamente, da expertise do modelador e da correta aplicação de
. A são dois dessesalguns princípios básicos de desenvolvimento de software coesão e o acoplamento 
princípios. Ela é uma medida que indica o .quão relacionadas (afins) são as responsabilidades de uma classe
Um indica uma , ou seja, as responsabilidades de uma classe devem ser fortementebom projeto alta coesão
relacionadas entre si.
Ao modelarmos classes, uma questão de relevância surge. Veja:
Qual classe deve ser responsável por um determinado método?
Ou seja, em qual classe devemos alocar esse método?
- -13
Para tal decisão, devemos levar em consideração , volume, desempenho, segurança e outros aspectos físicos
inerentes à implementação. Existe um conjunto de critérios que devem ser avaliados, e nosso foco aqui não é nos
estendermos nesse assunto, mas alertar da preocupação. Apenas para citar, devemos alocar os métodos de
forma que tenhamos um baixo acoplamento e alta coesão entre as classes.
Classes de Interface e Controle
No , devemos separar as classes em:conceito do desenvolvimento em camadas
<interface>
É a classe de interface, cujo estereótipo é << >>, que identifica uma classe queboundary
serve de comunicação entre os atores e o sistema.
<controle>
É a classe de controle, com o estereótipo de << >>, que serve de intermediaçãoControl
entre a classe de interface e as demais classes. Fica responsável por interpretar eventos
ocorridos sobre os objetos <<boundary>> (eventos de mouse e teclado) e encaminhar a
classe correta que precisa receber aquele evento.
<entidade>
São as classes de entidade, com o estereótipo << >>, que representam as classes doentity
domínio do problema, que contém o conhecimento do negócio.
Em geral, temos uma classe de interface por cenário de uso e uma classe de controle por caso de uso.
Tipicamente a sequência entre as classes ocorre conforme o procedimento descrito na imagem a seguir:
1) O ator solicita a ação desejada, pela interface do cenário de uso;
Fique ligado
Existe um padrão chamado de “padrão especialista” (solução já dada, estudada e adaptada)
que diz que o método deve ser colocado na classe que conhece a informação (tratada pelo
método).
Padrão é uma , já usada em projetos anteriores, que deve ser usada e ajuda a darsolução
soluções em nossos projetos. Existem outros padrões, classificados em diferenteseficientes 
tipos a serem considerados, que podem ser objeto de uma pesquisa, para a expansão dos
conhecimentos nesse sentido.
Os diagramas de interação, em que o diagrama de sequência é um deles, ajudam a clarear essa
questão, e muitas vezes perceberemos que fizemos uma escolha equivocada de classe, na qual
inicialmente alocamos determinados métodos.
- -14
2) A classe de interface encaminha o pedido a classe de controle;
3) A classe de controle traduz o pedido e solicita à respectiva entidade que execute determinada operação;
4) A sequência de retornos acontece, até que pela interface com o usuário tem a sua resposta.
A seguir, você pode visualizar o , alterando apenas a forma de apresentar a diagrama equivalente classe de
:entidade
- -15
Quando tratamos do relacionamento entre as classes no diagrama de classes genérico, em que a classe de
controle intermedia a comunicação entre as classes de interface e as classes de entidade, seguimos o
seguinte modelo:
O que vem na próxima aula
•Os elementos e construção do diagrama de comunicação;
•Estudo de caso, aplicando os conhecimentos adquiridos e construção de um diagrama de casos de uso, com as
devidas especificações;
•Modelagem de sistemas, conforme o modelo conceitual de classes e os diagramas de interação;
•Refinamento do diagrama de classes com base nas interações.
CONCLUSÃO
Nesta aula, você:
• Identificou a finalidade dos diagramas de interação e estabeleceu parâmetros de comparação dos dois 
diagramas de interação: sequência e comunicação;
• Reconheceu quando usar o diagrama de sequência e o de comunicação;
• Identificou os conceitos e elementos do diagrama de sequência;
• Reconheceu que os diagramas de interação ajudam na identificação de novas classes e novos métodos 
Saiba mais
Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e
artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor
online, utilizando os recursos disponíveis no ambiente de aprendizagem.
•
•
•
•
- -16
• Identificou os conceitos e elementos do diagrama de sequência;
• Reconheceu que os diagramas de interação ajudam na identificação de novas classes e novos métodos 
para as classes;
• Avaliou como aplicar o conceito de camadas (interface, controle e entidade) no diagrama de sequência e 
no diagrama de classes;
• Reconheceu como se deriva o diagrama de sequência com base no diagrama e especificações textuais 
dos casos de uso e diagrama de classes.
Referências
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. — Guia do Usuário. 2. ed. Rio de Janeiro: Elsevier, 2005. cap. 1 e 2.UML 
FOWLER, Martin. — um breve guia para a linguagem padrão. 3. ed. Porto Alegre: Artmed, 2005.UML essencial 
cap. 1
LARMAN, Craig. uma introdução à análise e ao projeto orientados a objetos e aoUtilizando UML e padrões?
processo unificado. 3. ed. Porto Alegre: Artmed, 2007. cap. 2.
•
•
•
•
	Olá!
	
	Diagrama de Sequência
	Diagrama de Comunicação
	Diagrama de Sequência
	Diagrama de Comunicação
	O que vem na próxima aula
	CONCLUSÃO
	Referências

Continue navegando