Vous êtes sur la page 1sur 36

Prtica interdisciplinar em

desenvolvimento de software I
Diagrama de Sequencia

Este um diagrama comportamental que procura


determinar a sequncia de eventos que ocorrem em
um determinado processo, identificando quais
mensagens devem ser disparadas entre os elementos
envolvidos e em que ordem.
Assim, determinar a ordem em que os eventos
ocorrem, as mensagens que so enviadas, os
mtodos que so chamados e como os objetos
interagem dentro de um determinado processo o
objetivo principal desse diagrama.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

O diagrama de sequncia baseia-se no diagrama de casos


de uso, havendo normalmente um diagrama de sequncia
para cada caso de uso declarado, uma vez que um caso de
uso, em geral, refere-se a um processo disparado por um
ator.
Assim, um diagrama de sequncia tambm permite
documentar um caso de uso especfico, sendo que muitas
ferramentas CASE permitem gerar um diagrama de
sequncia diretamente a partir de um caso de uso.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Obviamente, o diagrama de sequncia depende tambm


do diagrama de classes, j que as classes dos objetos
utilizados no diagrama de sequncia esto descritas nele.
No entanto, o diagrama de sequncia uma excelente
forma de validar e complementar o diagrama de classes,
pois ao modelar um diagrama de sequncia que se
percebe quais mtodos so necessrios declarar em que
classe.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Isto . inclusive, o que recomendado fazer em alguns


processos de desenvolvimento de software, como o
Processo Unificado, no qual, como j foi dito
anteriormente, primeiramente produz-se o modelo
conceitual, durante a fase de anlise, e s mais tarde,
durante a fase de projeto, produz-se o modelo de domnio,
onde sero detalhados os mtodos das classes.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

A descoberta desses mtodos feita por


meio do detalhamento dos processos
enunciados no diagrama de casos de uso, por
meio de diagramas de interao, como os de
sequncia, embora estes possam tambm ser
utilizados na fase de anlise, como ser
demonstrado ao longo deste captulo.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

7.1 Atores

Os atores modelados neste diagrama so instncias dos atores


declarados no diagrama de casos de uso, representando
entidades externas que interagem com o sistema e que solicitam
servios, gerando, assim, eventos que iniciam processos.
Esses atores costumam ser apresentados como bonecos magros
idnticos aos usados no diagrama de casos de uso, porm,
contendo uma linha de vida. O conceito de linha de vida ser
explicado nas sees seguintes. A figura 7.1 ilustra um exemplo de
como representado um ator no diagrama de sequncia.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

A figura 7.1 representa um cliente que interage com


o sistema ou com outro ator envolvido no processo.
Os atores no so realmente obrigatrios nesse
diagrama, mas so utilizados com muita frequncia.
Alm disso, como a maioria dos diagramas de
sequncia, seno todos, refletem o aspecto dinmico
de um caso de uso, a utilizao dos mesmos atores
que interagem com o caso de uso em questo,
facilita a compreenso do processo.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

7.2 lifelines

Um lifeline um participante individual em uma


interao. Na maioria das vezes um lifeline ir se
referir a uma instncia de uma classe que participa
de uma interao. Para no confundir com a linha
que determina o tempo em que um participante
existe no diagrama, iremos manter essa terminologia
em ingls.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Lifelines no diagrama de sequncia tm a mesma


notao utilizada no diagrama de objetos,
diferenciando-se por uma linha de vida, representada
por uma linha vertical tracejada abaixo do participante.
Como na prtica, em geral um lifeline um objeto,
iremos utilizar o termo objeto com frequncia ao longo
do captulo. A figura 7.2 apresenta um exemplo de
lifeline no diagrama de sequncia.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Como possvel perceber ao observarmos a figura 7.2,


existe um lifeline chamado pesfis1, e esse lifeline uma
instncia da classe Pessoa_Fisica. A linha tracejada vertical
que surge a partir do objeto representa a linha de vida do
mesmo.

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Um lifeline pode existir desde o incio do processo ou


ser criado durante o decorrer da execuo do
mesmo. No primeiro caso, o retngulo que
representa o lifeline aparecer na parte superior do
diagrama. J no segundo caso, o retngulo surgir na
mesma altura em que a mensagem que o criar for
chamada. A figura 7.3 apresenta um exemplo de
lifelines ativos desde o inicio do processo e lifelines
criados no decorrer do mesmo.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Na figura 7.3 utilizamos o componente notas para


destacar a existncia de dois lifelines no
diagrama, pesfis1 e comum1, esse ltimo
pertencente classe Conta_Comum. Ao
estudarmos a figura verificamos que o objeto
(lifeline) pesfis1 esteve ativo desde o incio do
processo. J o objeto (lifeline) comum1 foi
instanciado ao longo do processo.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Observe que h mais duas instncias de objetos


no diagrama, cujos nomes no foram definidos,
que se referem respectivamente classe
Interface_Banco, uma classe de fronteira e
classe Controlador_Banco, uma classe de
controle. Alm disso, existem dois atores
interagindo nesse processo, os atores Cliente e
Funcionrio. Outros detalhes deste diagrama
sero explanados ao longo deste captulo.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

7.3 linha de Vida

A linha de vida representa o tempo em que um


objeto (Iifeline) existe durante um processo. As
linhas de vida so representadas por linhas finas
verticais tracejadas, partindo do retngulo que
representa o objeto. A linha de vida
interrompida com um "X" quando o objeto
destrudo. Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Um objeto no precisa necessariamente existir


quando o processo iniciado, podendo ser criado
ao longo do mesmo.
Assim, os objetos criados no so representados
no topo do diagrama, mas s a partir do
momento em que forem criados, como no
exemplo da figura 7.3, e obviamente s tero uma
linha de vida a partir desse mesmo momento.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

