Você está na página 1de 3

1.

PERFORMANCE (OBSERVÁVEL EM RUNTIME)

Desafio: Gerenciar picos de tráfego durante intervalos de aulas e eventos


universitários.

Solução:

● Implementar uma arquitetura de microsserviços escalável que possa


acomodar aumentos de carga através de autoescala.
● Utilizar serviços de cache como Redis para armazenar dados de sessão e
produtos populares, reduzindo a carga sobre o banco de dados.
● Implementar técnicas de otimização de desempenho, como a compressão de
dados e a redução de consultas ao banco de dados.

2. SEGURANÇA (OBSERVÁVEL EM RUNTIME)

Desafio: Proteger informações pessoais dos estudantes e transações financeiras.

Solução:

● Implementar autenticação de dois fatores para usuários, utilizando protocolos


seguros como HTTPS, e armazenando dados sensíveis criptografados no
banco de dados.
● Realizar auditorias de segurança regulares e aderir às normas PCI DSS para
transações de pagamento.
● Utilizar uma solução de gestão de identidades e acesso (IAM) para controlar
o acesso aos recursos do sistema.

3. USABILIDADE (OBSERVÁVEL EM RUNTIME)

Desafio: Assegurar que o aplicativo seja intuitivo para uma população estudantil
diversificada com diferentes níveis de habilidade tecnológica.

Solução:

● Desenvolver uma interface de usuário (UI) simples e uma experiência de


usuário (UX) envolvente, com testes de usabilidade frequentes para coletar
feedback e realizar melhorias iterativas.
● Utilizar linguagem clara e concisa, com ícones e símbolos intuitivos.
● Fornecer feedback aos usuários sobre as suas ações.
● Oferecer recursos de ajuda e suporte.
4. MANUTENABILIDADE (NÃO OBSERVÁVEL EM RUNTIME)

Desafio: Permitir atualizações contínuas e a adição de novos recursos sem


interrupções significativas.

Solução:

● Adotar práticas de integração e entrega contínuas (CI/CD), com uma suíte de


testes automatizados robusta para garantir que novas atualizações não
quebrem funcionalidades existentes.
● Desenvolver código modular e reutilizável para facilitar a manutenção e a
evolução do sistema.
● Utilizar ferramentas de gerenciamento de configuração para rastrear as
alterações no código e nos recursos.

5. TESTABILIDADE (NÃO OBSERVÁVEL EM RUNTIME)

Desafio: Garantir que cada funcionalidade seja testada para evitar bugs e falhas.

Solução:

● Implementar testes unitários, de integração e de sistema abrangentes, além


de testes de carga para simular condições de pico.
● Utilizar plataformas de CI/CD para automatizar a execução de testes.
● Realizar testes de aceitação com usuários reais para coletar feedback e
identificar problemas de usabilidade.

6. TIME TO MARKET (ATRIBUTO DE NEGÓCIO)

Desafio: Lançar o aplicativo a tempo para o início do semestre letivo.

Solução:

● Utilizar metodologias ágeis de desenvolvimento para acelerar o ciclo de


lançamento, priorizando o MVP (Produto Mínimo Viável) com as
funcionalidades mais críticas para o início do semestre.
● Automatizar o máximo possível de tarefas, como a compilação, o teste e o
deploy do código.
● Reduzir a complexidade do sistema, evitando adicionar funcionalidades
desnecessárias.

7. CUSTO (ATRIBUTO DE NEGÓCIO)


Desafio: Desenvolver e manter a solução dentro de um orçamento limitado.

Solução:

● Priorizar recursos que ofereçam o maior valor para os usuários.


● Reutilizar componentes de código aberto quando possível.
● Escolher uma plataforma de nuvem que ofereça um bom equilíbrio entre
custo e desempenho.
● Negociar preços com fornecedores de serviços e hardware.

Essas são apenas algumas sugestões de soluções para os desafios identificados. A


melhor solução para cada caso dependerá das especificidades do aplicativo e dos
objetivos da empresa.

É importante ressaltar que a análise de atributos de qualidade é um processo


contínuo que deve ser realizado ao longo do ciclo de vida do aplicativo. Ao
identificar e abordar os desafios de qualidade desde o início, os arquitetos de
software podem garantir que o aplicativo atenda às expectativas dos usuários e dos
negócios.

Você também pode gostar