Skip to content
renatharolim edited this page Sep 18, 2017 · 15 revisions

Aqui encontra-se toda a documentação da atividade

(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.


Aqui encontra-se todo o código da atividade

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