7.4 Foco de Controle ou Ativao

Indica os perodos em que um determinado objeto est


participando ativamente do processo, ou seja, identifica os
momentos em que um objeto est executando um ou mais
mtodos utilizados em um processo especfico. Os focos
de controle so representados dentro da linha de vida de
um objeto, porm, enquanto as linhas de vida so
representadas por tracejados finos, o foco de controle
representado por uma linha mais grossa. A figura 7.4
apresenta um exemplo de linhaProduzindo
de vida e foco de controle.
conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Nessa figura novamente utilizamos o componente notas,


dessa vez para identificar a linha de vida e o foco de
controle de um objeto do diagrama. Ao observarmos a
figura 7.4, podemos perceber, por intermdio da linha de
vida (linha vertical tracejada fina que parte do objeto), que
o objeto pesfis1 esteve presente durante todo o processo
de abertura de conta, mas ele s participou ativamente do
processo quando do disparo do mtodo conCpf, quando a
linha de vida tornou-se mais grossa, indicando que o foco
de controle do processo estava sobre o objeto pesfis1.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

7.5 Mensagens ou Estmulos

As mensagens so utilizadas para demonstrar a ocorrncia


de eventos, que normalmente foram a chamada de um
mtodo em algum dos objetos envolvidos no processo.
Pode ocorrer, no entanto, de uma mensagem representar
a comunicao entre: dois atores, nesse caso, no
disparando mtodos. Um diagrama de sequencia em geral
iniciado por um evento externo, causado por algum ator,
o que acarreta o disparo de um mtodo em um dos
objetos. Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

As mensagens podem ser disparadas entre:

um ator e outro ator;


um ator e um objeto, onde um ator produz um evento
que dispara um mtodo em um objeto;

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

um objeto e outro objeto, o que constitui a ocorrncia


mais comum de mensagens, onde um objeto transmite
uma mensagem para outro, em geral solicitando a
execuo de um mtodo. Um objeto pode inclusive
enviar uma mensagem para si mesmo, disparando um
mtodo em si prprio, o que conhecido como
autochamada;
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

um objeto e um ator, o que normalmente ocorre


quando um objeto envia uma mensagem de retorno
em resposta chamada de um mtodo solicitado,
contendo seus resultados.

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

As mensagens so representadas por linhas entre dois


componentes, contendo setas indicando qual componente
enviou a mensagem e qual a recebeu.
As mensagens so apresentadas na posio horizontal
entre as linhas de vida dos componentes e sua ordem
sequencial demonstrada de cima para baixo.

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

Os textos contidos nas mensagens primeiramente identificam


qual evento ocorreu e forou o envio da mensagem e qual
mtodo foi chamado. As duas informaes so separadas por
um smbolo de dois pontos (:). Podem ocorrer eventos que no
disparam mtodos. Nesse caso, a mensagem descreve apenas o
evento que ocorreu, sem o smbolo de dois pontos e nenhum
texto aps os mesmos. Tambm pode acontecer de somente o
mtodo chamado ser descrito, sem detalhar qual evento o
causou. Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

A figura 7.5 apresenta um exemplo de mensagem


disparada entre atores, representando uma conversao
entre os mesmos e que, portanto, no gera o disparo de
nenhum mtodo. J a figura 7.6 mostra um exemplo de
uma mensagem enviada por um objeto que dispara um
mtodo em outro.

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Ao compararmos as duas figuras, percebemos que a


mensagem da figura 7.5 descreve simplesmente o
evento em si, enquanto a da figura 7.6 descreve o
evento e, aps os dois pontos, o mtodo que foi
disparado por ele. Logicamente, tais mtodos podem
conter parmetros e retomar valores. No entanto,
deve-se evitar colocar muitos detalhes nas chamadas
dos mtodos para impedir que o diagrama de
sequncia torne-se muito extenso.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Quando a mensagem dirigida a um objeto j existente, a


seta da mensagem atinge a linha de vida do objeto,
engrossando-a, identificando que o foco de controle est
sobre o objeto em questo. No entanto, quando a
mensagem cria um novo objeto, a seta atinge o retngulo
que representa o objeto, indicando que a mensagem
representa um mtodo construtor e que o objeto passa a
existir somente a partir daquele momento. A figura 7.7
apresenta um exemplo de mensagem que provoca a
criao de um novo objeto.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Nesse exemplo, o objeto da classe Contralador_Banco


dispara o mtodo abrir_Conta no objeto comum1 da classe
Conta_Comum, instanciando esse objeto a partir desse
momento.
Uma mensagem pode tambm representar um mtodo
destrutor, ou seja, um mrodo que elimina um objeto no
mais necessrio. Nesse caso a mensagrm atinge a linha de
vida de um objeto e a interrompe com um X.
A figura 7.8 apresenta um exemplo de chamada de
mtodo destrutor.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I

Diagrama de Sequencia

Produzindo conhecimento, transformando vidas


www.posse.ueg.br
Prtica interdisciplinar em
desenvolvimento de software I
Diagrama de Sequencia

Nesse exemplo, existe um objeto car1 pertencente a uma


classe Carrinho, que representa um carrinho de compras,
como os encontrados nas livrarias digitais da internet e
que pode ter muitos itens, representados pelos objetos da
classe Item_Carrinho.
Se em algum momento o cliente resolver cancelar a
compra de algum dos itens do carrinho, o objeto da classe
Carrinho dever disparar um mtodo destrutor no objeto
da classe Item_Carrinho, aqui representado pelo mtodo
Excluir.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br

Vous aimerez peut-être aussi