Você está na página 1de 26

Prof.

Horcio Ribeiro

Identificao de mtodos e mensagens

Aps a leitura desse captulo, o leitor saber:

- Modelar um mtodo.
- identificar a diferena de mtodo e mensagem
- identificar os componentes de um diagrama de seqncia
- Identificar a seqncia de mtodos
- Identificar os trs tipos de visibilidade de atributos e como
represent-los
- Identificar uma caracterstica de sincronismo de mtodos
- Identificar uma caracterstica de um mtodo assncrono
- Identificar quando e como um mtodo deve criar um objeto.

Livro

Ttulo: UML Essencial - Um Breve Guia para a Linguagem-Padro de


Modelagem de Objeto
Nome do autor: Martin Fowler
Editora: Artmed
Ano: 2005
Edio: 3
Captulo: captulo 4: casos de
Ttulo: Utilizando UML e Padres Uma Introduo Anlise e ao
Projeto Orientado a Objetos e ao Processo Unificado
Nome do autor: Craig Larman
Editora: Artmed - rever
Ano: 2007
Edio: 3

Prof. Horcio Ribeiro

No fim desta aula voc:

Aprendeu o que encapsula mento


Aprendeu o que um mtodo e como model-lo
Aprendeu a diferena entre mtodo sncrono e mtodo
assncrono
Aprendeu sobre a visibilidade de atributos
Aprendeu sobre as caractersticas de um diagrama de
seqncia
Aprendeu a definir uma classe de projeto.

Prof. Horcio Ribeiro


EXERCCIOS
1 um diagrama de interao serve para:
A mostrar o fluxo de informao entre o ator e o sistema
B mostra como as mensagens retornam para o ator
C - mostra a seqncia de chamada de mtodos
D mostra a seqncia de instancias de objetos graficamente
E mostar como o fluxo de informao deve ser armazenado
2 A linha da vida serve para :
A definir o sincronismo entre a criao de objetos
B representar o tempo de vida de um objeto
C representa o tempo de vida de uma classe
D representa o tempo de vida de um mtodo assncrono
E representa o tempo de vida de um mtodo sncrono
3 o mtodo:
2.1.2 a [sexo = m] : string:nome,int:numero := MSG(int:CPF)
Significa:
A o mtodo etiquetado, portanto dever ser criado um fluxo de informao
contendo nome e numero
B o mtodo esta etiquetado, mas no esta correta na sua sintaxe,pois falta a
indicao de sexo = f.
C uma mensagem que indica que a classe MSG dever apresentar os dados de
nome e nmero quando se passa r o CPF.
D um fluxo que chamado de 2.1 se o sexo = m e apresenta na tela o nome
de quem possui o CPF informado
E um mtodo etiquetado que retorna o nome e matricula quando for chamado
para um CPF

Prof. Horcio Ribeiro

EXERCCIOS
4 considere o diagrama para as afirmaes abaixo.
totalmente correta.

Indique a opo que est

A - existe uma funo construtora que instancia um objeto de cada participante do


diagrama.
B Cada objeto tem a sua funo construtora que a cria quando instanciado
C- O kill indica qual a funo construtora do objeto foi retirada da memria neste
momento
c o mtodo 1.2.a e 1.2.b so dois mtodos assncronos e que so disparados neste
momento
d o mtodo ativar comum aos dois objetos aluno e professor, por isto podemos
encapsul-lo e usurio

Exerccio
1

Imagine que esteja sendo implantado um sistema de acompanhamento de


comunidades carentes, de modo a poder identificar os perfis de cada comunidade,
suas demandas e as possibilidades de atuao junto a cada uma. Abaixo so
apresentadas algumas classes desse sistema e seus respectivos relacionamentos.

Prof. Horcio Ribeiro

Residncia

Comunidade

Endereo
AreaConst
ruida
ImovelPro
prio

NomeComuni
dade

Morador

Municpio

Nome
DataNasc
Peso
Altura

NomeMunicipi
o

a) Faa o diagrama de seqncia referente ao mtodo AreaMediaConstruida(), que retorna,


para um municpio, a rea mdia das residncias que possuam pelo menos um morador
com idade maior do que 70 anos.
b) Faa o diagrama de seqncia do mtodo CriancasEstaturaPequena (idade, altura), que
retorna o nmero de crianas da comunidade com idade igual ao argumento idade e
estatura inferior ao argumento altura.
c) A partir das questes a e b, complemente o diagrama acima apresentando os mtodos,
navegabilidade e relacionamentos de dependncia - diagrama de classes de projeto.

