Questões de Arquitetura Orientada a Objetos (Arquitetura de Software)

Limpar Busca

No desenvolvimento de software moderno, a aplicação de princípios de design e metodologias ágeis visa aumentar a qualidade e a manutenibilidade do código. Considerando os princípios SOLID e a prática de testes, assinale a alternativa CORRETA sobre a arquitetura de software.

  • A Metodologias ágeis como o Scrum desencorajam a realização de testes unitários automatizados, priorizando apenas a entrega de funcionalidades visuais ao cliente ao final de cada sprint.
  • B O Princípio da Responsabilidade Única (SRP) define que uma classe deve ter múltiplos motivos para mudar, permitindo que ela centralize diversas funcionalidades relacionadas para simplificar o acoplamento global.
  • C O Princípio da Inversão de Dependência (DIP) sugere que módulos de alto nível devem depender diretamente de módulos de baixo nível para garantir que a implementação concreta dite a arquitetura do sistema.
  • D O Princípio da Substituição de Liskov (LSP) estabelece que subclasses devem ser capazes de substituir suas classes base sem alterar a corretude do sistema, garantindo que as extensões não quebrem o comportamento esperado da abstração.
  • E Testes de integração possuem como objetivo principal validar a lógica interna de uma única função ou método isolado, sem considerar a comunicação entre diferentes módulos ou bancos de dados.

Após um estudo aprofundado sobre a sistemática de gestão de processos e do sistema digital que a apoia – o SisGEPRO 1.0 –, a Equipe de Soluções Técnicas (EST) identificou que há conceitos do negócio que não são compreendidos por algumas das partes envolvidas na sustentação do sistema, levando a erros de codificação. Assim, dada a complexidade do negócio e a obsolescência do SisGEPRO 1.0, a EST recomendou o desenvolvimento de uma nova versão do sistema – o SisGEPRO 2.0 – aplicando a abordagem Domain-Driven Design (DDD). Em conformidade com o DDD, o arquiteto de software, após a modelagem dos conceitos do domínio, irá:

  • A organizar um repositório (Repository) para que outras camadas tenham acesso à lógica necessária para acesso a objetos;
  • B definir o modelo de domínio (Domain Model) acoplado às necessidades de armazenamento de objetos e suas referências;
  • C codificar uma fábrica (Factory) para definir a estratégia de criação e armazenamento de objetos do domínio;
  • D especificar agregados (Aggregates) para garantir a consistência das mudanças em objetos num modelo com associações complexas;
  • E projetar serviços (Services) para atender a ações que se refiram a Entidades ou Objetos de valor específicos.

Uma prefeitura está desenvolvendo um sistema para integrar um módulo de pagamentos legados, cujo formato de dados é incompatível com o novo subsistema de cobrança online. E necessário permitir que o novo subsistema utilize o módulo antigo sem modificá-lo diretamente. Nesse contexto, o padrão estrutural Gang of Four (GOF) que resolve de forma ideal o problema de integração entre interfaces incompatíveis é o

  • A Adapter, pois converte a interface de uma classe para outra interface esperada pelos clientes, tornando possível a comunicação entre sistemas legados e novos.
  • B Bridge, pois separa a abstração da implementação, permitindo que sistemas legados e novos se comuniquem de forma integrada.
  • C Composite, pois organiza objetos em estruturas hierárquicas, tratando composições e objetos individuas de forma integrada, permitindo a comunicação entre sistemas legados e novos.
  • D Facade, pois fornece uma interface unificada e simplificada para um conjunto complexo de subsistemas, tornando mais simples a comunicação entre sistemas legados e novos.
  • E Flyweight, pois compartilha estado intrínseco para reduzir o consumo de memória quando há múltiplas instâncias semelhantes interagindo entre sistemas ou subsistemas.

Uma equipe de desenvolvimento de software de uma prefeitura está criando um sistema para gestão de solicitações de serviços urbanos. Durante a análise inicial, foi definido que o código deve seguir o Single Responsibility Principle (SRP) do SOLID. A estratégia que a equipe pode adotar, que está de acordo com o SRP, é

  • A criar uma única classe SolicitacaoService que gerencie as solicitações, grave no banco de dados e envie notificações aos responsáveis.
  • B Implementar todas as funcionalidades do sistema de solicitações em um único método estático, a fim de facilitar a manutenção e melhorar a performance da aplicação.
  • C adicionar métodos na classe SolicitacaoService para gerenciar o banco de dados e enviar notificações, evitando a criação de classes adicionais que podem impactar na performance da aplicação.
  • D dividir o código em três classes: SolicitacaoService para gerenciar as solicitações, NotificacaoService para envio de notificações e PersistenciaService para gerenciar interações com o banco de dados.
  • E criar uma classe GestaoUnificada que centralize todos os serviços relacionados às solicitações em um único local, para maior controle.

A construção de um software começa com seu projeto, fase em que são definidas sua arquitetura, suas estruturas (programas e dados) e a escola da metodologia a ser adotada. Com base nessa informação, julgue o item seguinte.


O projeto orientado a objetos não pode ser combinado com metodologias ágeis, pois as metodologias ágeis requerem abordagens exclusivamente orientadas a dados.

  • Certo
  • Errado