09/09/2013 Roteiro Aula 2 – Revisão 2:Diagrama de Sequência Diagrama de Sequência Mostra: a evolução de uma dada situação em determinado momento do software uma dada colaboração entre duas ou mais classes a interação com o usuário até a finalização de um dado processo UML Diagrama Sequência Diagrama de Sequência Notação: :NomeClasse :NomeClasse Notação: :NomeClasse :NomeClasse :NomeClasse Mensagem (par1, par2); Retângulo: ocorrência de execução :NomeClasse x:NomeClasse :clsPgInicial Classe Objeto Estereótipos Autodelegação Ou Método Recursivo Mensagem :NomeClasse Linha da vida Biblioteca Relacionando o atributo aos seu objeto Atores Uma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso, livros disponíveis e retirados. Leitores Bibliotecária Objetos Leitor Livro Empréstimo Atributos •Situação (disponível ou retirado) •Prazo de devolução 1 09/09/2013 Identificar as principais funções nº descrição Diagramas de caso de uso Use case 1 Leitor solicita cadastro CadastrarLeitor 2 Bibliotecária cadastra livro CadastrarLivro 3 Usuário (leitor ou bibliotecária) consulta acervo ConsultarLivro 4 Leitor solicita empréstimo de livro ObterLivroEmpréstimo 5 Leitor devolve livro emprestado DevolverLivro 6 É hora de imprimir relatório de leitores ImprimirRelatórioLeitores 7 É hora de imprimir relatório de leitores com empréstimos em atraso ImprimirRelatórioLeitores Atrasados 8 É hora de imprimir relatório de livros disponíveis ImprmirRelatórioLivros Disponíveis 9 É hora de imprimir relatório de livros retirados ImprimirRelatórioLivros Retirados ConsultarLivro ObterLivroEmprestado Leitor DevolverLivro <<extends>> CadastrarLeitor Diagrama de Sequência Descrição do caso de uso: cadastrarLeitor CadastrarLeitor Leitor cadastrarLeitor (curso normal) CadastrarLeitor Leitor Caso de Uso: Cadastrar Leitor Atores: Leitor Finalidade: Armazenar informações pessoais do Leitor Curso Normal 1. O leitor fornece seus dados; 2. O sistema verifica se este leitor não está cadastrado; 3. O sistema adiciona novo leitor; 4. O sistema emite a mensagem 'leitor cadastrado'. Cursos Alternativos 2.1. Cliente Cadastrado. O sistema emite a mensagem 'leitor já está cadastrado'; 2.2. Finalizar caso de uso. Diagrama de Sequência : Leitor : Leitor DadosLeitor() Diagrama de Sequência cadastrarLeitor (curso normal) Curso Normal 1. O leitor fornece seus dados; 2. O sistema verifica se este leitor não está cadastrado; 3. O sistema adiciona novo leitor; 4. O sistema emite a mensagem 'leitor cadastrado'. Curso Normal 1. O leitor fornece seus dados; 2. O sistema verifica se este leitor não está cadastrado; 3. O sistema adiciona novo leitor; 4. O sistema emite a mensagem 'leitor cadastrado'. cadastrarLeitor (curso normal) : Leitor : Leitor DadosLeitor() verificarLeitorCadastro( ) [não cadastrado] Curso Normal 1. O leitor fornece seus dados; 2. O sistema verifica se este leitor não está cadastrado; 3. O sistema adiciona novo leitor; 4. O sistema emite a mensagem 'leitor cadastrado'. :Leitor : Leitor DadosLeitor() verificarLeitorCadastro( ) [não cadastrado] AdicionarNovoLeitor( ) 2 09/09/2013 Diagrama de Sequência Diagrama de Sequência cadastrarLeitor (curso alternativo) cadastrarLeitor (curso normal) : Leitor : Leitor Curso Normal 1. O leitor fornece seus dados; 2. O sistema verifica se este leitor não está cadastrado; 3. O sistema adiciona novo leitor; 4. O sistema emite a mensagem 'leitor cadastrado'. DadosLeitor() verificarLeitorCadastro( ) AdicionarNovoLeitor( ) verificarLeitorCadastro( ) [cadastrado] Cursos Alternativos 'Leitor já está cadastrado' Diagrama de Sequência ObterLivroEmprestado (curso normal) ObterLivroEmprestado (curso alternativo) : Empréstimo :Leitor : Livro : Leitor dadosEmprestimo() verificarSituação( ) 'disponível' verificarLeitorCadastro( ) 'cadastrado' efetuarEmprestimo( ) Curso Normal 1. O leitor fornece os dados para empréstimo; 2. O sistema verifica se a situação do livro é 'disponível'; 3. Em caso afirmativo, o sistema verifica se o leitor está cadastrado; 4. Em caso afirmativo, o sistema efetua o empréstimo; 5. O sistema altera a situação do livro para 'emprestado'; 6. O sistema emite a mensagem 'Livro emprestado', fornecendo o livro solicitado. :Leitor return : Empréstimo : Livro dadosEmprestimo() verificarSituação( ) 'emprestado' Cursos Alternativos 3.1 Em caso negativo. Sistema emite a mensagem 'Este livro já está emprestado'. 3.2. Abandonar o use case. alterarSituação ('emprestado') 'Este livro já está emprestado' 'Livro emprestado', livro Diagrama de Sequência Diagrama de Sequência ObterLivroEmprestado (curso alternativo) consultarLivro (curso normal) Curso Normal :Leitor : Empréstimo : Livro DadosEmprestimo() verificarSituação( ) 'disponível' verificarLeitorCadastro( ) 'não cadastrado' Cursos Alternativos 4.1. Em caso negativo. Sistema emite a mensagem 'Leitor não cadastrado'. 4.2. Ativar caso de uso “Cadastrar Leitor”. DadosLeitor() 2.1. Cliente Cadastrado. O sistema emite a mensagem 'leitor já está cadastrado'; 2.2. Finalizar caso de uso. Diagrama de Sequência Curso Normal 1. O leitor fornece os dados para empréstimo; 2. O sistema verifica se a situação do livro é 'disponível'; 3. Em caso afirmativo, o sistema verifica se o leitor está cadastrado; 4. Em caso afirmativo, o sistema efetua o empréstimo; 5. O sistema altera a situação do livro para 'emprestado'; 6. O sistema emite a mensagem 'Livro emprestado', fornecendo o livro solicitado. : Leitor :Leitor [não cadastrado] 'Leitor cadastrado' Curso Normal 1. O leitor fornece os dados para empréstimo; 2. O sistema verifica se a situação do livro é 'disponível'; 3. Em caso afirmativo, o sistema verifica se o leitor está cadastrado; 4. Em caso afirmativo, o sistema efetua o empréstimo; 5. O sistema altera a situação do livro para 'emprestado'; 6. O sistema emite a mensagem 'Livro emprestado', fornecendo o livro solicitado. Curso Normal 1. O leitor fornece seus dados; 2. O sistema verifica se este leitor não está cadastrado; 3. O sistema adiciona novo leitor; 4. O sistema emite a mensagem 'leitor cadastrado'. 'Leitor não cadastrado' Solicita Cadastro do Leitor : Leitor 1. O usuário fornece os dados da consulta; 2. O sistema localiza o livro que possui as especificações fornecidas pelo usuário; 3. O sistema exibe ao usuário os dados do livro encontrado. Cursos Alternativos 3.1 O sistema emite a mensagem 'Nenhum livro encontrado com as especificações fornecidas'. 3.2. Abandonar o use case. : Livro :Usuário DadosConsulta() localizarLivro( ) dadosLivro() Se algum livro for encontrado com os dados especificados Leitor cadastrado 3 09/09/2013 Diagrama de Sequência consultarLivro (curso alternativo) Revendedora de Automóveis Curso Normal 1. O usuário fornece os dados da consulta; 2. O sistema localiza o livro que possui as especificações fornecidas pelo usuário; 3. O sistema exibe ao usuário os dados do livro encontrado. Se nenhum livro for encontrado com os dados especificados : Livro :Usuário dadosConsulta localizarLivro( ) 'Nenhum livro encontrado com as especificações fornecidas' Cursos Alternativos 3.1 O sistema emite a mensagem 'Nenhum livro encontrado com as especificações fornecidas'. 3.2. Abandonar o use case. Uma revendedora de automóveis deseja automatizar os registros de venda e de seus serviços de manutenção. Para isso, deseja manter informações sobre os carros novos e vendidos, clientes, e serviços prestados a esses clientes com seus carros (troca de peça, revisão, etc). Deseja-se que o sistema possa gerar relatórios de vendas, de clientes, de carros novos, de serviços. Identificar as principais funções Substantivos Atores (fonte de informação/solicitação ao sistema) Objetos Cliente Funcionário (coisas sobre as quais os sistema quer guardar informações) nº Gerente •Atributos dos objetos •Novos •Carro •Venda •Serviços de manutenção •Cliente •Vendidos •Troca de peças •revisão Casos de Uso para o ator Cliente descrição Use case 1 Cliente solicita cadastro cadastrarCliente 2 Cliente compra carro comprarCarro 3 Cliente solicita serviço de manutenção fazerManutenção 4 Cliente retira carro após manutenção retirarCarroManutenção 5 Funcionário registra serviço efetuado adionarServiçoManutenção 6 É hora de imprimir relatório de vendas imprimirRelatórioVendas 7 É hora de imprimir relatório de clientes IiprimirRelatórioClientes 8 É hora de imprimir relatório de carros novos imprimirRelatórioCarrosNovos 9 É hora de imprimir relatório de serviços imprimirRelatórioServiços Casos de Uso para atores Funcionário e Gerente cadastrarCliente <<extends>> comprarCarro Funcionário Cliente ImprimirRelatórioVendas AdicionarServiçoManutenção fazerManutenção cadastrarCarro Gerente retirarCarroManutenção ImprimirRelatórioServiços ImprimirRelatórioClientes ImprimirRelatórioCarrosNovos 4 09/09/2013 Diagrama de Sequência comprarCarro (curso normal) Descrição do caso de uso: comprarCarro Curso Normal 1. O cliente informa as características do carro desejado; 2. O sistema obtém todos os carros disponíveis para venda; 3. O sistema exibe os carros disponíveis para venda ao cliente; 4. O cliente informa ao sistema o carro escolhido; 5. O sistema verifica se este cliente já está cadastrado; 6. Em caso afirmativo, o sistema solicita confirmação do cliente; 7. O cliente confirma a compra; 8. O sistema cadastra a nova venda; 9. O sistema altera a situação do carro para 'vendido'; 10. O sistema emite a mensagem 'Carro vendido'. Curso Normal Cliente ComprarCarro Cursos Alternativos 2.1. Não existe carro disponível para venda com as características solicitadas pelo cliente. 2.2. O sistema emite a mensagem 'Nenhum carro disponível para venda com tais características' 2.3. Finalizar caso de uso. 5.1. O cliente não foi cadastrado. 5.2. O sistema emite a mensagem 'Cliente não cadastrado' 5.3. Ativar caso de uso “Cadastrar Cliente”. : CarroVenda : Cliente comprarCarro (cursos alternativos) comprarCarro (cursos alternativos) : Venda : Cliente : CarroVenda dadosVenda obterCarrosDisponíveis( ) 'Nenhum carro disponível para venda com tais características' Curso Normal 1. O cliente informa as características do carro desejado; 2. O sistema obtém todos os carros disponíveis para venda; 3. O sistema exibe os carros disponíveis para venda ao cliente; 4. O cliente informa ao sistema o carro escolhido; 5. O sistema verifica se este cliente já está cadastrado; Cursos Alternativos 2.1. Não existe carro disponível para venda com as características solicitadas pelo cliente. 2.2. O sistema emite a mensagem 'Nenhum carro disponível para venda com tais características' 2.3. Finalizar caso de uso. : Venda Diagrama de Sequência Diagrama de Sequência Curso Normal 1. O cliente informa as características do carro desejado; 2. O sistema obtém todos os carros disponíveis para venda; : AtorCliente 1. O cliente informa as características do carro dadosCarro() desejado; 2. O sistema obtém todos os carros disponíveis para obterCarrosDisponíveis( ) venda; 3. O sistema exibe os carros disponíveis para venda carrosDisponíveis() ao cliente; 4. O cliente informa ao sistema o carro escolhido; carroEscolhido(), dadosCliente() 5. O sistema verifica se este cliente já está VerificarClienteCadastrado( ) cadastrado; 'cadastrado' 6. Em caso afirmativo, o sistema solicita confirmação solicitaçãoConfirmação do cliente; 7. O cliente confirma a compra; confirmação 8. O sistema cadastra a nova venda; CadastrarNovaVenda( ) 9. O sistema altera a situação do carro para alterarSituação ( "vendido" ) 'vendido'; 'Carro vendido' 10. O sistema emite a mensagem 'Carro vendido'. : Venda : Cliente : CarroVenda : Cliente dadosVenda obterCarrosDisponíveis( ) carrosDisponíveis() carroEscolhido(),dadosCliente() Cursos Alternativos 5.1. O cliente não foi cadastrado. 5.2. O sistema emite a mensagem 'Cliente não cadastrado' 5.3. Ativar caso de uso “Cadastrar Cliente”. VerificarClienteCadastrado( ) 'não cadastrado' 'Cliente não cadastrado' Solicitar Cadastro de Cliente() Cliente cadastrado 28 5