Vous êtes sur la page 1sur 6

Introduo

Diagramas de Interao

Os modelos de anlise no respondem


a algumas perguntas:


Introduo


Introduo

O modelo de classes de anlise (modelo


conceitual) no mostra:


De que forma os objetos colaboram para que um


determinado caso de uso seja realizado?
Em que ordem as mensagens so enviadas
durante esta realizao?
Que informaes precisam ser enviadas em uma
mensagem de um objeto a outro?
Ser que h responsabilidades ou mesmo classes
que ainda no foram identificadas?
Mas sesses CRC no fornecem um modo de
documentar essas interaes.

Para responder s questes anteriores, o


modelo de interaes deve ser criado.
Esse modelo representa como os objetos
interagem via mensagens para a execuo de
cenrios dos casos de uso do sistema.

Sesses CRC podem ajudar a identificar


quais so as responsabilidades de cada
objeto e com que outros objetos ele
precisa colaborar.


Introduo


Como as operaes do sistema so


executadas internamente?
A que classes estas operaes internas
pertencem?
Quais objetos participam da realizao de
um caso de uso ou de uma operao do
sistema?

Introduo


Objetivos do modelo de interao


1.

Obter informaes adicionais para completar e


aprimorar outros modelos (principalmente o modelo
de classes)



Diagramas de interao representam como o sistema age


internamente para que um ator atinja seu objetivo na
realizao de um caso de uso. A modelagem de um SSOO
normalmente contm diversos diagramas de interao. O
conjunto de todos os diagramas de interao de um sistema
constitui o seu modelo de interaes. (Bezerra, E. seg.edio)

Mas sesses CRC no fornecem um modo


de documentar essas interaes.




2.

Quais as operaes de uma classe?


Quais os objetos participantes da realizao de um caso de
uso (ou cenrio deste)?
Para cada operao, qual a sua assinatura?
Uma classe precisa de mais atributos?

Fornecer aos programadores uma viso detalhada


dos objetos e mensagens envolvidos na realizao
dos casos de uso.

Mensagem

Mensagem
O conceito bsico da interao entre objetos a
mensagem.
Um sistema OO uma rede de objetos que trocam
mensagens.
Funcionalidades so realizadas pelos objetos, que
s podem interagir atravs de mensagens.
Um objeto envia uma mensagem para outro objeto
quando o primeiro deseja que o segundo realize
alguma tarefa.

Na construo de diagramas de interao, mensagens


de um objeto a outro implicam em operaes que
classes devem ter.
Uma mensagem representa a requisio de um
objeto remetente a um objeto receptor para que
este ltimo execute alguma operao definida
para sua classe. Essa mensagem deve conter
informao suficiente para que a operao do
objeto receptor possa ser executada.

Sintaxe da UML para


mensagens