Ttulo Diagrama de seqncia


Os casos e uso devem ser implementados, deve-se definir como devem ser
implementados. Os diagramas de interao, que mostram como as classes
interagem, so o diagrama de seqncia e o diagrama de colaborao. Nesta
aula vamos estudar os principais aspectos do diagrama de seqncia

No

diagrama

ser

de

seqncia

estamos

definindo

que

funes

devem

implementadas, se definir como o cdigo, para que o caso e uso possa ser
realizado. O objetivo identificar funes, que so as unidades para definir
novas funes.

Comparando com fatorao de nmeros, no diagrama de

seqncia fatoramos os caso e uso.

No confunda Um diagrama de

Prof. Horcio Ribeiro

seqncia mostra a seqncia de execuo de funes, portanto, no mostra


troca de informao. Um diagrama de seqncia uma espcie de algoritmo
de alto nvel em que se destaca a chamada das funes.

TITULO Uma classe de projeto


Uma Classe de projeto derivada da classe de domnio Na classe de domnio
identificamos conjuntos do mundo real, uma abstrao de coisas do mundo
real. Uma classe de projeto cdigo. Quando falamos em classes de projeto
estamos preocupados em definir o cdigo capaz de implementar a classe de
domnio, nos seus diversos aspectos. O UML considera que uma classe ser
implementada por isto na sua representao de classe j tem um local para
colocarmos os mtodos da classe (funes). Quando estamos modelando com
a viso de modelagem de domnio deve-se representar na classe apenas o
nome da classe e os atributos. O mtodo deve ficar para o momento que
vamos fazer o modelo de projeto.
Mtodos:
Um mtodo uma funo que colocamos dentro da classe, isto quer dizer
que a funo est encapsulada e s pode ser executada a partir da classe.

ALUNO
NOME
MATRICULA
TELEFONE
INCLUIR();
TRANSFERIR();
AVALIAR();
TRANCAR();

FUNES
ENCAPSULADAS NA CLASSE.
TAMBM SE DIZ QUE SO
OS
SERVIOS
QUE
A

No uma boa prtica de modelagem se colocar mtodos nas classes sem o


desenvolvimento de um dos diagramas de interao.
Mensagem:

Prof. Horcio Ribeiro

Os objetos precisam trabalhar de forma coordenada, e por isto devem se


comunicar atravs de seus mtodos. Um objeto pode chamara a execuo
de um mtodo de outro objeto. A chamada do mtodo de outra mensagem
o que chamamos de mensagem.

Quando desejamos definir como e quais mensagens so transmitidas


podemos fazer um diagrama de seqncia ou um diagrama de colaborao
so chamados de diagramas interativos.
Para cada caso e uso desenhamos que classes e que mensagens so
necessrias para se implementar o caso e uso.

Diagrama de seqncia:
Mostra a seqncia de chamada de mtodos (MENSAGENS) ao longo do
tempo.
Para isto devemos instanciar os objetos que iro ser utilizados.
Para se representar um objeto instanciado, por exemplo para a classe
aluno, temos:

: aluno

representa que um objeto qualquer da classe aluno foi

instanciado
Joao : aluno representa que o objeto nomeado como Joo da classe
aluno foi instanciado.
Um objeto instanciado tem um tempo de existncia A existncia do
objeto representado por um retngulo desenhado em
um trao na horizontal chamado linha da vida
(representao no tempo) .

Prof. Horcio Ribeiro

Na figura o inicio do retngulo indica o momento que o objeto


criado. Uma classe tem no mnimo dois mtodos obrigatrios. O mtodo
construtor() e o mtodo destrutor().
O mtodo construtor e
disponibilizado automaticamente e tem como objetivo criar todas as
estruturas de dados, mecanismos de software e controles necessrios a
existncia do objeto.
Assim o inicio do retngulo indica que foi
executada o mtodo construtor da classe. O mtodo destrutor
responsvel por liberar areas de trabalho e estruturas que foram
estabelecidas pelo construtor
Assim o destrutor libera espao na
memria e dispensa a CPU de executar atividades desnecessrias.
Quando no se deseja mais o objeto instanciado deve-se passar a funo
destrutora, normalmente indica-se isto pela palavra DESTROY ou KILL ou
FREE. Quando no se indica a chamadas da funo destrutora assumese que ela ocorre no final da execuo do caso e uso.

