Aula 2 Revisão 2:Diagrama de Sequência UML Roteiro Diagrama 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 Notação: Notação: :NomeClasse :NomeClasse :NomeClasse :NomeClasse :NomeClasse Mensagem (par1, par2); :NomeClasse x:nomeclasse :clspginicial :NomeClasse Retângulo: ocorrência de execução Mensagem Autodelegação Ou Método Recursivo Classe Objeto Estereótipos Linha da vida Biblioteca 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. Relacionando o atributo aos seu objeto Atores es Bibliotecária Objetos Livro Empréstimo Atributos Situação (disponível ou retirado) Prazo de devolução 1
Identificar as principais funções nº descrição Use case 1 solicita cadastro Cadastrar 2 Bibliotecária cadastra livro CadastrarLivro 3 Usuário (leitor ou bibliotecária) consulta acervo 4 solicita empréstimo de livro 5 devolve livro emprestado 6 É hora de imprimir relatório de leitores 7 É hora de imprimir relatório de leitores com empréstimos em atraso ConsultarLivro ObterLivroEmpréstimo DevolverLivro ImprimirRelatórioes ImprimirRelatórioes Atrasados Diagramas de caso de uso ConsultarLivro ObterLivroEmprestado DevolverLivro 8 É hora de imprimir relatório de livros disponíveis ImprmirRelatórioLivros Disponíveis <<extends>> 9 É hora de imprimir relatório de livros retirados ImprimirRelatórioLivros Retirados Cadastrar Descrição do caso de uso: cadastrar Cadastrar Cadastrar Caso de Uso: Cadastrar Atores Finalidade: Armazenar informações pessoais do 2. O sistema verifica se este leitor não 2.1. Cliente Cadastrado. O sistema emite a está mensagem 'leitor já está cadastrado'; 2.2. Finalizar caso de uso. 2. O sistema verifica se este leitor não está 2. O sistema verifica se este leitor não está AdicionarNovo( ) 2
cadastrar (curso alternativo) ' cadastrado' AdicionarNovo( ) 2.1. Cliente Cadastrado. O sistema emite a mensagem 'leitor já está cadastrado'; 2.2. Finalizar caso de uso. [cadastrado] ' já está cadastrado' ObterLivroEmprestado (curso normal) ObterLivroEmprestado (curso alternativo) 1. O leitor fornece os dados para 2. O sistema verifica se a situação do livro é 'disponível'; 3. Em caso afirmativo, o sistema verifica se o leitor está 4. Em caso afirmativo, o sistema efetua o 5. O sistema altera a situação do livro para 'emprestado'; 6. O sistema emite a mensagem 'Livro emprestado', fornecendo o livro solicitado. : Empréstimo : Livro dadosemprestimo() 'Livro emprestado', livro 'disponível' 'cadastrado' efetuaremprestimo( ) alterarsituação ('emprestado') return 1. O leitor fornece os dados para 2. O sistema verifica se a situação do livro é 'disponível'; 3. Em caso afirmativo, o sistema verifica se o leitor está 4. Em caso afirmativo, o sistema efetua o 5. O sistema altera a situação do livro para 'emprestado'; 6. O sistema emite a mensagem 'Livro emprestado', fornecendo o livro solicitado. 3.1 Em caso negativo. Sistema emite a mensagem 'Este livro já está emprestado'. : Empréstimo : Livro dadosemprestimo() 'emprestado' 'Este livro já está emprestado' ObterLivroEmprestado (curso alternativo) consultarlivro (curso normal) 1. O leitor fornece os dados para : Empréstimo : Livro 2. O sistema verifica se a situação do livro é 'disponível'; DadosEmprestimo() 3. Em caso afirmativo, o sistema verifica se o leitor está 4. Em caso afirmativo, o sistema efetua o 5. O sistema altera a situação do livro para 'disponível' 'emprestado'; 6. O sistema emite a mensagem 'Livro emprestado', fornecendo o livro solicitado. 4.1. Em caso negativo. Sistema emite a mensagem ' não 4.2. Ativar caso de uso Cadastrar. ' não cadastrado' 'não cadastrado' Solicita Cadastro do cadastrado 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. 3.1 O sistema emite a mensagem 'Nenhum livro encontrado com as especificações fornecidas'. :Usuário DadosConsulta() dadoslivro() : Livro localizarlivro( ) Se algum livro for encontrado com os dados especificados 3
consultarlivro (curso alternativo) Revendedora de Automóveis 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. 3.1 O sistema emite a mensagem 'Nenhum livro encontrado com as especificações fornecidas'. Se nenhum livro for : Livro :Usuário encontrado com os dados especificados dadosconsulta localizarlivro( ) 'Nenhum livro encontrado com as especificações fornecidas' 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. Substantivos Atores (fonte de informação/solicitação ao sistema) Objetos (coisas sobre as quais os sistema quer guardar informações) Cliente Funcionário Gerente Carro Venda Serviços de manutenção Cliente Atributos dos objetos Novos Vendidos Troca de peças revisão Identificar as principais funções nº 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 o ator Cliente Casos de Uso para atores Funcionário e Gerente cadastrarcliente <<extends>> Funcionário AdicionarServiçoManutenção ImprimirRelatórioVendas comprarcarro Cliente fazermanutenção cadastrarcarro Gerente ImprimirRelatórioClientes retirarcarromanutenção ImprimirRelatórioServiços ImprimirRelatórioCarrosNovos 4
Descrição do caso de uso: comprarcarro comprarcarro (curso normal) 2. O sistema obtém todos os carros disponíveis para venda; 3. O sistema exibe os carros disponíveis para venda ao cliente; 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'. ComprarCarro Cliente 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. 2. O sistema obtém todos os carros disponíveis para venda; 3. O sistema exibe os carros disponíveis para venda ao cliente; 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'. : AtorCliente dadoscarro() carrosdisponíveis() carroescolhido(), dadoscliente() solicitaçãoconfirmação confirmação 'Carro vendido' : Venda : CarroVenda : Cliente VerificarClienteCadastrado( ) 'cadastrado' CadastrarNovaVenda( ) alterarsituação ( "vendido" ) comprarcarro (cursos alternativos) 2. O sistema obtém todos os carros disponíveis para venda; : Cliente dadosvenda : Venda : CarroVenda 'Nenhum carro disponível para venda com tais características' comprarcarro (cursos alternativos) 2. O sistema obtém todos os carros disponíveis para venda; 3. O sistema exibe os carros disponíveis para venda ao cliente; : Cliente : Venda : CarroVenda : Cliente dadosvenda carrosdisponíveis() carroescolhido(), dadoscliente() 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. VerificarClienteCadastrado( ) 'não cadastrado' 'Cliente não cadastrado' Solicitar Cadastro de Cliente() Cliente cadastrado 28 5