Prévia do material em texto
Arquitetura de Software 1. Qual é o principal objetivo da Arquitetura de Software? a) Criar interfaces de usuário atraentes b) Definir a estrutura e a interação dos componentes do sistema c) Aumentar o número de funcionalidades do software d) Reduzir o tempo de desenvolvimento sem considerar a qualidade Resposta correta: b) Definir a estrutura e a interação dos componentes do sistema O principal objetivo da Arquitetura de Software é definir a estrutura e a interação dos componentes do sistema, assegurando que ele seja robusto, escalável e mantenha uma qualidade de desempenho adequada. A arquitetura serve como um esqueleto que orienta o desenvolvimento, facilitando a comunicação entre diferentes partes do sistema e permitindo que os desenvolvedores compreendam como cada componente se encaixa no todo. Além disso, uma boa arquitetura ajuda a identificar e mitigar riscos técnicos desde o início do projeto, garantindo que as decisões tomadas estejam alinhadas com os objetivos de longo prazo da aplicação. Com uma arquitetura bem projetada, é mais fácil fazer alterações e adições futuras, o que é vital em um ambiente de desenvolvimento em constante mudança, onde as necessidades dos usuários podem evoluir rapidamente. 2. Quais são os principais estilos arquiteturais utilizados em projetos de software? a) Monolítico, orientado a serviços e baseado em eventos b) Apenas orientado a objetos c) Exclusivamente microserviços d) Apenas em camadas Resposta correta: a) Monolítico, orientado a serviços e baseado em eventos Os principais estilos arquiteturais utilizados em projetos de software incluem o monolítico, orientado a serviços e baseado em eventos. A arquitetura monolítica é uma abordagem tradicional onde todos os componentes do software são integrados em um único programa, o que pode facilitar o desenvolvimento inicial, mas pode se tornar problemático à medida que o software cresce. A arquitetura orientada a serviços (SOA) divide a aplicação em serviços independentes que se comunicam entre si, permitindo melhor escalabilidade e manutenção. Por outro lado, a arquitetura baseada em eventos se concentra em eventos como a principal af://n290 forma de comunicação entre componentes, promovendo uma abordagem mais reativa e assíncrona. A escolha do estilo arquitetural adequado depende das necessidades específicas do projeto, como escalabilidade, manutenibilidade e complexidade. 3. Como a Arquitetura de Software impacta a escalabilidade de um sistema? a) Aumentando a complexidade do código b) Permite que o sistema suporte aumento na carga de usuários sem degradação do desempenho c) Eliminando a necessidade de testes de desempenho d) Reduzindo a modularidade do sistema Resposta correta: b) Permite que o sistema suporte aumento na carga de usuários sem degradação do desempenho A Arquitetura de Software impacta diretamente a escalabilidade de um sistema ao permitir que ele suporte um aumento na carga de usuários sem degradação do desempenho. Uma arquitetura bem projetada, que adota práticas como a divisão em microserviços ou o uso de balanceadores de carga, facilita a adição de recursos conforme necessário. Isso significa que, à medida que o número de usuários cresce ou que a demanda aumenta, a infraestrutura pode ser expandida para atender a essas novas exigências, seja adicionando mais servidores, escalando horizontalmente ou verticalmente. Além disso, uma arquitetura escalável permite que as equipes de desenvolvimento façam atualizações e melhorias sem interromper o serviço, garantindo uma experiência contínua e eficiente para os usuários finais. 4. Qual é um dos principais desafios na definição da Arquitetura de Software? a) Excesso de clareza nas especificações b) Necessidade de equilibrar requisitos técnicos e de negócios c) Disponibilidade excessiva de ferramentas de desenvolvimento d) Baixa colaboração entre equipes Resposta correta: b) Necessidade de equilibrar requisitos técnicos e de negócios Um dos principais desafios na definição da Arquitetura de Software é a necessidade de equilibrar requisitos técnicos e de negócios. Enquanto os requisitos técnicos podem incluir questões como desempenho, escalabilidade e segurança, os requisitos de negócios se concentram em objetivos como tempo de lançamento ao mercado, custo e alinhamento com a estratégia organizacional. Essa necessidade de equilibrar interesses muitas vezes conflitantes pode tornar a tomada de decisões complexa. Uma arquitetura que não atende adequadamente aos requisitos de negócios pode resultar em um produto que não satisfaz os usuários ou que é difícil de comercializar, enquanto uma arquitetura que ignora considerações técnicas pode levar a problemas de desempenho e manutenção a longo prazo. Portanto, é crucial que as equipes de desenvolvimento e os stakeholders trabalhem juntos para criar uma arquitetura que atenda a ambos os conjuntos de requisitos de forma eficaz. 5. Como a documentação da Arquitetura de Software pode beneficiar um projeto? a) Aumenta a quantidade de trabalho necessário para a equipe b) Facilita a comunicação e compreensão entre membros da equipe e partes interessadas c) Reduz a necessidade de manutenção e testes d) Dificulta a adaptação a mudanças de requisitos Resposta correta: b) Facilita a comunicação e compreensão entre membros da equipe e partes interessadas A documentação da Arquitetura de Software beneficia um projeto ao facilitar a comunicação e a compreensão entre os membros da equipe e as partes interessadas. Uma documentação clara e acessível proporciona um referencial comum que todos podem consultar, garantindo que todos estejam alinhados em relação aos objetivos, decisões arquiteturais e expectativas do sistema. Isso é especialmente importante em projetos grandes ou complexos, onde diferentes equipes podem trabalhar em partes distintas da arquitetura. Além disso, a documentação ajuda na on-boarding de novos membros da equipe, permitindo que eles compreendam rapidamente a estrutura do sistema e as decisões que foram tomadas. A documentação também serve como uma ferramenta valiosa para a manutenção futura e para lidar com mudanças de requisitos, pois fornece um histórico das decisões arquiteturais e das razões por trás delas, tornando mais fácil avaliar o impacto de novas mudanças.