Um mtodo (ou funo encapsulada) da forma:


<tipo:retorno> nome (<parmetros tipo:nome>);
exemplo:

int:matricula ID_ALUNO (string:CPF);

indica uma funo chamada ID_ALUNO que retorna um


nmero inteiro chamado matricula e que ao ser chamada para executar
recebe uma string chamada CPF.

Prof. Horcio Ribeiro

Uma boa prtica de desenvolvimento se numerar a seqncia


das chamadas de mtodos. Embora o UML especifique como se deve
representar um mtodo, algumas pessoas no representam os tipos
junto ao retorno e aos parmetros Alguns mtodos no precisam de
parmetros Os retornos das funes pode ser representados por
linhas pontilhadas.
S tem sentido se colocar retornos quando a
informao voltada ser usada no processamento de um mtodo.

autodelegao
Um mtodo pode ser chamado por outro mtodo dentro de uma
classe. Neste caso o objeto esta enviando uma mensagem para ele
mesmo. o chamamos de auto delegao e representa-se.

Prof. Horcio Ribeiro

Na prtica as linguagens de programao ao executarem um


mtodo guardam o endereo desta execuo em uma varivel especial
chamada THIS. Quando se faz auto delegao busca-se para execuo
do mtodo o endereo armazenado nesta varivel.
Podemos indicar a execuo da forma:
THIS.mesagem();
Uma mensagem uma chamada a este mtodo. Pode-se indicar o
acesso a um atribulo ou mtodo de um objeto indicando o nome do
objeto.
Assim para a classe:
ALUNO
NOME
MATRICULA
TELEFONE
FUNES
ENCAPSULADAS NA CLASSE.
TAMBM SE DIZ QUE SO
OS
SERVIOS
QUE
A
CLASSE OFEREE

INCLUIR();
TRANSFERIR();
AVALIAR();
TRANCAR();

Prof. Horcio Ribeiro

podemos chamar a funo construtora, que vai criar o objeto.


Suponha que desejamos o objeto Joo.
As linguagens geralmente fazem isto por um mtodo com o
mesmo nome da funo ou pelo operador new.
Aluno Joo; /aluno um novo tipo e foi criado o objeto Joo.
Joao = new aluno; / Joo um objeto que foi criado da classe
aluno.
Pode-se acessar os atributos da classe indicando o objeto e a estrutura
que desejamos de dentro da classe.
Nome

--> indica que estamos acessando a varivel nome do


objeto Joo

Joao.Telefone = 23657854. --> indica que o telefone 23657854


foi atribudo a varivel telefone no objeto Joo.
Joao.transferir(); --> indica que foi ativada (executar) a funo
transferir a partir do objeto Joo e com as
caractersticas existentes no objeto na hora da
chamada.
Vamos construir alguns diagramas de seqncia para explicitar alguns
conceitos:
Considere o caso e uso: Matricular um aluno em uma universidade.
Com uma nica classe.

Prof. Horcio Ribeiro

Para incluir um objeto aluno temos o seguinte diagrama de seqncia:


inicialmente

registram se os objetos que sero usados com


representao de sua existncia na linha da vida.

Depois comeamos a desenhar cada mtodo com as respectivas


