Esse repositório foi criado para que os alunos de Engenharia de Software I possam aprender sobre a rotina diária de desenvolvimento em uma equipe ágil. Essa é uma disciplina introdutória e, por isso, o repositório é bem simples.
Os arquivos fonte estão em src/main/
.
Existem alguns testes unitários implementados em src/test/
.
Além disso, existem alguns testes de aceitação escritos como arquivos texto em acceptance/
com a entrada e a saída esperada para alguns UC e fluxos de exceção.
Os testes de aceitação são executados por um shell script bem simples localizado no mesmo diretório que eles.
Abaixo são listados apenas as user stories e os use cases. Alguns já estão implementados, outros devem ser implementados pelos alunos.
Como usuário, eu gostaria de rodar a aplicação, usar o comando ajuda
para obter ajuda ou obter ajuda se usar um comando inválido e terminar a aplicação usando o comando sair
.
- O usuário digita
sair
e dá enter; - A aplicação imprime
Tchauzinho!
abaixo da pilha e termina normalmente.
- O usuário digita o comando
ajuda
(E1); - A aplicação mostra as operações válidas antes de mostrar a pilha.
E1: usuário digitou comando inválido.
- A aplicação mostra a mensagem
Operação inválida!
; - A aplicação mostra as operações válidas, como se o usuário tivesse pedido ajuda.
- Os outros passos não são executados.
- O usuário começa a rodar a aplicação;
- A aplicação mostra as operações válidas, como se o usuário tivesse pedido ajuda.
Como usuário, eu gostaria de digitar números e inseri-los no topo da pilha.
- O usuário digita um número e dá enter;
- Esse número vai para o topo da pilha.
- O usuário digita um número x e dá enter;
- Esse número vai para o topo da pilha;
- O usuário digita um número y e dá enter;
- O número y fica no topo da pilha, na posição N, deslocando x para a posição N-1.
Como usuário, eu gostaria de usar o comando limpar
para limpar a pilha.
Pré-condições: pelo menos um número na pilha.
- O usuário digita
limpar
e dá enter; - Todos os números da pilha são descartados (E1);
E1: a pilha já estava vazia.
- A aplicação não modifica a pilha;
- Os outros passos não são executados.
Como usuário, eu gostaria de somar os números que estão no topo da pilha.
Pré-condições: pelo menos dois números na pilha.
- O usuário digita
+
e dá enter; - Os dois números do topo da pilha são removidos (E1);
- A soma desses números é inserida no topo da pilha.
E1: menos que dois números na pilha.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Poucos operandos!
; - Os outros passos não são executados.
Como usuário, eu gostaria de subtrair os números que estão no topo da pilha.
Pré-condições: pelo menos dois números na pilha.
- O usuário digita
-
e dá enter; - Os dois números do topo da pilha são removidos (E1);
- A diferença entre esses números é inserida no topo da pilha.
Nota: Se x está no topo (posição N) e y logo em seguida (posção N-1), a diferença é y-x e não x-y.
E1: menos que dois números na pilha.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Poucos operandos!
; - Os outros passos não são executados.
Como usuário, eu gostaria de multiplicar os números que estão no topo da pilha.
Pré-condições: pelo menos dois números na pilha.
- O usuário digita
*
e dá enter; - Os dois números do topo da pilha são removidos (E1);
- O produto desses números é inserido no topo da pilha.
E1: menos que dois números na pilha.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Poucos operandos!
; - Os outros passos não são executados.
Como usuário, eu gostaria de dividir os números que estão no topo da pilha.
Pré-condições: pelo menos dois números na pilha, o número do topo não é zero.
- O usuário digita
/
e dá enter; - Os dois números do topo da pilha são removidos (E1) (E2);
- O quociente desses números é inserido no topo da pilha.
Nota: Se x está no topo (posição N) e y logo em seguida (posção N-1), o quociente é y/x e não x/y.
E1: menos que dois números na pilha.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Poucos operandos!
; - Os outros passos não são executados.
E2: o número no topo da pilha é zero.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Divisão por zero!
; - Os outros passos não são executados.
Como usuário, eu gostaria de usar o comando raiz
para extrair a raiz quadrada do número do topo da pilha.
Pré-condições: a pilha não está vazia, o número do topo não é negativo.
- O usuário digita
raiz
e dá enter; - O número do topo da pilha é removido (E1) (E2);
- A raiz quadrada desse número é inserida no topo da pilha.
E1: a pilha está vazia.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Poucos operandos!
; - Os outros passos não são executados.
E1: o número do topo é negativo.
- A aplicação não modifica a pilha;
- A aplicação mostra a mensagem
Raiz complexa!
; - Os outros passos não são executados.