raulbcs / source-code-inspection Goto Github PK
View Code? Open in Web Editor NEWThis project forked from prof-calebe/source-code-inspection
This project forked from prof-calebe/source-code-inspection
Listo abaixo problemas encontrados no CSU03, que consta no wiki.
No sumário está descrito "Vale ressaltar que o troco também é em nota de papel-moeda".
Defeito: não há opção para se faltar troco em papel moeda
Tipo do defeito: omissão
Severidade: alta
No fluxo principal, no passo 1, está descrito que "O Cliente solicita devolução do saldo restante como troco."
Defeito: se cliente não souber que deve solicitar o troco, não receberá de volta o dinheiro. Deve haver uma mensagem avisando.
Tipo do defeito: omissão
Severidade: alta
No fluxo principal, no passo 2, está descrito que "O Sistema verifica o saldo e devolve a quantidade do saldo em notas de papel-moeda."
Defeito: para casos de troco que não podem ser devolvidos apenas com papel moeda (exemplo: R$3,00)
Tipo do defeito: omissão
Severidade: alta
Os atributos valor
e saldo
não estão especificados na documentação.
Tipo do defeito: comissão
Severidade: alta
A lógica da classe não utiliza o array papelMoeda
corretamente.
A lógica não satisfaz o especificado.
Tipo do defeito: comissão/excesso
Severidade: alta
O método getTroco não possui código útil, retornando um null
sempre.
Tipo do defeito: inicialização
Severidade: alta
O método imprimir não possui deveria ter a verificação do saldo, a mesma devia ser delegada.
Tipo do defeito: computação
Severidade: alta
Estão faltando os modificadores (setters), e não representados na documentação
Tipo do defeito: comissão
Severidade: alta
A visibilidade dos atributos não batem com o especificado
Tipo do defeito: comissão
Severidade: alta
Tipo do problema: ambiguidade
Nos requisitos está definido que "as máquinas mantêm uma soma total da quantidade de dinheiro que coletou durante toda operação".
Dúvida: a operação é coletiva ou individual?
Criar um package para as classes do TicketMachine
Listo abaixo problemas encontrados no CSU02, que está no wiki.
No sumário está descrito que "Um único bilhete de transporte é impresso."
Defeito: cliente não tem opção de comprar mais de um bilhete por vez
Tipo do defeito: ambiguidade
Severidade: alta
Na pós condição está descrito que "Um bilhete é impresso e seu valor é debitado do saldo disponível".
Defeito: interpretar se operação é individual ou coletiva
Tipo do defeito: ambiguidade
Severidade: alta
Listo abaixo problemas encontrados no CSU01, que está no wiki.
No sumário, está escrito que "É importante ressaltar que essa quantia sempre é representada por uma única nota de papel-moeda.".
Tipo do defeito: defeito
Severidade: alta
Máquina só aceita uma nota de papel-moeda. E se o cliente quiser pagar com moedas ou com duas notas para assim receber troco?
Não consta pré-condições, porém, não existe mensagem de quanto cliente deve pagar.
Tipo do defeito: omissão
Severidade: média
Na pós-condição é definido que "O valor inserido é adicionado ao saldo total disponível.".
Defeito: A máquina soma ao total valor inserido, não importando se existe troco, desejado pelo cliente
Tipo do defeito: informação estranha
Severidade: alta
No fluxo principal, no passo 1, é definido que "O cliente insere uma nota de papel-moeda".
Defeito: cliente não tem opção de pagar com moedas ou com mais de uma nota.
Tipo do defeito: ambiguidade
Severidade: alta
No fluxo de exceção 1:3a., é definido que "4. Volta ao passo 6. do fluxo principal"
Defeito: Defeito: encerrar processo, ao invés de segunda chance para cliente inserir a nota. Deve voltar ao passo 1 do fluxo principal.
Tipo do defeito: omissão
Severidade: média
As classes nesse arquivo não condizem com a especificação documentada.
Tipo do defeito: comissão
Severidade: alta
Construtor com lógica e estruturas desnecessarias, loops poderiam ser organizados de outra forma ou completamente removidos. Algoritmo usado não garante a resolução do problema, e seu resultado não condiz com as espectativas e as estruturas de dados usadas não são adequadas para a situação em questão.
Tipo do defeito: computação, desempenho, dados, excesso
Severidade: alta
A estrutura de dados está errada, não possibilitando alteração no tamanho do vetor.
Tipo do defeito: dados
Severidade: média
A variavel de controle valor
não é alterada em nenhum momento durante o loop. O software trava neste passo e não segue pois o loop não retorna.
Tipo do defeito: controle, desempenho
Severidade: alta
A variavel count
é sempre zerada. Seu valor não é passado adiante.
Tipo do defeito: computação
Severidade: alta
A posição 1 do array papeisMoeda
tem seu valor resetado.
Tipo do defeito: computação
Severidade: alta
O array papeisMoeda
não é inicializado corretamente. O mesmo tem 6 posições e somente 5 foram usadas/inicializadas. Posição 0 é null
.
Tipo do defeito: computação, dados
Severidade: média
Na classe interna TrocoIterator
a variável Troco
é dispensável, uma vez que os atributos da instância usada estão no mesmo escopo deste iterator.
Tipo do defeito: desempenho, excesso
Severidade: alta
Na classe interna TrocoIterator
, no método hasNext
a iteração está errada, contador i sobe, e sai do escopo do array. Loop não retorna. Não se percorre o array e a posição atual é guardada.
Tipo do defeito: computação, desempenho
Severidade: alta
Na classe interna TrocoIterator
, no método next()
a implementação está completamente errada.
Tipo do defeito: computação, dados, desempenho
Severidade: alta
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.