mensagens.
Observe que o nome do caso e uso o mtodo inicial no diagrama. E
este mtodo estabelece uma srie de mensagens. Todas as mensagens
so feitas no prprio objeto. A primeira mensagem chama o mtodo
mostrar_tela(); este mtodo responsvel por criar uma tela para ser
preenchida com os dados do aluno e tambm faz a critica destes dados
(eu estou definindo isto), ao se clicar O.K. (eu estou imaginando um
boto de O.K. Na tela) os dados (nome, matricula e telefone,
correspondente aos atributos da classe, sero conhecidos e devem ser
includos no conjunto (arquivos ou banco de dados, no momento de
definir isto agora), para isto vou estipular outro mtodo com o nome de
incluir_aluno(); e vou passar estes dados como parmetros.
O diagrama de seqncia com os mtodos e mensagens fica.

Com as informaes do diagrama podemos completar a classe aluno,


colocando os mtodos que identificamos.

Prof. Horcio Ribeiro

Observao:
Observe que a chamada de mtodos (mensagens)s pode ser feita para
mtodos definidos na classe, por isto vamos colocando os mtodos
identificados por cada classe.
Se analisarmos a estrutura do caso e uso do exerccio verificamos que a
forma que foi projetado no adequada, pois permitir que se inclua
duplicatas de alunos. O ideal que verificssemos se o aluno j existe
no conjunto. Neste caso deveramos colocar um mtodo para verificar
isto, podamos por exemplo criar um mtodo que retorne a string sim
se ele j existe ou no se ele no existe. S vamos incluir se voltar
no.
Nosso diagrama ento fica:

Prof. Horcio Ribeiro

Veja que o digrama de seqncia serve para verificar a melhor forma de


implementar. Por isto durante o estudo e definio de que mtodos vamos
definir podemos fazer vrios diagramas at decidirmos pelo mais adequado.
Se tivermos uma linguagem de programao orientada a objetos teramos de
definir nossa classe assim:
Classe Aluno
{ atributos:
String Nome;
String end;
Int matricula;
Mtodos:
Void matricular();
Void mostrar_tela();
String Validar();
Void incluir_aluno();
}
O diagrama acima corresponde a um algoritmo que incida mtodos usados:
Vamos mostrar
matricular();

com

uma

pseudolinguagem

como

ficaria

Aluno:: void matricular()


{ string varivel; // para receber a volta da validao

mtodo

Prof. Horcio Ribeiro


.....
// nome, end, matricula so variveis da classe e so
//acessadas pelos mtodos
This.mostrar_tela();
// esta funo Le e armazena dados nos atributos;
Varivel= this.validar(); //retorna sim ou no para a varivel
Se (varivel==no)
This.incluir_aluno()
Seno
Imprimir aluno j existe
retornar
}
Exemplo 2:
Considere que o analista de requisitos nos enviou o seguinte:

Os Objetos envolvidos para se realizar o mtodo so: :matricula, :aluno e


:curso Estes objetos precisam estar na memria (pelo menos achamos isto
inicialmente) par podermos executar as funes (que vamos identificar) e
acessar os valores dos atributos.
Observe no meu diagrama que comecei pelo objeto matricula, voc pode
contestar isto. Para fazermos a matricula, no diagrama de classes vemos que
precisamos de alguma forma buscar o cdigo do aluno e o cdigo da disciplina,

Prof. Horcio Ribeiro


ento mandamos mensagens para estes objetos retornarem estes cdigos.
Com o conhecimento dos cdigos podemos incluir no conjunto associativo.

A partir deste diagrama podemos definir as classes:


Classe curso

Classe aluno

Classe matricula

{atributo:

{atributo:

{atributo:

String nome;
Int
cod_curso;
Mtodos:
Int
ID_curso();

String

nome,

String nome, end;

end;

Int cod_aluno, cod_curso;


Int cod_aluno;

Mtodos:

Mtodos:

Void mat();

Int ID_al();
{}

Void incluir();
}

Prof. Horcio Ribeiro

A titulo de exemplo teramos o algoritmo em pseudocdigo


correspondente ao diagrama de classes, par ao mtodo mat():
Matricula:: void mat()
{ int valor1, valor2 // duas variveis para receber o retorno
// dos mtodos
AL = new aluno; // criou o objeto aluno
CUR = new curso; // criou o objeto curso
// no precisa criar o objeto matricula, pois ele est na
//varivel THIS o mtodo deve ser chamada pelo objeto
// matricula
..
Valor1=AL.ID_al();
Valor2=cur.Id_cur();
...
This.incluir();
....
retorna
}
Ateno:
Decidir em que classe colocar um mtodo uma dvida comum. Devese estudar a melhor forma de se projetar o mtodo. Deve-se considerar
volumes, desempenho, segurana e outros aspectos fsicos de
implementao.
Existe um padro de projeto chamado padro do especialista. Um
padro (uma soluo j estudada e adaptada) uma soluo que deve
ser usada e nos ajuda a dar solues timas para o projeto. O padro
do especialista diz:
O mtodo deve ser colocado na classe que conhece (ou deve conhecer)a
informao. O uso deste padro resolve mais de 90% de nossas
dvidas, por onde comear. No exemplo iniciei pelo objeto matricula,
pois ele deve ser o detentor da informao dos alunos matriculados.
Antigamente, usava-se um carto de responsabilidade da classe (CRC)
neste carto, medida que se projetava os mtodos, ia-se colocando
em que classes estes mtodos seriam implementados. Quando um

Prof. Horcio Ribeiro

mtodo colocado em uma classe dizemos que responsabilidade dela


fornecer o mtodo.
Ateno:
Padro do especialista:
A responsabilidade do mtodo da classe que detm a informao
Ateno:
Carto de responsabilidade da classe - CRC
Documento para registrar os mtodos de cada classe

EXEMPLO 3:
Existem situaes que o diagrama de seqncia tem um a condicional.
Isto representado representando-se por letra e com a condio.
Vamos considerar o caso e uso e o respectivo diagrama de classe

Vamos projetar o diagrama de seqncia para o caso e uso, e verificamos que


aps se verificar o tipo de usurio (professor ou aluno) deve-se abrir ativar a tela
de professor ou de usurio.
Assim considerando os objetos envolvidos temos:

Prof. Horcio Ribeiro

Observe a numerao dos mtodos . O mtodo logar 1. E ele constitudos por


chamadas a outros mtodos 1.1 (auto mtodo) e 1.2.a que uma alternativa e 1.2.b
outra alternativa.
Observe que as alternativas so representadas de um mesmo ponto. O caminho de
cada alternativa indicada pelo valor da condio, por exemplo, 1.2.1[tipo=aluno]
indica que ser executado o mtodo ativar() da sub classe aluno.
No desenvolvimento de um mtodo o ponto onde se define uma chamada pode
corresponder a um comando Se... ento, ou a um comando switch case. Veja a
representao abaixo:

Prof. Horcio Ribeiro

dica
A representao numrica indicando nveis, exemplo 1.2, significa o mtodo dois
dentro do mtodo um, facilita o desenvolvimento, pois podemos resolver um nvel de
cada vez, sem nos preocuparmos no nvel inferior.
O mtodo 1.2.2b.1 que um mtodo chamado na opo b de mtodo 1.2.2b, que foi
selecionado no mtodo 1.2 que o segundo mtodo a ser executado quando se
executa o mtodo 1

Exemplo4:
Existem situaes que se precisa usar a repetio de chamada de mtodos.
Suponha o diagrama de caso e com o respectivo diagrama de classes:

Prof. Horcio Ribeiro

Para se fazer o diagrama de seqncia deve-se saber que a nota fiscal, deve ter o
nome do cliente, endereo. Deve ter o nmero da nota e listar todos os itens que
compem a nota. Cada item de nota tem a descrio e o preo unitrio do produto .
Mas enquanto houver itens de nota fiscal deve-se busc-los e para cada item buscar
as informaes do produto; Veja o diagrama abaixo. O quadrado pontilhado mostrar
o que deve ser repetido para cada item:

A condio assinalada no canto do quadrado delimitador pode ser da forma:


Condio booleana: [ x<30 ]

Prof. Horcio Ribeiro


Indicao de variaes de uma varivel: [ i=1,3,5,7,9,12]
Indicao de uma condio [enquanto houver elementos]

Mensagens etiquetadas:
J vimos nos itens anteriores o que UML classifica como uma mensagem
etiquetada. Uma mensagem etiqueta quando se estabelece uma srie de
condies que devem ser cumpridas para se enviar a mensagem
De acordo com a UML a sintaxe da etiqueta :
<Predecessor><condio><expresso><retorno>
(<parmetros>);

:=

<mensagem>

<predecessor> uma lista de nmeros separada por vrgulas terminando por


uma /
Exemplo: 1.1, 1.2, 1.2.1, 1.2.2, 1.2.2.3/
<CONDIO>
<EXPRESSAO> uma lista de termos de seqncia separados por . seguida
por dois pontos.
Exemplo 1:

3.1

[x<y] : varivel:= funo (valor1,valor2);

Exemplo 2: 1.1b ,1.1 c [x<10] : varivel := funo (valor1,valor2);


- Indica que sero executas as mensagens consecutivamente
<Retorno> uma lista de nomes separados por vrgula que so retornados
pela funo.
Exemplo3:

3.1 * [x=1..n] : nome,endereo,matricula:= id_aluno();

Obs: * indica repetio - para valores de x de 1 ate n.


Exemplo4:

3.1 * [x=1;x<100,x++] : nome,end := id_al ();

Obs: pode-se
programao.

usar

estruturas

de

sintaxe

de

linguagens

de

Exemplo5 : 3.1 *|| [x=1; x<100,x ++] : nome,end id_al();


Obs: o smbolo *|| indica que as mensagens podem executar em
paralelo, isto , no existe sincronismo na execuo.
<Mensagem> o nome da funo.
<parmetros> o conjunto de parmetros passados na funo pode-se usar
sintaxe de alguma linguagem como por exemplos passar simplesmente o
nome dos parmetros:
1.2 : int nome:= Id_aluno (matricula, curso)

Prof. Horcio Ribeiro

Ou passar o tipo junto ao parmetro:


1.2 : int nome:= id_aluno (string:matricula, int:curso);

Casos especiais de representao


Tempo real:
Um sistema em tempo real, em principio, tem o tempo como o principal fator
para sua execuo.
O sistema precisa responder conforme projetado,
permitindo a execuo simultnea de processos em paralelo. Precisa-se
definir tempo de resposta, comportamento, comunicao entre processos.
Embedded System:
Um sistema de tempo real, normalmente, tem os processos muito integrados
a dispositivos de hardware. Este tipo de sistema chamado de Embedded
System.
Classe ativa: Normalmente os objetos (de uma classe passiva) s so
instanciados quando recebem mensagens as classes que vimos nos
exemplos anteriores-. Uma objeto de uma classe ativa pode tomar iniciativa
para executar aes sem enviar mensagens. Para isto deve-se representar os
mtodos com a preocupao de definir a forma de comunicao entre os
objetos ativos e sua sincronizao. Na UML uma classe ativa representado
com a indicao do esteretipos <<classe ativa>>.
A UML indica a forma de sincronismo durante a transferncia das mensagens,
por variaes na ponta da flecha:

I Ponta de flecha slida:


Indica que a chamada do procedimento sncrono. Indica que a seqncia
aninhada (nveis) toda completada antes da seqncia acionadora. Isto
indica que mtodos no mesmo nvel devem esperar.
O remetente da
mensagem esperar pelo destinatrio esperar a concluso do mtodo antes
de continuar o seu processamento.

II Ponta de flecha fina:

Fluxo de controle assncrono. Mostra que o controle passado sem haver


preocupao com a comunicao., tambm se indica o retorno com a flecha
do voltando do objeto solicitado para o solicitante.

Prof. Horcio Ribeiro

III Meia ponta:

Indica que o remetente envia a mensagem e continua imediatamente o seu


processamento sem esperar pelo destinatrio.

Iv Mensagem de Intervalo:
Uma
transao

Indica que o remetente esperar pelo destinatrio por um perodo fixo de tempo
antes de interromper o processo de transmisso da mensagem e continuar o seu
processamento.
Exemplo de mensagem assncrona: figura do livro Modelagem de Objetos
Furlan,Jose,David

Prof. Horcio Ribeiro

Observao: Uma ativao a execuo de uma ao.


V - Mtodo criar()
Pode-se indicar a criao de um objeto na forma

Exemplo de diagrama de seqncia: figura do livro Modelagem de Objetos


Furlan,Jose,David

Prof. Horcio Ribeiro

Um diagrama de seqncia, usando todas as representaes da UML, d para


o implementador uma srie de informaes importantes.
Quando o diagrama de seqncia envolve vrios objetos, pode-se ter
dificuldade de visualizar o mtodo que se est desenhando. Para resolver
isto temos outro tipo de diagrama chamado diagrama de colaborao. O
diagrama de colaborao tem o mesmo objetivo do diagrama de seqncia,
mas permite uma melhor visualizao, pois s se representa as classes
envolvidas no mtodo.
Dica:
Seja simples:
1 - No queira iniciar usando todas as representaes apresentadas nesta
aula. Use as bsicas e medida que for ganhando experincia v
introduzindo novas representaes
2 O diagrama de seqncia para ser simples. Por isto desenhe apenas
o desenvolvimento de um mtodo ou caso e uso completo por diagrama.
No resolva vrios caso-uso ou mtodo no mesmo diagrama
3 pratique, este o segredo. Lembre-se que ao desenhar um diagrama
de seqncia voc esta definindo cdigo.