-
Notifications
You must be signed in to change notification settings - Fork 1
Atividade Lab 3
(DOCUMENTAÇÃO)
Inconsistência declaração casos de Uso
SEVERIDADE:| MÉDIA
TIPO DO PROBLEMA:| INCONSISTÊNCIA
DESCRIÇÃO:| No caso de uso, o sistema sugere "Um único bilhete de transporte é impresso.", mas no diagrama é sugestivo uma quantidade de bilhete.
(DOCUMENTAÇÃO)
INCONSISTÊNCIA CASO DE USO BILHETE UNICO
SEVERIDADE:| MÉDIA
TIPO DO PROBLEMA:| INCONSISTÊNCIA
DESCRIÇÃO:| O Caso de Uso solicitar Bilhete, não está de acordo com o que é descrito em seu documento, e nem com seu objetivo, o que ele proporciona é a visualização do Saldo
(DOCUMENTAÇÃO)
OMISSÃO CANCELAMENTO
SEVERIDADE:| ALTA
TIPO DO PROBLEMA:| OMISSÃO
DESCRIÇÃO:| O sistema em momento algum, apresenta a opção de cancelamento e encerar a operação caso o usuário desista de realizar o procedimento.
Classe: TicketMachine
Não existe mensagem de aviso de quanto o usuário deve inserir caso o valor dê inválido.
Categoria: omissão
Severidade: Média
Correção:
public void inserir(int quantia) throws PapelMoedaInvalidaException {
boolean achou = false;
for (int i = 0; i < papelMoeda.length && !achou; i++) {
if (papelMoeda[1] == quantia) {
achou = true;
b.bilhete();
}
}
if (!achou) {
System.out.print("O valor que você deve inserir é :" + this.valor);
}
if (!achou) {
throw new PapelMoedaInvalidaException();
}
this.setSaldo(this.saldo + quantia);
}
Classe: TicketMachine
Se cliente não souber que deve solicitar o troco, não receberá de volta o dinheiro. Deve haver uma mensagem avisando.
Categoria: omissão
Severidade: Alta
Correção:
public String imprimir() throws SaldoInsuficienteException {
if (saldo < valor) {
throw new SaldoInsuficienteException();
}
if (saldo != 0){
System.out.println("Você tem troco a receber! ");
}
String result = "*****************\n";
result += "*** R$ " + saldo + ",00 ****\n";
result += "*****************\n";
return result;
}
Classe: TicketMachine
O Caso de Uso solicitar Bilhete, não está de acordo com o que é descrito em seu documento, e nem com seu objetivo, o que ele proporciona é a visualização do Saldo
Categoria: Insistência
Severidade: Média
Correção:
class Bilhete {
`protected int bilhete; `
`public int bilhete(){`
`return 1;`
`}`
}
Bilhete b = new Bilhete();
public void inserir(int quantia) throws PapelMoedaInvalidaException {
boolean achou = false;
for (int i = 0; i < papelMoeda.length && !achou; i++) {
if (papelMoeda[1] == quantia) {
achou = true;
b.bilhete();
System.out.println(“Bilhete Emitido”);
}
}
if (!achou) {
throw new PapelMoedaInvalidaException();
}
this.saldo += quantia;
}
Classe: TicketMachine
Falta método setSaldo()na classe TicketMachine
Categoria: omissão
Severidade: Alta
Correção:
public void setSaldo(int saldo) {
this.saldo = saldo;
}
Classe: TicketMachine
O sistema não atende aos requisitos, não informa ao usuário se o saldo é insuficiente para compra de cartão.
Categoria: Comissão
Severidade: Alta
Correção:
public String imprimir() throws SaldoInsuficienteException {
if (saldo < valor) {
System.out.println("O saldo é insuficiente!\n");
throw new SaldoInsuficienteException();
}
String result = "**************\n";
result += " R$ " + saldo + ",00 *\n";
result += "**************\n";
return result;
}
Classe: TicketMachine
O sistema não atende aos requisitos, deveria reiniciar a nova tela quando a nota fosse retirada, mas ela não tem essa validação.
Categoria: Comissão
Severidade: Alta
Correção:
public void inserir(int amount) throws PapelMoedaInvalidaException {
boolean achou = false;
int dinheiro = -1;
System.out.println("Aguarde. O sistema está validando as notas.");
for (int i = 0; i < papelMoeda.length && !achou; i++) {
if (papelMoeda[i] == amount) {
achou = true;
}
dinheiro = i;
`} `
`if (!achou) {`
`while (!achou) {`
`reembolso(dinheiro);`
`System.out.println("Nota não aceita, por favor, retire para reiniciar!");`
`if (dinheiro == -1) {`
`achou = true;`
`} else {`
`dinheiro = -1;`
`}`
`}`
`throw new PapelMoedaInvalidaException();`
`} else {`
`System.out.println("A nota de papel moeda $" + papelMoeda[dinheiro] +
" foi aceita");`
`this.saldo += amount;`
`System.out.println("O saldo atual é: " + saldo);`
`}`
`}`
void reembolso(int i){
papelMoeda[i]--;
}
Classe: Troco
Variável valor não recebe alteração durante a execução do loop imopactanto a lógica do programa como todo pois não tinha andamento
Categoria: Controle e Desempenho
Severidade: Alta
Correção:
public Troco(int valor) {
papeisMoeda = new PapelMoeda[5];
int count = 0;
while (valor % 100 != 0) {
count++;
valor--;
}
...
Classe: Troco
A variável de controle count é zerada ao final de cada bloco não permitindo que o valor seja passado para o próximo while
Categoria: Computação
Severidade: Alta
Correção:
papeisMoeda[5] = new PapelMoeda(100, count);
//count = 0;
while (valor % 50 != 0) {
count++;
}
...
Classe: Troco
_O sistema necessita de um vetor com 6 posições para armazenar cada valor de moeda. O Vetor foi inicializado com 7 posições e somente 6 tratadas durante a lógica _
Categoria: Computação e Dados
Severidade: Baixa
Correção:
public Troco(int valor) {
papeisMoeda = new PapelMoeda[5];
...
Classe: Troco
O sistema necessita de um vetor com 6 posições para armazenar cada valor de moeda. Somente 5 posições foram tratadas [6-1] fazendo com que a posição 0 seja null
Categoria: Comissão e Dados
Severidade: Média
Correção:
...
papeisMoeda[1] = new PapelMoeda(5, count);
while (valor % 2 != 0) {
count++;
valor--;
}
papeisMoeda[0] = new PapelMoeda(2, count);
}
...
Classe: Troco
Lógica de iteração errada pois o i adiciona valor saindo do limite do vetor não trazendo retorno no loop
Categoria: Computação
Severidade: Alta
Correção:
public boolean hasNext() {
for (int i = 6; i >= 0; i--) {
...
Classe: Ticket Machine
Método não definido
Categoria: Inicialização
Severidade: Baixa