Análise e Desenvolvimento de Sistemas Diagramas de Interação Profa. Maria Salete Marcon Gomes Vaz
Situando Orientação a Objetos UML Casos de Uso Levantamento de Classes Diagramas de Interação
Diagramas de Interação Apresentam visões detalhadas dos Casos de Uso Dividem-se em Diagramas de Seqüência Diagramas de Colaboração
Diagramas de Seqüência Objetivo Descrever as comunicações necessárias entre objetos para a realizacão dos processos em um sistema computacional Mostra interação organizada em forma de seqüência Define relacionamentos necessários entre as classes
Utilização Constrói-se um diagrama de seqüência para cada caso de uso – diagrama de seqüência principal. Opcionalmente constrói-se diagramas de seqüência para cenários Cenário: Forma de ocorrência de um caso de uso. Ex: Cenários de inclusão, alteração e exclusão para o caso de uso Cadastrar Cliente. Cenários de Erro.
Notação Objetos Ativação Linha de Tempo Mensagens
Questão O diagrama de seqüência apresenta-se mais próximo do “mundo real” ou da implementação do software?
Resposta Continuum Modelo Entidade-Relacionamento Diagrama de Casos de Uso Diagrama de Classes Diagramas de Interação Análise de Requisitos “Mundo Real” Continuum Software
Significado das Mensagens Chamada de função ou procedimento Ocorrência de evento Evento Origem Destino Clique do Mouse Mouse Algum objeto Movimento do mouse Dados no buffer do teclado Teclado Dados no buffer da serial Porta serial Interrupção Hardware Projeção de dados no monitor Monitor Bip do autofalante Autofalante
Tipos de Mensagens Mensagem Síncrona Mensagem Assíncrona
Questão Com relação a sincronia, como são classificadas a chamada de função e a ocorrência de evento?
Sintaxe das Mensagens A sintaxe geral para mensagens em diagramas de seqüência é: *[Condição] Seqüência : Retorno := NomeMsg(Argumentos)
Condição Para que a mensagem seja enviada é necessário que a condição seja satisfeita. Pode ser descrita por um operador relacional envolvendo atributos, variáveis ou constantes Exemplo: [x < 10] GravaDados() [res = OK] GravaDados() Inserir imagem p/ exemplo.
Repetições A inclusão de um asterisco (*) antes de uma condição permite especificar repetições. A condição representa uma expressão lógica de controle de repetição. Exemplo: * [x < 10] calcular(x)
Seqüência Pode-se incluir junto às mensagens uma numeração para indicar explicitamente a ordenação de ocorrência das mensagens. O uso da numeração é útil para: O diagrama de colaboração Caso de concorrência Exemplo: 1: calcular(x)
Retorno Muitas funções permitem produzir um valor que é retornado ao objeto que fez sua chamada. O objeto chamador deve indicar uma variável (atributo do objeto ou uma variável local) para receber o valor de retorno. Exemplo: Res := registrar(codigo)
NomeMsg É o identificador da mensagem ou função que está sendo chamada. Quando se tratar de chamada de função é necessário que a função seja declarada como uma das funções membro do objeto de destino da mensagem.
Argumentos São valores (constantes ou variáveis) enviados junto com a mensagem. No caso de chamada de função os argumentos devem coincidir com os parâmetros definidos para a função na classe do objeto destino.
Casos de Uso
Exemplo Diagrama de Seq. Caso de Uso Cadastrar Cliente
Cenário de erro O diagrama a seguir representa uma seqüência alternativa para o cenário de erro de violação de chave ao gravar no banco de dados.
Diagrama de Seqüência Listar Débitos por Cliente
Questão Fazer o diagrama de seqüência alternativo ao Listar Débitos por Cliente para o caso do cliente não possuir débitos.
Resposta
Diagrama de Seqüência Encerrar Pedido
Questão Fazer o diagrama de seqüência alternativo ao Encerrar Pedido para o caso do pedido não possuir produtos (total igual a zero).
Resposta
Diagrama de Seqüência Registrar Item
Questão Faça o diagrama de seqüência para o caso de uso Cadastrar Fornecedor
Resposta
Próximo Assunto: Diagramas de Seqüência