Você recebeu um algoritmo que processa fluxo de dados de sensores em rede; leitura, validação, transformação e…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Aplicar a estratégia de decomposição para resolver problemas complexos, dividindo esse problema em partes menores, resolvendo-as e combinando suas soluções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Você recebeu um algoritmo que processa fluxo de dados de sensores em rede; leitura, validação, transformação e armazenamento estão implementadas em um único módulo e usam variáveis globais para configuração. Elabore um plano para tornar o algoritmo reutilizável em plataformas embarcadas e em nuvem, descrevendo decomposição em módulos, contrato de interface de dados, manejo de estado, parametrização e estratégia de testes.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Plano modelo: 1) Decomposição em módulos: separar em Reader (entrada de pacotes/sockets), Validator (schema/valores), Transformer (normalização/filtragem) e Persister (adapters para DB, arquivo ou fila). Cada módulo exponha funções pequenas com responsabilidades únicas. 2) Contrato de interface de dados: definir um formato de mensagem claro (JSON ou protobuf) com campos obrigatórios/opcionais e versões; documentar exemplos e formato de erro. Usar versionamento semântico da interface. 3) Manejo de estado: evitar variáveis globais; injetar configuração e contexto via parâmetros ou um objeto de contexto; tornar os módulos stateless sempre que possível; encapsular estado local (p.ex. buffer de leitura) dentro do módulo responsável. 4) Parametrização: mover configurações para variáveis de ambiente ou arquivos de configuração e usar dependency injection para passar adaptadores (ex.: storage adapter). Fornecer valores padrão e validação de configuração. 5) Adaptação a plataformas: implementar adaptadores finos para I/O (drivers leves para embarcados, SDKs para nuvem) e ajustar política de lote/tempo conforme recursos; otimizar memória em embarcados (processamento em streaming) e usar paralelismo em nuvem. 6) Testes e garantia de qualidade: escrever testes unitários por módulo, testes de contrato entre Reader/Validator/Transformer, testes de integração com adaptadores reais ou mocks; adicionar testes de performance e consumo de memória para ambientes embarcados; usar um conjunto de fixtures que simule falhas de rede e dados corrompidos. 7) Implantação e documentação: publicar API/contratos, exemplificar uso com samples, versionar releases e manter changelog; automatizar CI com lint, testes unitários e testes de integração. Resultado: arquitetura modular, interfaces documentadas, configuração externalizada e suíte de testes que permite reaproveitar o processamento tanto em dispositivos restritos quanto em ambientes escaláveis na nuvem.
Explicação
A proposta apresentada organiza o algoritmo em módulos com responsabilidades bem definidas, o que facilita a manutenção e a reutilização em diferentes plataformas. A definição de contratos de interface e a parametrização garantem que o sistema seja flexível e adaptável a diversas configurações e ambientes. Além disso, a ênfase em testes assegura a qualidade e a robustez do sistema, permitindo um desempenho confiável tanto em dispositivos embarcados quanto em nuvem.
Raio-X da questão
modularização de algoritmos
avaliacao
modularização de algoritmos · programação em módulos
Revisar conceitos de modularização e interfaces em programação.
O aluno pode falhar em identificar a importância da decomposição em módulos, propondo uma solução que ainda utiliza variáveis globais, comprometendo a reutilização do algoritmo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Você recebeu um algoritmo que calcula trajetórias de entrega e hoje usa a variável fixa 'vel_max' e indicadores de…
- Projete um algoritmo de alto nível para um dispositivo sensor com armazenamento limitado que colete amostras, processe…
- Projete um algoritmo em passos para coletar e validar dados de temperatura de uma rede de sensores, mostrando a…
- Descreva uma decomposição de um algoritmo que agrega leituras de temperatura de uma rede de sensores para gerar um…
- Ao decompor um programa que usa várias variáveis para operação de sensores, qual prática reduz o acoplamento entre…
- Proponha uma decomposição em subtarefas e forneça um esboço de pseudocódigo para um algoritmo que identifica leituras…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
