Buscar

ER-Lista-04

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.

Continue navegando