Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO – UFES CENTRO DE CIÊNCIAS EXATAS, NATURAIS E DA SAÚDE DEPARTAMENTO DE COMPUTAÇÃO – DCOMP Disciplina: Engenharia de Requisitos Professor: Bruno Vilela Oliveira Lista de exercícios Casos de uso e modelagem com UML 1) Instituições acadêmicas da região de Carangola – MG se uniram para criar um congresso que irá debater temas sobre a área de Tecnologia da Informação, com o enfoque sobre as tendências atuais na análise e o desenvolvimento de sistemas de informação. Entre as demandas do congresso está um site para o controle de submissões de artigos, minicursos e palestras que serão apresentados nos dias de congresso. Suponha que você foi contratado como analista de sistemas responsável pelo Sistema de Controle de Submissões deste congresso e, por isso, deverá construir artefatos e diagramas de Análise Orientada a Objetos para especificar esse sistema. Para sua especificação considere os seguintes requisitos: RF01. Submissor é a pessoa que irá submeter algum artigo, minicurso ou palestra para este congresso. O próprio submissor é responsável pelo seu cadastro no site e pela criação de um login, que é requerido para que este usuário realize o envio de sua submissão. RF02. Após a submissão de um artigo, minicurso ou palestra, o responsável pela aprovação ou não das submissões é o Avaliador. A figura do avaliador é responsável por cadastrar ou excluir as avaliações de cada submissão realizada, incluindo em cada avaliação os comentários a respeito do artigo, minicurso ou palestra. RF03. Em um nível hierárquico acima dos avaliadores está o Coordenador de área (ou temático), o qual é responsável por um tema específico que será abordado no congresso. O coordenador de área tem por responsabilidades: cadastrar, alterar ou excluir as submissões realizadas; notificar os submissores sobre a aprovação ou não de sua submissão no congresso; e emitir relatório das avaliações realizadas pelos avaliadores. RF04. Por fim, temos a figura do Cadastrador, que é a pessoa responsável por manter o registro dos avaliadores no sistema e os temas que serão discutidos no congresso e deverão também estar registrados no site. Como artefatos da especificação desse sistema, pede-se: a) Diagrama de Casos de Uso de todo sistema. b) Descrição narrativa de cada caso de uso. c) Diagrama de Atividades de todo sistema. d) Diagrama de Classes de todo sistema. e) Diagramas de Transição de Estados para classes que necessitam. f) Diagramas de Sequência para cada cenário caso de uso que for relevante. 2) Analise o Diagrama de Casos de Uso abaixo, referente a um módulo de matrícula e construa um Diagrama de Atividades para demonstrar modelagem dos processos do negócio. 3) Leia, interprete a descrição do caso de uso abaixo e complemente a sua especificação através de um Diagrama de Atividades. Projeto: Controle de Cursos Nome: Manter Aluno Descrição: Este caso de uso permite a inclusão, exclusão, alteração e consulta de alunos, pela atendente Ator Principal: Aluno Ator Secundário: Atendente Pré-condição: A atendente deverá estar devidamente identificada pelo sistema Fluxo Principal: 1. A Atendente informa o código do aluno [A1] 2. A Atendente solicita a busca 3. O sistema pesquisa os dados do aluno 4. O sistema exibe os dados do aluno [A2] 5. A Atendente edita os dados do aluno [A3] 6. A Atendente solicita a gravação dos dados 7. O sistema valida os dados informados 8. O sistema grava os dados do aluno [A4] 9. Fim do caso de uso Fluxos Alternativos: A1. Novo Aluno 1. A Atendente solicita a inclusão de um novo aluno 2. O sistema solicita os dados do novo aluno 3. A Atendente informa os dados do aluno 4. Vai para o passo 6 do fluxo principal A2. Aluno não encontrado 1. O sistema informa a situação à atendente 2. Vai para o passo 1 do Fluxo Principal A3. Exclusão de Aluno 1. Atendente solicita exclusão do aluno 2. O sistema solicita confirmação da exclusão 3. [se confirmação positiva] Sistema exclui aluno 4. Vai para o passo 9 do fluxo principal A4. Dados inválidos 1. Se algum dado do aluno estiver em desacordo com as regras de validações e restrições, o sistema informa situação à Atendente 2. Vai para o passo 5 do fluxo principal Pós-condições: Os dados são incluídos, alterados ou excluídos conforme solicitação do aluno Restrições e Validações: 1. Nenhum campo poderá ser deixado em branco 2. O campo CPF deverá ser preenchido somente com números 3. O ano de nascimento deverá ser informado com 4 dígitos 4) Construa um Diagrama de Atividades para o seguinte processo de negócio: • A autorização do pagamento tem início após um pedido ter sido realizado pelo cliente. • Ao mesmo tempo, a disponibilidade para cada um dos itens do pedido é verificada pelo depósito. • Se a quantidade requisitada de um determinado item existe em estoque, tal quantidade é associada ao pedido, • caso contrário, a quantidade do item será alterada (se houver em quantidade menor), se a quantidade em • estoque for igual a zero, o item será excluído. • O pedido é enviado pelo depósito ao cliente quando todos os itens estiverem associados e o pagamento estiver • autorizado. • O pedido será cancelado se a ordem de pagamento não tiver sido autorizada. 5) Usando seus conhecimentos de generalização/especialização, analise as duas classes abaixo e proponha um novo modelo que elimine as duplicações 6) Usando seus conhecimentos de generalização/especialização, analise as três classes abaixo e proponha um novo modelo que elimine as duplicações. 7) Em um sistema foram identificadas duas classes: Pessoa e Coração. Uma pessoa deve ter um e somente um coração e um coração só pode pertencer a uma pessoa. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 8) Em um sistema para uma concessionária foram identificadas as classes Carro e Autopeça. Um carro pode possuir uma ou várias autopeças. Uma autopeça serve para apenas um carro. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 9) Em um sistema de vendas foram identificadas as classes Pedido e ItemPedido. Um pedido deve conter no mínimo um item ou vários. Um item deve obrigatoriamente pertencer a um único pedido. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 10) Em um sistema para uma editora foram identificadas as classes Livro, Capítulo e Página. Um livro é composto nenhum ou vários capítulos. Um capítulo deve obrigatoriamente pertencer a um único livro. Um capítulo contém uma (no mínimo) ou mais páginas. Uma página não necessariamente precisa pertencer a um capítulo, mas se pertencer, pode ser a mais de um. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 11) Faça a representação do relacionamento entre as classes País, Estado e Cidade. Um país é composto de vários estados (pelo menos um estado é requerido). Estados podem ter nenhuma ou várias cidades. Uma cidade é obrigada a pertencer a um, e somente um estado. Um estado obrigatoriamente tem que pertencer a um país. Exercício sobre diagrama de Sequência 12) SISTEMA DE CONTROLE DE VENDA DE EQUIPAMENTOS AUTOMOTIVOS Crie um diagrama de sequência para cada caso de uso descrito abaixo; EQUIPAMENTO ------------------------ - numero: String - descricao: String - valorIntalacao: double - preço: double - estoque: int; ------------------------ + recuperaPorAtendimento(at:Atendimento): boolean + recuperaInstaladosEmVeiculo(placa:String): List + recuperaPorCategoria(ct:Categoria): List + recuperarQuantidadeEmEstoque():int + reservarNoEstoque(qt:int):boolean + retirarReserva(qt:int):boolean + baixarNoEstoque(qt:int):boolean + alterar(): boolean + incluir(): boolean + excluir(): boolean CATEGORIA ------------------------ - codigo: int - descricao: String ------------------------ + recuperaPorDescricao(ds:String):boolean + recuperaTodas(): List + alterar(): boolean + incluir(): boolean + excluir(): boolean VEICULO ------------------------ - placa: String - ano: int - modelo: String - combustivel: String - cor: String ------------------------ + recuperaPorPlaca(pl:String):boolean + recuperaPorCliente(cl:Cliente):boolean + recuperaPorAtendimento(at:Atendimento):boolean + alterar(): boolean + incluir(): boolean + excluir(): boolean CLIENTE ------------------------ - nome: String - cpf: String - endereco: String ------------------------ + recuperaPorCpf(cp:String):boolean + recuperaPorVeiculo(vc:Veiculo):boolean + alterar(): boolean + incluir(): boolean + excluir(): boolean ATENDIMENTO ------------------------ - dataAbertura: Date - observacao: String - numero: int - status: int ------------------------ + recuperaPorNumero(nm:int):boolean + recuperaPorPeriodo(di:Date, df:Date):List + calcularValorTotal():double + finalizar():boolean + alterar(): boolean + incluir(): boolean + excluir(): boolean C A S O S D E U S O A) Caso de uso: Abrir Atendimento Ator: Atendente 1. o ator inicia o U.C. selecionando a opção de abertura de atendimento; 2. o sistema exibe a interface de abertura solicitando a placa do veículo; 3. O ator informa a placa do veículo; 4. o sistema exibe as informações do veículo, dos equipamentos instalados no veículo e do cliente [A1]; 5. o ator verifica os dados e informa a categoria de equipamentos para instalação; 6. o sistema exibe uma lista de equipamentos relativos à categoria; 7. o ator seleciona um equipamento; 8. o sistema confirma a disponibilidade, informa o preço atualizado [A2] e volta ao passo 4 por quantas vezes o ator desejar; 9. o ator finaliza as inclusões 10. o sistema reserva os equipamentos informados o estoque, imprime a guia de atendimento com os equipamentos por ordem de setor e encerra o caso de uso. [A1] Fluxo Alternativo - veículo não existente 4.1. o sistema informa que o veículo não existe. Volta ao início do U. C. [A2] Fluxo Alternativo - equipamento indisponível no estoque 8.1. o sistema informa que o acessório está indisponível no estoque. Volta ao passo anterior. B) Caso de uso: Encerrar Atendimento Ator: Atendente 1. O ator inicia o U.C. informando o nº do atendimento; 2. o sistema exibe os dados do veículo, do cliente, e a lista de equipamentos do atendimento; 3. o ator confirma os equipamentos que foram realmente instalados 4. o sistema efetua a baixa dos equipamentos instalados no estoque, retira aqueles que não foram instalados da reserva e atualiza o valor total do atendimento; 5. o ator confirma o encerramento do atendimento; 6. o sistema finaliza o atendimento e o caso de uso é encerrado. 13) Construa um Diagrama de Sequência encerrar uma conta, conforme a descrição abaixo: Primeiramente um cliente se encaminha ao caixa do banco, representado pelo ator Funcionário e solicita o encerramento de uma determinada conta comum. O caixa então irá verificar se a conta informada realmente existe e se a senha informada é verdadeira, por meio do disparo do método consulta. Caso a conta realmente exista, o próprio método irá chamar o método de validação de senha para verificar se a senha informada pelo usuário está correta. Em caso positivo, será verificado o saldo da conta. Se o saldo retornado for positivo, então o caixa irá retirar o dinheiro da conta, o saque efetuado deverá ser registrado no histórico das movimentações. Em seguida o objeto de ContaComum retornará o valor do saldo para o atendente que deverá ser igual a zero se o método for executado com sucesso. Finalmente o atendente irá chamar o método encerramento para fechar a conta do cliente no objeto de ContaComum. Antes de concluir a execução, esse método pode, caso a conta a ser encerrada seja a única possuída pelo cliente, atualizar o cadastro do mesmo, definindo o seu status como inativo, por meio do método gravar no objeto de Física. Caso tenha sido possível atualizar a instância da classe Física, então o método gravar retornará um valor indicando que o cliente foi atualizado. A conta retornará um valor que instruirá o software mostrar ao atendente a mensagem: “Conta Encerrada com Sucesso”, finalizando o processo de encerramento de conta.
Compartilhar