UML Diagramas de Interação
Diagramas de Interação entre Objetos: O diagrama de Interação entre Objetos da UML retrata as mensagens e os argumentos de mensagens que os objetos enviam uns aos outros (mostra a comunicação em tempo de execução!) É ideal para modelar a estrutura de um simples caso de uso (definido por Jacobson). UML - Diagramas de Interação
UML - Diagramas de Interação Tipos de diagramas: Diagrama de Colaboração Diagrama de Seqüência Um pode ser convertido no outro de forma automática! UML - Diagramas de Interação
UML - Diagramas de Interação Tipos de mensagens: Síncrona (o objeto remetente deve esperar pelo objeto destinatário para finalizar a execução) Assíncrona (o objeto remetente não precisa esperar) UML - Diagramas de Interação
Diagramas de Colaboração: Aterrissar (..) umaAeronave: Aeronave flapeEsquerdo: Flape posicionarÂngulo (ânguloDeAterrissagem: Ângulo, out ânguloDeAterrissagemOK: boolean) UML - Diagramas de Interação
… indicando a operação: umaAeronave: Aeronave. aterrissar (..) flapeEsquerdo: Flape posicionarÂngulo (ânguloDeAterrissagem: Ângulo, out ânguloDeAterrissagemOK: boolean) UML - Diagramas de Interação
… polimorfismo do diagrama de colaboração: escala (fator: NúmeroRealPositivo) ícone: (Polígono) UML - Diagramas de Interação
Mensagens interativas: *: escala (fator: NúmeroRealPositivo) atualDesktop: Desktop : (Polígono) 1 0..* : (Polígono) ícones UML - Diagramas de Interação
Uso do self em mensagens mensagem1 (self: Classe1, …) objetoRemetente: Classe1 objetoDestino: Classe2 Self como argumento (indica ao objeto destinatário qual objeto enviou a mensagem) UML - Diagramas de Interação
Enviar mensagem para si próprio: objetoRemetente: Classe1 self: Classe1 mensagem2 (…) objetoRemetente: Classe1 << self >> Em termos de programação não haveria necessidade! UML - Diagramas de Interação
Diagrama de Seqüência: : Transferência contaOrigem: ContaBancária contaDestino: ContaBancária nova titular iniciar titular retirarFundos (…) UML - Diagramas de Interação
: Transferência.efetuarTransferência: Booleano criar nova transação de transferência iniciar transação definir titular da conta-Origem definir titular da conta-Destino if os dois titulares são o mesmo e tem boa reputação then conta-Origem.retirarFundos (quantia, out retiradaOK); else transferirAçãoX.desfazerOperações; return false; endif if retiradaOK then contaDestino.depositarFundos (quantia, out depósitoOK); else transferirAçãoX.desfazerOperações; return false; endif if depósitoOK then transferirAçãoX.registrar; return true; UML - Diagramas de Interação
UML - Diagramas de Interação Mensagem síncrona: Apenas um objeto pode enviar mensagem num instante O objeto remetente deve esperar até que o destintário processe a mensagem O objeto destinatário processará somente uma mensagem de cada vez UML - Diagramas de Interação
Representação de mensagem assíncrona: mensagemAssíncrona1 (argEntrada) objetoRemetente: Classe1 objetoDestino: Classe2 UML - Diagramas de Interação
“porta eletrônica”: gerenciadorEntrada: GerenciadorEntrada reg.Funcion: Registro porta: PortaSegura sinalDaPorta: SinalIluminado manterAberta (duraçãoDaPorta) Operar (duraçãoSom) permitir Entrada registrarEntrada (…) Operar (duraçãoSinal) UML - Diagramas de Interação
Mecanismo de recado (callback) O objeto signatário registra um interesse em algum tipo de evento via uma mensagem assíncrona ao objeto destinatário O objeto signatário continua com suas atividades, enquanto o destinatário monitora a ocorrência do evento Quando o evento ocorre o destinatário devolve uma mensagem assíncrona notificando da ocorrência UML - Diagramas de Interação
“detectar e-mail urgente”: registrarNovoEMail (classUrgente) sessãoDoUsuário: Sessão listenerDeEMail: ListenerDeEMail NovoEMailrecebido (máxUrgencia) UML - Diagramas de Interação
Mensagens assíncronas com prioridade: transmitirMensagem (MensagemEMail) {prioridade =3} objetoRemetente: AlgumaClasse portaDeEMail: Porta UML - Diagramas de Interação
Mensagens de difusão (broadcasting): *: Carregue (…) : Sequenciador DeConfiguração << broadcast >> : (Objeto) : (Polígono) UML - Diagramas de Interação