Diagrama de Sequência Régis Patrick Silva Simão Régis Simão Diagrama de Seqüência 1/26
Agenda Introdução Objetos e Classes Linha de Vida Mensagens e Métodos Tempo de Ativação de um Método Indicação de Retorno Autochamada Quadros de Interação Convenções Antigas Diagramas de Seqüência de Análise ou de Projeto Exemplos Bibliografia Criação de Objetos Destruição de Objetos Régis Simão Diagrama de Seqüência 2/26
Introdução Representa a interação do ator com o sistema, mais especificamente com objetos do sistema. Normalmente estão associados a realizações de Casos de Uso, pois, mostra como o caso de uso deve ser construído. Manter Cliente Fluxo Principal Fluxos Alternativos Fluxos de Exceção Realização do Manter Cliente Diagrama de Classes que são usadas pelo caso de uso Diagramas de Seqüência Régis Simão Diagrama de Seqüência 3/26
Introdução Representa um conjunto de objetos e seus relacionamentos, incluindo as mensagens que podem ser trocadas entre eles. Representa a comunicação entre os objetos do sistema em um fluxo contínuo. Visão dinâmica do sistema. Ênfase na ordenação temporal dos eventos. Régis Simão Diagrama de Seqüência 4/26
Objetos e Classes objetos classe ou objeto indefinido : Balconista telaprincipal : ManterClienteTela : ManterClienteCtl clibd : ClienteBD 1. incluir(texto, Inteiro) 1.1. validar(texto, Inteiro) 1.2. incluir(texto, Inteiro) 1.2.1. incluir(texto, Inteiro) Régis Simão Diagrama de Seqüência 5/26
Objetos e Classes São representados por um retângulo. Pode aparecer só a classe, podendo ser interpretada como: a invocação de um método estático de uma classe ou a invocação de um método de um objeto que ainda não teve nome definido, fica sob a responsabilidade do implementador definir o nome do objeto. Quando aparece o nome do objeto, este nome deve ser usado pelo implementador e pode ser usado mais adiante no diagrama de seqüência para referenciar o objeto. Pode, mas não se deve, usar somente o nome do objeto. Régis Simão Diagrama de Seqüência 6/26
Linha de Vida Mostra o tempo de existência de um objeto ou de uma classe. : Balconista telaprincipal : ManterClienteTela : Mant erclientectl clibd : ClienteBD 1. incluir(texto, Inteiro) 1.1. validar(texto, Inteiro) 1.2. incluir(texto, Inteiro) 1.2.1. incluir(texto, Inteiro) Linhas de Vida Régis Simão Diagrama de Seqüência 7/26
Mensagens e Métodos A interação entre objetos, classes e atores se dá por intermédio de mensagens. Uma mensagem é a invocação de um método da classe que recebe a mensagem. : Balconista telaprincipal : ManterClienteTela : Mant erclientectl clibd : ClienteBD 1. incluir(text o, Int eiro) 1.1. validar(texto, Inteiro) 1.2. incluir(texto, Inteiro) 1.2.1. incluir(texto, Inteiro) Mensagens Régis Simão Diagrama de Seqüência 8/26
Tempo de Ativação de Método Consiste do tempo que um método leva para executar suas tarefas. Compreende todas as mensagens que se originam do método em execução. : Balconista telaprincipal : ManterClienteTela : Mant erclientectl clibd : ClienteBD 1. incluir(text o, Int eiro) 1.1. validar(texto, Inteiro) 1.2. incluir(texto, Inteiro) 1.2.1. incluir(texto, Inteiro) Tempos de Ativação Régis Simão Diagrama de Seqüência 9/26
Indicação de Retorno Representa uma informação ou um objeto que está sendo retornado. Também conhecido com mensagem de retorno. : Balconista manterclientetela : ManterClienteTela manterclientectl : ManterClienteCtl clibd : ClienteBD 1. consultar(inteiro) 1.1. consultar(inteiro) 1.1.1. recuperar(inteiro) 1.1.1.1. Cliente(Texto, Inteiro) cli : Cliente 1.1.1.2. cli 1.1.2. mostrar(cliente) Mensagem de Retorno Régis Simão Diagrama de Seqüência 10/26
Criação de Objetos A mensagem de criação deve chegar diretamente no objeto e não na linha de vida do objeto. Podem ser usados o nome da classe (Construtor) ou as palavras create (cria), new, etc. : Balconista manterclientetela : ManterClienteTela manterclientectl : ManterClienteCtl clibd : ClienteBD 1. consultar(inteiro) 1.1. consultar(inteiro) 1.1.1. recuperar(inteiro) 1.1.1.1. Cliente(Texto, Inteiro) cli : Cliente 1.1.1.2. cli 1.1.2. mostrar(cliente) Mensagem de Criação Régis Simão Diagrama de Seqüência 11/26
Destruição de Objetos O objeto deixa de existir após a mensagem de destruição. Após a mensagem de destruição coloca-se um X na linha de vida do objeto. : Balconista manterclientetela : ManterClienteTela manterclientectl : ManterClienteCtl clibd : ClienteBD 1. consultar(inteiro) 1.1. consultar(inteiro) 1.1.1. recuperar(inteiro) 1.1.1.1. Cliente(Texto, Inteiro) cli : Cliente 1.1.1.2. cli 1.1.3. mostrar(cliente) 1.1.2. destroi Mensagem de Destruição Régis Simão Diagrama de Seqüência 12/26
Autochamada Quando o próprio objeto invoca um método seu. : Balconista manterclientetela : ManterClienteTela manterclientectl : ManterClienteCtl clibd : ClienteBD 1. consultar(inteiro) 1.1. consultar(inteiro) Autochamada 1.1. 1. validar(inteiro) 1.1.2. recuperar(inteiro) 1.1.2.1. Cliente(Texto, Inteiro) cli : Cliente 1.1.2.2. cli 1.1.3. destroi 1.1.4. mostrar(cliente) Régis Simão Diagrama de Seqüência 13/26
Revisão Régis Simão Diagrama de Seqüência 14/26
Revisão Régis Simão Diagrama de Seqüência 15/26
Revisão Régis Simão Diagrama de Seqüência 16/26
Modelo MVC Model-View-Controller Divisão da aplicação em três camadas. Cada camada possui responsabilidades. Model: regras e objetos do negócio. Estereótipo: Entidade (Entity). View: interação com atores e apresentação de dados. Estereótipo: Fronteira (Boundary). Controller: em alguns versões pode interagir com os atores, mas normalmente só controlam os casos de uso, chamando objetos da camada Model e objetos da camada View. Estereótipo: Controle (Control). Fronteira Controle Entidade Régis Simão Diagrama de Seqüência 17/26
Modelo MVC Model-View-Controller Régis Simão Diagrama de Seqüência 18/26
Exercício 1: ECU Manter Cliente Fluxo Principal do Cenário Incluir Cliente do Caso de Uso Manter Cliente Este caso de uso inicia quando o ator Balconista solicita o caso de uso Manter Cliente. O sistema apresenta a tela conforme Anexo 1. O ator Balconista informa os dados do cliente. O ator Balconista solicita a inclusão do cliente. O sistema valida os dados conforme regra de negócio Entidade Cliente 1 Dados Cliente. (E1) O sistema grava os dados conforme regras de negócio Entidade Cliente 2. Regras para Inclusão de Cliente. O sistema apresenta mensagem: Cliente incluído com sucesso. O sistema encerra o caso de uso. Régis Simão Diagrama de Seqüência 19/26
Quadros de Interação (UML 2.0) Usados para expressar laços, condicionais, processos paralelos e etc.: procedure despachar foreach (itemdelinha) if (produto.valor > $10K) else end if end for cuidadoso.despachar regular.despachar if (precisaconfirmação) mensageiro.confirmar end procedure Régis Simão Diagrama de Seqüência 20/26
Quadros de Interação (UML 2.0) Usado para compreender comandos envolvidos em iterações, condições, etc.: Régis Simão Diagrama de Seqüência 21/26
Convenções Antigas Régis Simão Diagrama de Seqüência 22/26
Exercício 2: ECU Manter Cliente Fluxo Principal do Cenário Consultar Cliente do Caso de Uso Manter Cliente Este caso de uso inicia quando o ator Balconista solicita o caso de uso Manter Cliente. O sistema apresenta a tela conforme Anexo 1. O ator Balconista informa o código do cliente. O ator Balconista solicita a consulta do cliente. O sistema valida o código do cliente conforma regra de negócio Entidade Cliente 1. Dados Cliente. (E1) O sistema recupera os dados do cliente. (E2) O sistema apresenta os dados do cliente na tela do Anexo 1. O sistema encerra o caso de uso. Régis Simão Diagrama de Seqüência 23/26
Exercício 3: ECU Manter Cliente Fluxo Principal do Cenário Alterar Cliente do Caso de Uso Manter Cliente Este caso de uso inicia quando o ator Balconista solicita o caso de uso Manter Cliente e tem realizado o cenário Consultar Cliente. O ator Balconista altera os dados do cliente. O ator Balconista solicita a alteração do cliente. O sistema valida os dados conforme regra de negócio Entidade Cliente 1. Dados Cliente. (E1) O sistema solicita a confirmação da alteração. O ator confirma a alteração. (A1) O sistema grava os dados. O sistema apresenta mensagem: Cliente alterado com sucesso. O sistema encerra o caso de uso. Régis Simão Diagrama de Seqüência 24/26
Exercício 4: ECU Manter Cliente Fluxo Principal do Cenário Excluir Cliente do Caso de Uso Manter Cliente Este caso de uso inicia quando o ator Balconista solicita o caso de uso Manter Cliente e tem realizado o cenário Consultar Cliente. O ator Balconista solicita a exclusão do cliente. O sistema valida a exclusão conforme regra de negócio Entidade Cliente 3. Regras para Exclusão de Cliente. (E1) O sistema solicita a confirmação da exclusão. O ator confirma a exclusão. (A1) O sistema exclui os dados do cliente. O sistema apresenta mensagem: Cliente excluído com sucesso. O sistema encerra o caso de uso. Régis Simão Diagrama de Seqüência 25/26
Bibliografia FOWLER, Martin. UML Essencial. 3a. edição. Bookman, 2005. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usuário. Campus, 2000. Régis Simão Diagrama de Seqüência 26/26
FIM!!! Régis Simão Diagrama de Seqüência 27/26