Mensagens x responsabilidades
(mtodos e atributos


Na UML, o rtulo de uma mensagem deve seguir


a seguinte sintaxe:
[[expresso-seqncia] controle:] [v :=] nome [(argumentos)]

Onde o termo controle pode ser uma condio


ou um iterao:
* [ clusula-iterao ]

Uma mensagem implica na existncia de uma operao no


objeto receptor. A resposta do objeto receptor ao
recebimento de uma mensagem a execuo da operao
correspondente.

Exemplos (sintaxe UML para


mensagens)


Mensagem simples, sem clusula alguma.


1: adicionarItem(item)

Mensagem com clusula de condio.


3: [a > b] trocar(a, b)

Mensagem com clusula de iterao e com


limites indefinidos.
2*: desenhar( )

Mensagem com clusula de iterao e com


limites definidos.

[ clusula-condio ]

O nico termo obrigatrio corresponde ao nome


da mensagem.

Notao para objetos


Objetos so representados em um diagrama de
interao utilizando-se a mesma notao do
diagrama de objetos.
Podem ser representados objetos annimos ou
objetos nomeados (identificados) dependendo
da situao.

2*: [i := 1..10] figuras[i].desenhar( )




Mensagem aninhada com retorno armazenado


na varivel x.
1.2.1: x := selecionar(e)

Notao para objetos

Notao UML para objetos


Venda
Atual

Venda
Atual:Venda

:Venda

Objeto nomeado, mas sem classe


determinada (modelo incompleto)

Objeto nomeado com a indicao da


Respectiva classe (modelo completo)

Objeto annimo, uma instncia qualquer


da classe Venda (modelo annimo)

Elementos de uma coleo tambm podem ser


representados.
Classes tambm podem ser representadas.
Para o caso de mensagens enviadas para a classe.
Uma mensagem para uma classe dispara a
execuo de uma operao esttica.
A representao de uma classe em um diagrama
a mesma utilizada para objetos, porm o nome da
classe no sublinhado

Multiobjetos

Notao para uma classe




Um multiobjeto o nome que a UML d para


uma coleo de objetos de uma mesma classe.
Pode ser utilizado para:


Venda

representar o lado muitos de uma associao de


conectividade um para muitos.
representar uma lista (temporria ou no) de objetos
sendo formada em uma colaborao.

Um multiobjeto representado na UML atravs de


dois retngulos superpostos.


O nome do multiobjeto apresentado no retngulo que


fica por cima e segue a mesma nomenclatura utilizada
para objetos.
Conveno: usar o nome da classe de seus elementos
para nomear o multiobjeto.

Mensagens para
Objetos/Coleo

Notao para multiobjetos




Uma mensagem pode ser enviada para


um multiobjeto, ou pode ser enviada
para um nico objeto (elemento) do
multiobjeto.

:itensdeVenda


Quando o smbolo de iterao no


usado, convenciona-se que a mensagem
est sendo enviada para o prprio
multiobjeto.

Mensagens para
Objetos/Coleo

Implementao de
multiobjetos
Em geral implementados atravs de alguma estrutura
de dados que manipule colees.
Portanto, algumas mensagens tpicas que podemos
esperar que um multiobjeto aceite so as seguintes:

Implementao de
multiobjetos
A interface List da linguagem Java apresenta operaes
tpicas de um multiobjeto.
public interface List<E> extends Collection<E> {
E get(int index);
E set(int index, E element);
boolean add(E element);
void add(int index, E element);
E remove(int index);
abstract boolean addAll(int index, Collection<? extends E> c);
int indexOf(Object o);
int lastIndexOf(Object o);
ListIterator<E> listIterator();
ListIterator<E> listIterator(int index);
List<E> subList(int from, int to);
}

Tipos de diagramas de
Interao


Posicionar o cursor da coleo no primeiro elemento.


Retornar o i-simo objeto da coleo.
Retornar o prximo objeto da coleo.
Encontrar um objeto de acordo com um identificador nico.
Adicionar um objeto na coleo.
Remover um objeto na coleo.
Obter a quantidade de objetos na coleo.
Retornar um valor lgico que indica se h mais objetos a
serem considerados.

Tipos de diagramas de
Interao


Diagrama de Colaborao (ou Comunicao)


grafo ou rede,






foco nas mensagens enviadas entre objetos que


esto relacionados.
se a nfase o contexto do sistema
exibe mensagens enfatizando relacionamentos.
melhor utilizao do espao (disposio em duas
dimenses).
mais adequado para profissionais que esto
acostumados sesses CRC.

Diagramas de Interao

Diagrama de Sequncia traos de


eventos


foco nas mensagens enviadas no decorrer do


tempo.
se a nfase do que se quer modelar o
decorrer do tempo
a visualizao fica dificultada conforme o
nmero de objetos cresce (disposio em
uma dimenso).

Diagramas de Interao

Diagrama de viso geral de


interao
Pode ser utilizado para apresentar uma

viso geral de diversas interaes entre


objetos, cada uma delas representada
por um diagrama de interao.
til para modularizar a construo do
diagramas de seqncia (ou de
comunicao).

Quadros de interao

Diagramas nomeados

Elemento grfico, que serve para modularizar a construo de


diagramas de seqncia (ou de comunicao).
Objetivos especficos:
Dar um nome ao diagrama que aparece dentro do quadro;
Fazer referncia a um diagrama definido separadamente;
Definir o fluxo de controle da interao.

Notao:

Dar um nome ao diagrama que aparece dentro do quadro

Diagramas referenciados

Fluxo de controle: alternativas

Fazer referncia a um diagrama definido separadamente.

Fluxo de controle: opes

Fluxo de controle: iteraes

Referncias



Boock, G. and Rumbaugh, J. The Unified Modeling Language User


Guide . Addison-Wesley, 1999
Arlow, J. and Neustadt, I. UML 2 and the Unified Process: Practical
Object-Oriented Analysis and Design, 2nd Edition, The Addison-Wesley
Object Technology Series, 2005.
Rumbaugh, J.; Jacobson, I. and Booch , G. The Unified Modeling
Language Reference Manual, 2nd Edition, The Addison-Wesley Object
Technology Series, 2004.
Boock, G.; Rumbaugh, J. and Jacobson, I; Unified Modeling Language
User Guide, 2nd Edition, The Addison-Wesley Object Technology
Series, 2005.
Jacobson, I; Boock, G. and Rumbaugh, J., Unified Software
Development Process, Addison-Wesley, Janeiro 1999.
Larman, C. Applying UML and Patterns: An Introduction to
Object-Oriented Analysis and Design Prentice-Hall, New
Jersey - USA, 1997
Bezerra, E. Princpios de Anlise e Projeto com a UML, ed.
Campus-Elsevier. 2003.