Atributos de Qualidade e Táticas
Para iniciar o desenvolvimento de um projeto é preciso saber o que queremos entregar para o nosso cliente e, definindo métricas não garantimos que seja o melhor produto porém garantimos que tenha um alto nível de qualidade. Para alcançar esses objetivos contamos com o apoio da ferramenta SonarQube, que é capaz de analisar o código e fornecer um relatório contendo informações sobre: Bugs, vulnerabilidades, code smels, cobertura que os testes unitários estão atingindo e duplicação de código.

Com base no conceito de entregas continuas que faz parte do manifesto ágil, a cada entrega de um produto ao cliente é avaliado anteriormente com base na ferramenta a qualidade do produto desenvolvido pela equipe, a cada entrega tem como meta tentar melhorar a versão anterior, seja refatorando o código para evitar códigos duplicados, comentários em métodos para deixar o mais claro possível a quem for pegar futuramente para dar manutenção, cobertura mais abrangente de testes para evitar entregar um produto com muitos bugs e exigir mais tempo para corrigir bugs.
Quanto aos atributos de qualidade, devemos manter os seguintes, ordenados por prioridade:
- Disponibilidade
- Usabilidade
- Testabilidade
- Modificabilidade
- Segurança
- Desempenho
As táticas empregadas foram:
Detecção de falhas
Ping/echo
Aplicada para verificação de resposta do servidor e disponibilidade das rotas
Heart beat
Aplicada para verificação de disponibilidade do servidor e consistência dos serviços REST
exceções
Aplicada internamente no código em regiões críticas, como por exemplo, acesso ao servidor e upload de imagem.
Recuperação de falhas
-> Preparação e reparo
Redundância ativa
Foi desenvolvido dois servidores, utilizando linguagens diferentes, isto foi feito para garantir a disponibilidade do serviço, em vista que tivemos problemas ao subir a aplicação.
Redundancia passiva
Não implementamos
Componente reserva
Mantivemos o servidor "antigo" funcional
-> Táticas para evitar propagação
Utilização de protocolos padrões de comunicação
- JSONAcesso via servidor REST
- Utilização de padrões de projeto