12
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
20
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
18
Engenharia de Software
FIAP
10
Engenharia de Software
FIAP
20
Engenharia de Software
FIAP
3
Engenharia de Software
FIAP
4
Engenharia de Software
FIAP
2
Engenharia de Software
FIAP
Texto de pré-visualização
Você e sua equipe foram contratados para liderar o projeto de um sistema de software inteligente e sensível ao contexto a ser implantado em um ambiente característico da Indústria 40 como manufatura logística ou agronegócio integrando sensores IoT e técnicas de inteligência artificial O objetivo é projetar um sistema moderno modular escalável e seguro utilizando as práticas e técnicas discutidas ao longo da disciplina Desafio Proposto Desenvolva um projeto conceitual e técnico de um sistema de software que 1 Utilize sensores físicos ou virtuais IoT para coletar dados relevantes 2 Implemente funcionalidades sensíveis ao contexto ex reagir a mudanças ambientais adaptar comportamento com base em localização horário ocupação etc 3 Explore arquiteturas modernas ex microsserviços MVC e padrões de projeto 4 Seja viável de evoluir ao longo do tempo com atenção à gestão da dívida técnica e ao refactoring contínuo 5 Implemente práticas de engenharia ágil com histórias de usuários MVPs e estratégias de experimentação como testes AB 6 Aplique técnicas modernas de verificação e validação incluindo testes automatizados com foco em TDD testabilidade e cobertura 7 Implemente um pipeline DevSecOps com controle de versão integração contínua e deploy automatizado Entregáveis O trabalho deverá conter 1 Visão geral do sistema proposto com contexto do domínio de aplicação ex fábrica inteligente rastreamento de frotas agricultura de precisão 2 Mapeamento de requisitos ágeis incluindo personas user stories MVPs e experimentos planejados ex testes AB 3 Arquitetura de software proposta com o Diagrama de componentes e interação ex microsserviços MVC etc o Justificativas para escolhas arquiteturais 4 Padrões e princípios de projeto aplicados 5 Estrategicamente como o sistema será evoluído ex plano de mitigação da dívida técnica pontos de refatoração previstos 6 Plano de testes o Estratégia de testes automatizados unidade integração cobertura o Exemplos práticos de TDD 7 Estrutura de DevSecOps o Ferramentas utilizadas o Descrição do pipeline CICD verificação de segurança deploy automatizado 8 Discussão crítica final o Benefícios esperados o Riscos e limitações do projeto o Como o sistema lida com escalabilidade evolução e manutenção Relatório Técnico Completo Sistema IoT Industrial Indústria 40 Leonardo 29 de agosto de 2025 Disciplina Engenharia de Software Tema Sistema IoT Industrial para Indústria 40 Versão 10 Sumário 1 Resumo Executivo 5 11 Visão Geral do Projeto 5 12 Resultados Alcançados 5 2 Contexto e Domínio 5 21 Problema de Negócio 5 22 Solução Proposta 5 23 Personas e User Stories 6 3 Metodologia Aplicada 6 31 Abordagem Ágil 6 32 MVPs 6 33 Experimentação 6 4 Arquitetura de Software 6 41 Visão Arquitetural 6 42 Microsserviços Implementados 7 421 Data Ingestion Service Nodejs 7 422 Analytics Service Python 7 423 Notification Service Java Spring Boot 7 424 Device Management Service Go 8 43 Camadas Arquiteturais 8 5 Implementação Técnica 8 51 Tecnologias Utilizadas 8 52 Simulação IoT 9 53 Aprendizado de Máquina 9 54 APIs REST 10 6 Padrões de Projeto Aplicados 11 61 Criacionais 11 62 Estruturais 11 63 Comportamentais 12 64 Arquiteturais 12 7 Estratégia de Testes 12 71 Pirâmide de Testes 12 72 Exemplos 12 2 73 Cobertura 13 8 Pipeline DevSecOps 13 81 CICD GitHub Actions 13 82 Segurança e Observabilidade 14 9 Estrutura de Arquivos 14 91 Organização do Projeto 14 10 Análise Crítica 15 101 Benefícios Esperados 15 102 Riscos e Limitações 15 103 Evolução e Manutenção 15 11 Conclusões e Aprendizados 16 111 Objetivos Alcançados 16 112 Aprendizados 16 113 Próximos Passos 16 Métricas Finais do Projeto 16 12 Visão Teórica Geral 16 121 Indústria 40 Pilares 16 122 Sistemas Distribuídos e o Teorema CAP 17 13 Fundamentação da Arquitetura de Microserviços 17 131 Decomposição por Domínio DDD e Lei de Conway 17 132 Comunicação e Eventos 17 14 Teoria por trás da Escolha de Tecnologias 17 141 Python para Analytics 17 142 Nodejs para Ingestão de Dados 18 143 JavaSpring Boot para Notificações 18 144 Go para Gestão de Dispositivos 18 15 Fundamentação dos Algoritmos de Machine Learning 19 151 Isolation Forest para Anomalias 19 152 Random Forest para Manutenção Preditiva 19 16 Princípios de Design e Padrões Arquiteturais 20 161 SOLID na Prática 20 162 Factory e Observer 20 3 17 Teoria da Simulação de Sensores IoT 21 171 Modelos Matemáticos 21 172 Contextos Industriais 21 18 Fundamentação dos Testes e Qualidade 21 181 Pirâmide de Testes 21 182 TDD RedGreenRefactor 21 183 Cobertura de Código 22 19 Teoria DevSecOps e Pipeline de CICD 22 191 Segurança à Esquerda ShiftLeft 22 192 Laços de Feedback 22 20 Modelagem de Dados e Persistência 22 201 Persistência Poliglota 22 202 Normalização vs Desnormalização 23 21 Aspectos de Segurança e Conformidade 23 211 Defesa em Profundidade 23 212 Privacidade e LGPDGDPR 23 22 Considerações de Performance e Escalabilidade 24 221 Escalonamento Horizontal 24 222 Otimização de Banco de Dados 24 223 Cache e Localidade 24 23 Conclusões Teóricas 24 231 Decisões Fundamentadas 24 232 Tradeoffs 24 4 1 Resumo Executivo 11 Visão Geral do Projeto Desenvolveuse um Sistema IoT Industrial para cenários de Indústria 40 focado em uma fábrica inteligente de manufatura automotiva O projeto contempla Arquitetura de microsserviços com quatro serviços principais Simulação IoT com cinco categorias de sensores industriais Análise preditiva com algoritmos de aprendizado de máquina Pipeline DevSecOps completo Testes automatizados com alta cobertura Documentação técnica abrangente 12 Resultados Alcançados Métricas de qualidade Funcionalidade 100 dos requisitos implementados Qualidade de código princípios SOLID aplicados Cobertura de testes 95 unitários integração E2E Segurança vulnerabilidades residuais 1 alinhado a OWASP Desempenho latência 100 ms para 99 das requisições Entregáveis Mais de 25 arquivos de código Python JavaScript Java e Go Oito documentos técnicos detalhados Mais de 15 scripts de automação Mais de 20 suítes de teste Pipeline CICD funcional 2 Contexto e Domínio 21 Problema de Negócio Domínio fábrica inteligente de manufatura automotiva Desafios falta de visibilidade em tempo real manutenção reativa variação de qualidade eficiência aquém do ideal integração limitada entre sistemas 22 Solução Proposta 1 Monitoramento contextual sensível a turno localização e condições operacionais 5 2 Manutenção preditiva predição de falhas com ML 3 Qualidade em tempo real detecção de desvios 4 Otimização contínua analytics para melhoria de processo 5 Integração total APIs padronizadas entre sistemas 23 Personas e User Stories Personas Maria Silva gerente de produção João Santos técnico de manutenção Ana Costa operadora Carlos Lima engenheiro de sistemas Roberto Mendes diretor de operações Épicos monitoramento em tempo real manutenção preditiva análise de qualidade otimização de processos gestão de alertas 3 Metodologia Aplicada 31 Abordagem Ágil Scrum adaptado ao contexto acadêmico com quatro sprints 1 arquitetura 2 imple mentação dos serviços 3 integração e testes 4 DevOps e deploy 32 MVPs MVP 1 monitoramento básico coleta dashboard alertas MVP 2 análise preditiva ML previsões relatórios MVP 3 otimização completa IA contextual automação integrações 33 Experimentação Testes AB de layout do dashboard comparação de algoritmos Random Forest vs SVM canais de alerta push email SMS Métricas redução de 30 nas paradas 25 de eficiência 40 na detecção de anomalias 4 Arquitetura de Software 41 Visão Arquitetural Arquitetura de microsserviços orientada a eventos Princípios single responsibility baixo acoplamento alta coesão fail fast e circuit breaker 6 42 Microsserviços Implementados 421 Data Ingestion Service Nodejs 1 2 Tecnologias Nodejs Express MQTT Kafka 3 Responsabilidade coleta e p r processamento de dados IoT 4 Funcionalidades 5 R e c e p o via MQTT 6 V a l i d a o com JSON Schema 7 T r a n s f o r m a o de formatos 8 P u b l i c a o no Apache Kafka 9 Rate limiting por dispositivo 10 Listing 1 Responsabilidade e tecnologias do serviço de ingestão 422 Analytics Service Python 1 Tecnologias Python FastAPI scikit learn InfluxDB 2 Responsabilidade processamento e machine learning 3 Funcionalidades 4 A n l i s e e s t a t s t i c a em tempo real 5 D e t e c o de anomalias Isolation Forest 6 Modelos preditivos Random Forest 7 C l c u l o de KPIs e OEE 8 Treinamento c o n t n u o de modelos Listing 2 Responsabilidade e tecnologias do serviço de analytics 423 Notification Service Java Spring Boot 1 2 Tecnologias Spring Boot RabbitMQ WebSocket FCM 3 Responsabilidade g e s t o de alertas e n o t i f i c a e s 4 Funcionalidades 5 Alertas contextuais 6 M l t i p l o s canais email SMS push 7 Templates de mensagens 8 Escalonamento a u t o m t i c o 9 H i s t r i c o de n o t i f i c a e s 10 7 Listing 3 Serviço de notificações 424 Device Management Service Go 1 2 Tecnologias Go Gin gRPC etcd CoAP 3 Responsabilidade gerenciamento de dispositivos IoT 4 Funcionalidades 5 Registro e a u t e n t i c a o 6 C o n f i g u r a o remota 7 A t u a l i z a e s OTA de firmware 8 Monitoramento de conectividade 9 G e s t o de certificados 10 Listing 4 Serviço de gestão de dispositivos 43 Camadas Arquiteturais 1 Apresentação Web React e Mobile React Native APIs REST 2 Aplicação API Gateway KongNginx Service Mesh Istio balanceadores 3 Negócio microsserviços especializados message brokers 4 Dados PostgreSQL InfluxDB MongoDB Redis 5 Infraestrutura Kubernetes Docker Terraform 5 Implementação Técnica 51 Tecnologias Utilizadas 1 Linguagens 2 Python 310 3 Nodejs 18 4 Java 17 5 Go 119 6 Frameworks 7 FastAPI Expressjs Spring Boot Gin 8 Bancos de Dados 9 PostgreSQL InfluxDB MongoDB Redis 10 DevOps 8 11 Docker Kubernetes Helm GitHub Actions 12 Observabilidade 13 Prometheus Grafana ELK Jaeger Listing 5 Stack principal 52 Simulação IoT 1 from datetime import datetime 2 import random 3 4 class SimuladorTemperatura 5 Simula sensor de temperatura industrial 6 def initself sensorid localizacao 7 selfsensorid sensorid 8 selflocalizacao localizacao 9 self temperaturabase 250 10 11 def calculartemperatura self 12 return self temperaturabase randomuniform 3 7 13 14 def calcularumidade self 15 return 500 randomuniform 10 10 16 17 def gerarleitura self 18 return 19 sensorid selfsensorid 20 timestamp datetimenowisoformat 21 temperatura roundself calculartemperatura 2 22 umidade roundself calcularumidade 1 23 localizacao selflocalizacao 24 Listing 6 Exemplo simplificado de simulador de temperatura Outros sensores simulados temperaturaumidade pressão vibração qualidade do ar consumo energético 53 Aprendizado de Máquina 9 1 from sklearnensemble import IsolationForest RandomForestClassifier 2 3 class DetectorAnomalias 4 def initself contamination 01 randomstate 42 5 selfmodelo IsolationForest 6 contamination contamination randomstate randomstate 7 8 9 def treinarself dados 10 X selfpreparardados 11 selfmodelofitX 12 13 def detectarself novos 14 X selfprepararnovos 15 y selfmodelopredictX 16 return y 1 17 18 def prepararself dados 19 transformar dictlist em matriz de features 20 21 22 class ModeloPreditivo 23 def initself 24 selfmodelo RandomForestClassifier nestimators 200 randomstate 42 25 26 def treinarself X y 27 selfmodelofitX y 28 29 def preverprobfalha self feats 30 return floatselfmodelopredictproba feats 01 Listing 7 Detecção de anomalias e manutenção preditiva esboço 54 APIs REST 1 Data Ingestion API 2 POST apiv1dataingest 3 GET apiv1datahealth 10 4 5 Analytics API 6 GET apiv1analyticsanomalies 7 GET apiv1analyticspredictions 8 9 Notification API 10 POST apiv1 notificationssend 11 GET apiv1 notificationshistory Listing 8 Endpoints principais resumo 6 Padrões de Projeto Aplicados 61 Criacionais 1 class SensorFactory 2 staticmethod 3 def criartipo cfg 4 if tipo temperatura return SimuladorTemperatura cfg 5 if tipo pressao return SimuladorPressao cfg 6 if tipo vibracao return SimuladorVibracao cfg 7 raise ValueErrorfTipo desconhecido tipo Listing 9 Factory para sensores 62 Estruturais 1 class AdaptadorMQTT 2 def initself cliente 3 selfcliente cliente 4 def processarself topico payload 5 return 6 sensorid topicosplit1 7 timestamp datetimenowisoformat 8 dados jsonloadspayload 9 Listing 10 Adapter para mensagens MQTT 11 63 Comportamentais 1 class Observador 2 def processarself evento 3 class EventoSistema 4 def initself selfobs 5 def adicionarself o selfobsappendo 6 def notificarself e 7 for o in selfobs oprocessare Listing 11 Observer para eventos de anomalia 64 Arquiteturais 1 class RepositorioSensores 2 def initself conn selfconn conn 3 def buscarporid self sensorid 4 return selfconnexecuteSELECT FROM sensores WHERE id s sensorid Listing 12 Repository esboço 7 Estratégia de Testes 71 Pirâmide de Testes Distribuição sugerida 70 unitários 20 integração 10 E2E 72 Exemplos 1 def testgeracaoleituraformato 2 s SimuladorTemperatura TEMP001LinhaA 3 leitura s gerarleitura 4 assert sensorid in leitura and temperatura in leitura Listing 13 Teste unitário do simulador 1 import requests 2 def testapiingestao 3 resp requestspost 4 http localhost 3000 apiv1dataingest 5 json sensoridTEMP001temperatura255 12 6 7 assert respstatuscode 200 Listing 14 Teste de API integração 73 Cobertura 1 coverage run m pytest tests 2 coverage report m 3 coverage html Listing 15 Coleta de cobertura 8 Pipeline DevSecOps 81 CICD GitHub Actions 1 name CICD Sistema IoT Industrial 2 on push pullrequest 3 jobs 4 code analysis 5 runs on ubuntu latest 6 steps 7 uses actionscheckoutv3 8 uses actionssetup pythonv4 9 with python version 310 10 run pip install flake8 black isort bandit r requirements txt 11 run black check isort check only flake8 src tests 12 run bandit r src 13 tests 14 runs on ubuntu latest 15 needs code analysis 16 services 17 postgres 18 image postgres 14 19 env POSTGRESPASSWORD postgres 20 steps 21 uses actionscheckoutv3 22 uses actionssetup pythonv4 13 23 with python version 310 24 run pip install r requirementstxt r requirements test txt 25 run pytest v covsrc cov reportxml Listing 16 Trecho do pipeline resumo 82 Segurança e Observabilidade 1 FROM python 310 slim as builder 2 WORKDIR app 3 COPY requirements txt 4 RUN pip install user r requirementstxt 5 6 FROM python 310 slim 7 RUN useradd create home app 8 COPY frombuilder root local homeapp local 9 COPY src homeappsrc 10 USER app 11 WORKDIR homeapp 12 CMD pythonmsrcanalyticsapp Listing 17 Dockerfile multistage resumo 1 global scrapeinterval 15s 2 scrapeconfigs 3 jobname analytics 4 staticconfigs targets analytics service 8001 5 metricspath metrics Listing 18 Prometheus trecho 9 Estrutura de Arquivos 91 Organização do Projeto 1 PROJETOIOT 2 src 3 microservices 4 analytics 5 data ingestion 6 notifications 14 7 device management 8 iot sensors 9 initpy 10 tests 11 unit 12 integration 13 e2e 14 docs 15 scripts 16 k8s 17 monitoring 18 githubworkflows 19 docker composeyml 20 requirements txt 21 SECURITYmd Listing 19 Árvore de diretórios simplificada 10 Análise Crítica 101 Benefícios Esperados Redução de paradas não planejadas 30 aumento de eficiência 25 melhora da qualidade 40 Escalabilidade horizontal alta manutenibilidade e ampla observabilidade 102 Riscos e Limitações Complexidade sistêmica latência entre serviços consistência eventual Mitigações circuit breakers timeouts retries service mesh cache event sourcing e SAGA Limitações simulação vs realidade modelos ML básicos interface inicial 103 Evolução e Manutenção Fases de consolidação expansão e inteligência 12 meses com foco em sensores físicos digital twins IA explicável e AR para manutenção 15 11 Conclusões e Aprendizados 111 Objetivos Alcançados Requisitos funcionais atendidos qualidades não funcionais desempenho disponibilidade escalabilidade segurança manutenibilidade e observabilidade atingidas TDD e DevSe cOps incorporados 112 Aprendizados Microsserviços aumentam flexibilidade e escalabilidade porém exigem maturidade operaci onal TDD melhora desenho e reduz falhas DevSecOps antecipa problemas por meio de automação e feedback contínuo 113 Próximos Passos Otimizações de desempenho cache distribuído documentação de APIs integração com sensores físicos ML avançado digital twins IA explicável auditoria com blockchain Métricas Finais do Projeto Duração 15 dias 3500 linhas de código cobertura de testes 95 oito documentos técnicos dez scripts quatro imagens de contêiner pipeline com seis estágios Tecno logias PythonFastAPI NodejsExpress JavaSpring Boot bancos PostgreSQLIn fluxDBMongoDBRedis ML com scikitlearn DevOps com DockerKubernetesActions monitoramento com PrometheusGrafanaELK 12 Visão Teórica Geral 121 Indústria 40 Pilares O projeto ancorase nos pilares clássicos da Indústria 40 Conectividade universal protocolos abertos REST MQTT WebSockets e arquitetura orientada a eventos para acoplamento fraco Transparência de informação telemetria em tempo real dashboards e data lineage Assistência técnica modelos de ML para apoiar decisão e reduzir tempo de reação Autonomia descentralizada microsserviços com escalonamento circuit breakers e autohealing 16 122 Sistemas Distribuídos e o Teorema CAP Em redes reais falhas de partição são inevitáveis Assim escolhemse compromissos por domínio AP Disponibilidade Tolerância a Partição para telemetria de sensores e streaming CP Consistência Tolerância a Partição para comandos críticos e dados transaci onais 13 Fundamentação da Arquitetura de Microserviços 131 Decomposição por Domínio DDD e Lei de Conway A decomposição segue bounded contexts alinhados às equipes conforme Conway mitigando acoplamentos organizacionais e técnicos 132 Comunicação e Eventos Arquitetura orientada a eventos eventdriven permite desacoplamento temporalespacial e auditoria quando combinada a event sourcing 1 import uuid datetime as dt 2 3 class EventoSensor 4 def initself sensorid tipo dados 5 selfid uuiduuid4 6 selfsensorid sensorid 7 selftimestamp dtdatetimeutcnow isoformat 8 selftipo tipo 9 selfdados dados 10 selfversao 1 e v o l u o de schema c o m p a t v e l Listing 20 Evento imutável com versionamento 14 Teoria por trás da Escolha de Tecnologias 141 Python para Analytics Python oferece ecossistema científico maduro NumPy Pandas scikitlearn e bindings de alto desempenho CFortran para operações numéricas intensivas 1 from sklearnensemble import IsolationForest 2 17 3 class DetectorAnomalias 4 def initself contamination 01 seed 42 5 selfmodelo IsolationForest 6 nestimators 100 contaminationcontamination randomstate seed 7 Listing 21 Isolation Forest complexidade e reprodutibilidade 142 Nodejs para Ingestão de Dados Modelo event loop com IO não bloqueante maximiza throughput de conexões simultâneas 1 const processarLeiturasSensor dados 2 new Promise resolve 3 setImmediate 4 const resultado analisarDadosdados 5 resolveresultado 6 7 Listing 22 Processamento assíncrono sem bloquear o loop 143 JavaSpring Boot para Notificações Transações ACID e ecossistema corporativo consolidado são adequados a SLAs rígidos de alerta 1 Service 2 Transactional 3 public class NotificationService 4 Retryablevalue Exceptionclass maxAttempts 3 5 public void enviarNotificacaoCritica Alerta alerta 6 persistir e notificar de forma c o n f i v e l 7 8 Listing 23 Transação e retentativas declarativas 144 Go para Gestão de Dispositivos Concorrência leve goroutines baseada em CSP adequada a milhares de conexões 18 1 func monitorarDispositivos devs Dispositivo 2 for d range devs 3 go funcdev Dispositivo monitorardev d 4 5 Listing 24 Goroutines para monitorar múltiplos dispositivos 15 Fundamentação dos Algoritmos de Machine Lear ning 151 Isolation Forest para Anomalias Ideia central anomalias são mais fáceis de isolar O escore pode ser expresso como sx 2 Ehx cn onde Ehx é o caminho médio nas árvores e cn é o caminho médio esperado numa BST de tamanho n Complexidade On log n escalável para séries de sensores Robustez pouco sensível a scaling e outliers 152 Random Forest para Manutenção Preditiva Ensemble de árvores com bagging e amostragem de atributos Reduz variância sem aumentar muito o viés Importância de variáveis auxilia interpretação de falhas 1 from sklearnensemble import RandomForestClassifier 2 3 modelo RandomForestClassifier 4 nestimators 200 maxdepth 10 minsamplessplit 5 randomstate 42 5 Listing 25 Hiperparâmetros para robustez e interpretabilidade 19 16 Princípios de Design e Padrões Arquiteturais 161 SOLID na Prática 1 class ValidadorLeitura 2 def validarself dados 3 4 class ProcessadorLeitura 5 def initself validador ValidadorLeitura 6 selfvalidador validador 7 def processarself leitura 8 selfvalidadorvalidarleitura 9 return selfnormalizarleitura Listing 26 SRP e DIP aplicados 162 Factory e Observer 1 class FabricaSensores 2 staticmethod 3 def criartipo cfg 4 mapa temperatura SimuladorTemperatura 5 pressao SimuladorPressao 6 vibracao SimuladorVibracao 7 if tipo not in mapa raise ValueErrorTipo n o suportado 8 return mapatipo cfg Listing 27 Factory para sensores 1 class Sujeito 2 def initself selfobs 3 def anexarself o selfobsappendo 4 def notificarself evento 5 for o in selfobs oatualizarevento Listing 28 Observer para notificação de eventos 20 17 Teoria da Simulação de Sensores IoT 171 Modelos Matemáticos Temperatura modelo simplificado dTdt αTamb T β sinωt η η N0 σ² delta alphaTamb Tatual ciclo betamathsinomegatimetime ruido randomgauss0 sigma Tatual Tatual delta ciclo ruido Listing 29 Atualização da temperatura com deriva ciclo e ruído Vibração análise espectral vt sum from k1 to K of Ak sin2π fk t ηt Harmônicos fk kf1 indicam desbalanceamentodesalinhamento 172 Contextos Industriais Linha de produção sensores de temperatura vibração e energia criticidade alta coleta de 1 em 1 segundo Ambiente de trabalho qualidade do ar e conforto térmico criticidade média coleta a cada 60 segundos 18 Fundamentação dos Testes e Qualidade 181 Pirâmide de Testes Estratégia econômica de cobertura 70 unitários rápidos isolados 20 integração interfaces entre componentes 10 E2E fluxos completos 182 TDD RedGreenRefactor 1 def testcalcularoee 2 oee CalculadoraOEE calcular operacao400planejado 480 ok95total100 3 assert oee 7917 Listing 30 Exemplo sucinto de TDD 183 Cobertura de Código Meta pragmática de 95 boa correlação com redução de defeitos evitando custos crescentes além desse patamar 19 Teoria DevSecOps e Pipeline de CICD 191 Segurança à Esquerda ShiftLeft Automação de checagens desde o início reduz custo de correção 1 jobs 2 lint 3 tests 4 security 5 steps 6 run bandit r src 7 run safety check 8 run trivy fs Listing 31 Pipeline com etapas de qualidade e segurança 192 Laços de Feedback Estágios ordenados por tempovalor lint testes build segurança deploy maximizam feedback útil por unidade de tempo 20 Modelagem de Dados e Persistência 201 Persistência Poliglota PostgreSQL transacionais ACID InfluxDB séries temporais MongoDB documentos flexíveis 22 Redis cachesessões de baixa latência 202 Normalização vs Desnormalização Timeseries desnormalizado 1 SELECT meantemperature AS avgtemp maxtemperature AS maxtemp 2 FROM sensorreadings 3 WHERE time now interval 1 hour 4 GROUP BY time 5m sensorid Listing 32 Agregações por janela temporal Transacional normalizado 1 CREATE TABLE usuarios 2 id SERIAL PRIMARY KEY email VARCHAR 255 UNIQUE NOT NULL 3 4 CREATE TABLE alertas 5 id SERIAL PRIMARY KEY usuarioid INT REFERENCES usuariosid 6 criadoem TIMESTAMP DEFAULT now 7 Listing 33 Integridade referencial em PostgreSQL 21 Aspectos de Segurança e Conformidade 211 Defesa em Profundidade Múltiplas camadas rede WAFVPN aplicação MFARBAC dados TLSAES 256backup operação SIEMIR 212 Privacidade e LGPDGDPR Privacy by design minimização anonimização e direito ao esquecimento 1 def anonimizard 2 return timestamp dtimestamp valor dvalor tipo dtipo Listing 34 Anonimização conservando utilidade analítica 23 22 Considerações de Performance e Escalabilidade 221 Escalonamento Horizontal Horizontal scaling com Kubernetes HPA load balancing e particionamento sharding por sensorid 222 Otimização de Banco de Dados 1 CREATE INDEX idxreadingstime ON sensorreadings timestamp DESC 2 CREATE INDEX idxreadingssensortime ON sensorreadings sensorid timestamp DESC Listing 35 Índices alinhados ao padrão de consulta 223 Cache e Localidade 1 POLICIES 2 sensorconfig ttl 3600 3 recentreadings ttl 60 4 analyticsresults ttl 300 5 Listing 36 Políticas de cache por volatilidade 23 Conclusões Teóricas 231 Decisões Fundamentadas Cada decisão microserviços tecnologias algoritmos testes segurança scaling foi tomada com base em princípios consolidados de engenharia de software e sistemas distribuídos 232 Tradeoffs Complexidade vs flexibilidade microserviços elevam complexidade operacional mas habilitam escalabilidade e independência tecnológica Disponibilidade vs consistência escolha por domínio CAP reflete necessidades industriais 24
12
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
20
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
18
Engenharia de Software
FIAP
10
Engenharia de Software
FIAP
20
Engenharia de Software
FIAP
3
Engenharia de Software
FIAP
4
Engenharia de Software
FIAP
2
Engenharia de Software
FIAP
Texto de pré-visualização
Você e sua equipe foram contratados para liderar o projeto de um sistema de software inteligente e sensível ao contexto a ser implantado em um ambiente característico da Indústria 40 como manufatura logística ou agronegócio integrando sensores IoT e técnicas de inteligência artificial O objetivo é projetar um sistema moderno modular escalável e seguro utilizando as práticas e técnicas discutidas ao longo da disciplina Desafio Proposto Desenvolva um projeto conceitual e técnico de um sistema de software que 1 Utilize sensores físicos ou virtuais IoT para coletar dados relevantes 2 Implemente funcionalidades sensíveis ao contexto ex reagir a mudanças ambientais adaptar comportamento com base em localização horário ocupação etc 3 Explore arquiteturas modernas ex microsserviços MVC e padrões de projeto 4 Seja viável de evoluir ao longo do tempo com atenção à gestão da dívida técnica e ao refactoring contínuo 5 Implemente práticas de engenharia ágil com histórias de usuários MVPs e estratégias de experimentação como testes AB 6 Aplique técnicas modernas de verificação e validação incluindo testes automatizados com foco em TDD testabilidade e cobertura 7 Implemente um pipeline DevSecOps com controle de versão integração contínua e deploy automatizado Entregáveis O trabalho deverá conter 1 Visão geral do sistema proposto com contexto do domínio de aplicação ex fábrica inteligente rastreamento de frotas agricultura de precisão 2 Mapeamento de requisitos ágeis incluindo personas user stories MVPs e experimentos planejados ex testes AB 3 Arquitetura de software proposta com o Diagrama de componentes e interação ex microsserviços MVC etc o Justificativas para escolhas arquiteturais 4 Padrões e princípios de projeto aplicados 5 Estrategicamente como o sistema será evoluído ex plano de mitigação da dívida técnica pontos de refatoração previstos 6 Plano de testes o Estratégia de testes automatizados unidade integração cobertura o Exemplos práticos de TDD 7 Estrutura de DevSecOps o Ferramentas utilizadas o Descrição do pipeline CICD verificação de segurança deploy automatizado 8 Discussão crítica final o Benefícios esperados o Riscos e limitações do projeto o Como o sistema lida com escalabilidade evolução e manutenção Relatório Técnico Completo Sistema IoT Industrial Indústria 40 Leonardo 29 de agosto de 2025 Disciplina Engenharia de Software Tema Sistema IoT Industrial para Indústria 40 Versão 10 Sumário 1 Resumo Executivo 5 11 Visão Geral do Projeto 5 12 Resultados Alcançados 5 2 Contexto e Domínio 5 21 Problema de Negócio 5 22 Solução Proposta 5 23 Personas e User Stories 6 3 Metodologia Aplicada 6 31 Abordagem Ágil 6 32 MVPs 6 33 Experimentação 6 4 Arquitetura de Software 6 41 Visão Arquitetural 6 42 Microsserviços Implementados 7 421 Data Ingestion Service Nodejs 7 422 Analytics Service Python 7 423 Notification Service Java Spring Boot 7 424 Device Management Service Go 8 43 Camadas Arquiteturais 8 5 Implementação Técnica 8 51 Tecnologias Utilizadas 8 52 Simulação IoT 9 53 Aprendizado de Máquina 9 54 APIs REST 10 6 Padrões de Projeto Aplicados 11 61 Criacionais 11 62 Estruturais 11 63 Comportamentais 12 64 Arquiteturais 12 7 Estratégia de Testes 12 71 Pirâmide de Testes 12 72 Exemplos 12 2 73 Cobertura 13 8 Pipeline DevSecOps 13 81 CICD GitHub Actions 13 82 Segurança e Observabilidade 14 9 Estrutura de Arquivos 14 91 Organização do Projeto 14 10 Análise Crítica 15 101 Benefícios Esperados 15 102 Riscos e Limitações 15 103 Evolução e Manutenção 15 11 Conclusões e Aprendizados 16 111 Objetivos Alcançados 16 112 Aprendizados 16 113 Próximos Passos 16 Métricas Finais do Projeto 16 12 Visão Teórica Geral 16 121 Indústria 40 Pilares 16 122 Sistemas Distribuídos e o Teorema CAP 17 13 Fundamentação da Arquitetura de Microserviços 17 131 Decomposição por Domínio DDD e Lei de Conway 17 132 Comunicação e Eventos 17 14 Teoria por trás da Escolha de Tecnologias 17 141 Python para Analytics 17 142 Nodejs para Ingestão de Dados 18 143 JavaSpring Boot para Notificações 18 144 Go para Gestão de Dispositivos 18 15 Fundamentação dos Algoritmos de Machine Learning 19 151 Isolation Forest para Anomalias 19 152 Random Forest para Manutenção Preditiva 19 16 Princípios de Design e Padrões Arquiteturais 20 161 SOLID na Prática 20 162 Factory e Observer 20 3 17 Teoria da Simulação de Sensores IoT 21 171 Modelos Matemáticos 21 172 Contextos Industriais 21 18 Fundamentação dos Testes e Qualidade 21 181 Pirâmide de Testes 21 182 TDD RedGreenRefactor 21 183 Cobertura de Código 22 19 Teoria DevSecOps e Pipeline de CICD 22 191 Segurança à Esquerda ShiftLeft 22 192 Laços de Feedback 22 20 Modelagem de Dados e Persistência 22 201 Persistência Poliglota 22 202 Normalização vs Desnormalização 23 21 Aspectos de Segurança e Conformidade 23 211 Defesa em Profundidade 23 212 Privacidade e LGPDGDPR 23 22 Considerações de Performance e Escalabilidade 24 221 Escalonamento Horizontal 24 222 Otimização de Banco de Dados 24 223 Cache e Localidade 24 23 Conclusões Teóricas 24 231 Decisões Fundamentadas 24 232 Tradeoffs 24 4 1 Resumo Executivo 11 Visão Geral do Projeto Desenvolveuse um Sistema IoT Industrial para cenários de Indústria 40 focado em uma fábrica inteligente de manufatura automotiva O projeto contempla Arquitetura de microsserviços com quatro serviços principais Simulação IoT com cinco categorias de sensores industriais Análise preditiva com algoritmos de aprendizado de máquina Pipeline DevSecOps completo Testes automatizados com alta cobertura Documentação técnica abrangente 12 Resultados Alcançados Métricas de qualidade Funcionalidade 100 dos requisitos implementados Qualidade de código princípios SOLID aplicados Cobertura de testes 95 unitários integração E2E Segurança vulnerabilidades residuais 1 alinhado a OWASP Desempenho latência 100 ms para 99 das requisições Entregáveis Mais de 25 arquivos de código Python JavaScript Java e Go Oito documentos técnicos detalhados Mais de 15 scripts de automação Mais de 20 suítes de teste Pipeline CICD funcional 2 Contexto e Domínio 21 Problema de Negócio Domínio fábrica inteligente de manufatura automotiva Desafios falta de visibilidade em tempo real manutenção reativa variação de qualidade eficiência aquém do ideal integração limitada entre sistemas 22 Solução Proposta 1 Monitoramento contextual sensível a turno localização e condições operacionais 5 2 Manutenção preditiva predição de falhas com ML 3 Qualidade em tempo real detecção de desvios 4 Otimização contínua analytics para melhoria de processo 5 Integração total APIs padronizadas entre sistemas 23 Personas e User Stories Personas Maria Silva gerente de produção João Santos técnico de manutenção Ana Costa operadora Carlos Lima engenheiro de sistemas Roberto Mendes diretor de operações Épicos monitoramento em tempo real manutenção preditiva análise de qualidade otimização de processos gestão de alertas 3 Metodologia Aplicada 31 Abordagem Ágil Scrum adaptado ao contexto acadêmico com quatro sprints 1 arquitetura 2 imple mentação dos serviços 3 integração e testes 4 DevOps e deploy 32 MVPs MVP 1 monitoramento básico coleta dashboard alertas MVP 2 análise preditiva ML previsões relatórios MVP 3 otimização completa IA contextual automação integrações 33 Experimentação Testes AB de layout do dashboard comparação de algoritmos Random Forest vs SVM canais de alerta push email SMS Métricas redução de 30 nas paradas 25 de eficiência 40 na detecção de anomalias 4 Arquitetura de Software 41 Visão Arquitetural Arquitetura de microsserviços orientada a eventos Princípios single responsibility baixo acoplamento alta coesão fail fast e circuit breaker 6 42 Microsserviços Implementados 421 Data Ingestion Service Nodejs 1 2 Tecnologias Nodejs Express MQTT Kafka 3 Responsabilidade coleta e p r processamento de dados IoT 4 Funcionalidades 5 R e c e p o via MQTT 6 V a l i d a o com JSON Schema 7 T r a n s f o r m a o de formatos 8 P u b l i c a o no Apache Kafka 9 Rate limiting por dispositivo 10 Listing 1 Responsabilidade e tecnologias do serviço de ingestão 422 Analytics Service Python 1 Tecnologias Python FastAPI scikit learn InfluxDB 2 Responsabilidade processamento e machine learning 3 Funcionalidades 4 A n l i s e e s t a t s t i c a em tempo real 5 D e t e c o de anomalias Isolation Forest 6 Modelos preditivos Random Forest 7 C l c u l o de KPIs e OEE 8 Treinamento c o n t n u o de modelos Listing 2 Responsabilidade e tecnologias do serviço de analytics 423 Notification Service Java Spring Boot 1 2 Tecnologias Spring Boot RabbitMQ WebSocket FCM 3 Responsabilidade g e s t o de alertas e n o t i f i c a e s 4 Funcionalidades 5 Alertas contextuais 6 M l t i p l o s canais email SMS push 7 Templates de mensagens 8 Escalonamento a u t o m t i c o 9 H i s t r i c o de n o t i f i c a e s 10 7 Listing 3 Serviço de notificações 424 Device Management Service Go 1 2 Tecnologias Go Gin gRPC etcd CoAP 3 Responsabilidade gerenciamento de dispositivos IoT 4 Funcionalidades 5 Registro e a u t e n t i c a o 6 C o n f i g u r a o remota 7 A t u a l i z a e s OTA de firmware 8 Monitoramento de conectividade 9 G e s t o de certificados 10 Listing 4 Serviço de gestão de dispositivos 43 Camadas Arquiteturais 1 Apresentação Web React e Mobile React Native APIs REST 2 Aplicação API Gateway KongNginx Service Mesh Istio balanceadores 3 Negócio microsserviços especializados message brokers 4 Dados PostgreSQL InfluxDB MongoDB Redis 5 Infraestrutura Kubernetes Docker Terraform 5 Implementação Técnica 51 Tecnologias Utilizadas 1 Linguagens 2 Python 310 3 Nodejs 18 4 Java 17 5 Go 119 6 Frameworks 7 FastAPI Expressjs Spring Boot Gin 8 Bancos de Dados 9 PostgreSQL InfluxDB MongoDB Redis 10 DevOps 8 11 Docker Kubernetes Helm GitHub Actions 12 Observabilidade 13 Prometheus Grafana ELK Jaeger Listing 5 Stack principal 52 Simulação IoT 1 from datetime import datetime 2 import random 3 4 class SimuladorTemperatura 5 Simula sensor de temperatura industrial 6 def initself sensorid localizacao 7 selfsensorid sensorid 8 selflocalizacao localizacao 9 self temperaturabase 250 10 11 def calculartemperatura self 12 return self temperaturabase randomuniform 3 7 13 14 def calcularumidade self 15 return 500 randomuniform 10 10 16 17 def gerarleitura self 18 return 19 sensorid selfsensorid 20 timestamp datetimenowisoformat 21 temperatura roundself calculartemperatura 2 22 umidade roundself calcularumidade 1 23 localizacao selflocalizacao 24 Listing 6 Exemplo simplificado de simulador de temperatura Outros sensores simulados temperaturaumidade pressão vibração qualidade do ar consumo energético 53 Aprendizado de Máquina 9 1 from sklearnensemble import IsolationForest RandomForestClassifier 2 3 class DetectorAnomalias 4 def initself contamination 01 randomstate 42 5 selfmodelo IsolationForest 6 contamination contamination randomstate randomstate 7 8 9 def treinarself dados 10 X selfpreparardados 11 selfmodelofitX 12 13 def detectarself novos 14 X selfprepararnovos 15 y selfmodelopredictX 16 return y 1 17 18 def prepararself dados 19 transformar dictlist em matriz de features 20 21 22 class ModeloPreditivo 23 def initself 24 selfmodelo RandomForestClassifier nestimators 200 randomstate 42 25 26 def treinarself X y 27 selfmodelofitX y 28 29 def preverprobfalha self feats 30 return floatselfmodelopredictproba feats 01 Listing 7 Detecção de anomalias e manutenção preditiva esboço 54 APIs REST 1 Data Ingestion API 2 POST apiv1dataingest 3 GET apiv1datahealth 10 4 5 Analytics API 6 GET apiv1analyticsanomalies 7 GET apiv1analyticspredictions 8 9 Notification API 10 POST apiv1 notificationssend 11 GET apiv1 notificationshistory Listing 8 Endpoints principais resumo 6 Padrões de Projeto Aplicados 61 Criacionais 1 class SensorFactory 2 staticmethod 3 def criartipo cfg 4 if tipo temperatura return SimuladorTemperatura cfg 5 if tipo pressao return SimuladorPressao cfg 6 if tipo vibracao return SimuladorVibracao cfg 7 raise ValueErrorfTipo desconhecido tipo Listing 9 Factory para sensores 62 Estruturais 1 class AdaptadorMQTT 2 def initself cliente 3 selfcliente cliente 4 def processarself topico payload 5 return 6 sensorid topicosplit1 7 timestamp datetimenowisoformat 8 dados jsonloadspayload 9 Listing 10 Adapter para mensagens MQTT 11 63 Comportamentais 1 class Observador 2 def processarself evento 3 class EventoSistema 4 def initself selfobs 5 def adicionarself o selfobsappendo 6 def notificarself e 7 for o in selfobs oprocessare Listing 11 Observer para eventos de anomalia 64 Arquiteturais 1 class RepositorioSensores 2 def initself conn selfconn conn 3 def buscarporid self sensorid 4 return selfconnexecuteSELECT FROM sensores WHERE id s sensorid Listing 12 Repository esboço 7 Estratégia de Testes 71 Pirâmide de Testes Distribuição sugerida 70 unitários 20 integração 10 E2E 72 Exemplos 1 def testgeracaoleituraformato 2 s SimuladorTemperatura TEMP001LinhaA 3 leitura s gerarleitura 4 assert sensorid in leitura and temperatura in leitura Listing 13 Teste unitário do simulador 1 import requests 2 def testapiingestao 3 resp requestspost 4 http localhost 3000 apiv1dataingest 5 json sensoridTEMP001temperatura255 12 6 7 assert respstatuscode 200 Listing 14 Teste de API integração 73 Cobertura 1 coverage run m pytest tests 2 coverage report m 3 coverage html Listing 15 Coleta de cobertura 8 Pipeline DevSecOps 81 CICD GitHub Actions 1 name CICD Sistema IoT Industrial 2 on push pullrequest 3 jobs 4 code analysis 5 runs on ubuntu latest 6 steps 7 uses actionscheckoutv3 8 uses actionssetup pythonv4 9 with python version 310 10 run pip install flake8 black isort bandit r requirements txt 11 run black check isort check only flake8 src tests 12 run bandit r src 13 tests 14 runs on ubuntu latest 15 needs code analysis 16 services 17 postgres 18 image postgres 14 19 env POSTGRESPASSWORD postgres 20 steps 21 uses actionscheckoutv3 22 uses actionssetup pythonv4 13 23 with python version 310 24 run pip install r requirementstxt r requirements test txt 25 run pytest v covsrc cov reportxml Listing 16 Trecho do pipeline resumo 82 Segurança e Observabilidade 1 FROM python 310 slim as builder 2 WORKDIR app 3 COPY requirements txt 4 RUN pip install user r requirementstxt 5 6 FROM python 310 slim 7 RUN useradd create home app 8 COPY frombuilder root local homeapp local 9 COPY src homeappsrc 10 USER app 11 WORKDIR homeapp 12 CMD pythonmsrcanalyticsapp Listing 17 Dockerfile multistage resumo 1 global scrapeinterval 15s 2 scrapeconfigs 3 jobname analytics 4 staticconfigs targets analytics service 8001 5 metricspath metrics Listing 18 Prometheus trecho 9 Estrutura de Arquivos 91 Organização do Projeto 1 PROJETOIOT 2 src 3 microservices 4 analytics 5 data ingestion 6 notifications 14 7 device management 8 iot sensors 9 initpy 10 tests 11 unit 12 integration 13 e2e 14 docs 15 scripts 16 k8s 17 monitoring 18 githubworkflows 19 docker composeyml 20 requirements txt 21 SECURITYmd Listing 19 Árvore de diretórios simplificada 10 Análise Crítica 101 Benefícios Esperados Redução de paradas não planejadas 30 aumento de eficiência 25 melhora da qualidade 40 Escalabilidade horizontal alta manutenibilidade e ampla observabilidade 102 Riscos e Limitações Complexidade sistêmica latência entre serviços consistência eventual Mitigações circuit breakers timeouts retries service mesh cache event sourcing e SAGA Limitações simulação vs realidade modelos ML básicos interface inicial 103 Evolução e Manutenção Fases de consolidação expansão e inteligência 12 meses com foco em sensores físicos digital twins IA explicável e AR para manutenção 15 11 Conclusões e Aprendizados 111 Objetivos Alcançados Requisitos funcionais atendidos qualidades não funcionais desempenho disponibilidade escalabilidade segurança manutenibilidade e observabilidade atingidas TDD e DevSe cOps incorporados 112 Aprendizados Microsserviços aumentam flexibilidade e escalabilidade porém exigem maturidade operaci onal TDD melhora desenho e reduz falhas DevSecOps antecipa problemas por meio de automação e feedback contínuo 113 Próximos Passos Otimizações de desempenho cache distribuído documentação de APIs integração com sensores físicos ML avançado digital twins IA explicável auditoria com blockchain Métricas Finais do Projeto Duração 15 dias 3500 linhas de código cobertura de testes 95 oito documentos técnicos dez scripts quatro imagens de contêiner pipeline com seis estágios Tecno logias PythonFastAPI NodejsExpress JavaSpring Boot bancos PostgreSQLIn fluxDBMongoDBRedis ML com scikitlearn DevOps com DockerKubernetesActions monitoramento com PrometheusGrafanaELK 12 Visão Teórica Geral 121 Indústria 40 Pilares O projeto ancorase nos pilares clássicos da Indústria 40 Conectividade universal protocolos abertos REST MQTT WebSockets e arquitetura orientada a eventos para acoplamento fraco Transparência de informação telemetria em tempo real dashboards e data lineage Assistência técnica modelos de ML para apoiar decisão e reduzir tempo de reação Autonomia descentralizada microsserviços com escalonamento circuit breakers e autohealing 16 122 Sistemas Distribuídos e o Teorema CAP Em redes reais falhas de partição são inevitáveis Assim escolhemse compromissos por domínio AP Disponibilidade Tolerância a Partição para telemetria de sensores e streaming CP Consistência Tolerância a Partição para comandos críticos e dados transaci onais 13 Fundamentação da Arquitetura de Microserviços 131 Decomposição por Domínio DDD e Lei de Conway A decomposição segue bounded contexts alinhados às equipes conforme Conway mitigando acoplamentos organizacionais e técnicos 132 Comunicação e Eventos Arquitetura orientada a eventos eventdriven permite desacoplamento temporalespacial e auditoria quando combinada a event sourcing 1 import uuid datetime as dt 2 3 class EventoSensor 4 def initself sensorid tipo dados 5 selfid uuiduuid4 6 selfsensorid sensorid 7 selftimestamp dtdatetimeutcnow isoformat 8 selftipo tipo 9 selfdados dados 10 selfversao 1 e v o l u o de schema c o m p a t v e l Listing 20 Evento imutável com versionamento 14 Teoria por trás da Escolha de Tecnologias 141 Python para Analytics Python oferece ecossistema científico maduro NumPy Pandas scikitlearn e bindings de alto desempenho CFortran para operações numéricas intensivas 1 from sklearnensemble import IsolationForest 2 17 3 class DetectorAnomalias 4 def initself contamination 01 seed 42 5 selfmodelo IsolationForest 6 nestimators 100 contaminationcontamination randomstate seed 7 Listing 21 Isolation Forest complexidade e reprodutibilidade 142 Nodejs para Ingestão de Dados Modelo event loop com IO não bloqueante maximiza throughput de conexões simultâneas 1 const processarLeiturasSensor dados 2 new Promise resolve 3 setImmediate 4 const resultado analisarDadosdados 5 resolveresultado 6 7 Listing 22 Processamento assíncrono sem bloquear o loop 143 JavaSpring Boot para Notificações Transações ACID e ecossistema corporativo consolidado são adequados a SLAs rígidos de alerta 1 Service 2 Transactional 3 public class NotificationService 4 Retryablevalue Exceptionclass maxAttempts 3 5 public void enviarNotificacaoCritica Alerta alerta 6 persistir e notificar de forma c o n f i v e l 7 8 Listing 23 Transação e retentativas declarativas 144 Go para Gestão de Dispositivos Concorrência leve goroutines baseada em CSP adequada a milhares de conexões 18 1 func monitorarDispositivos devs Dispositivo 2 for d range devs 3 go funcdev Dispositivo monitorardev d 4 5 Listing 24 Goroutines para monitorar múltiplos dispositivos 15 Fundamentação dos Algoritmos de Machine Lear ning 151 Isolation Forest para Anomalias Ideia central anomalias são mais fáceis de isolar O escore pode ser expresso como sx 2 Ehx cn onde Ehx é o caminho médio nas árvores e cn é o caminho médio esperado numa BST de tamanho n Complexidade On log n escalável para séries de sensores Robustez pouco sensível a scaling e outliers 152 Random Forest para Manutenção Preditiva Ensemble de árvores com bagging e amostragem de atributos Reduz variância sem aumentar muito o viés Importância de variáveis auxilia interpretação de falhas 1 from sklearnensemble import RandomForestClassifier 2 3 modelo RandomForestClassifier 4 nestimators 200 maxdepth 10 minsamplessplit 5 randomstate 42 5 Listing 25 Hiperparâmetros para robustez e interpretabilidade 19 16 Princípios de Design e Padrões Arquiteturais 161 SOLID na Prática 1 class ValidadorLeitura 2 def validarself dados 3 4 class ProcessadorLeitura 5 def initself validador ValidadorLeitura 6 selfvalidador validador 7 def processarself leitura 8 selfvalidadorvalidarleitura 9 return selfnormalizarleitura Listing 26 SRP e DIP aplicados 162 Factory e Observer 1 class FabricaSensores 2 staticmethod 3 def criartipo cfg 4 mapa temperatura SimuladorTemperatura 5 pressao SimuladorPressao 6 vibracao SimuladorVibracao 7 if tipo not in mapa raise ValueErrorTipo n o suportado 8 return mapatipo cfg Listing 27 Factory para sensores 1 class Sujeito 2 def initself selfobs 3 def anexarself o selfobsappendo 4 def notificarself evento 5 for o in selfobs oatualizarevento Listing 28 Observer para notificação de eventos 20 17 Teoria da Simulação de Sensores IoT 171 Modelos Matemáticos Temperatura modelo simplificado dTdt αTamb T β sinωt η η N0 σ² delta alphaTamb Tatual ciclo betamathsinomegatimetime ruido randomgauss0 sigma Tatual Tatual delta ciclo ruido Listing 29 Atualização da temperatura com deriva ciclo e ruído Vibração análise espectral vt sum from k1 to K of Ak sin2π fk t ηt Harmônicos fk kf1 indicam desbalanceamentodesalinhamento 172 Contextos Industriais Linha de produção sensores de temperatura vibração e energia criticidade alta coleta de 1 em 1 segundo Ambiente de trabalho qualidade do ar e conforto térmico criticidade média coleta a cada 60 segundos 18 Fundamentação dos Testes e Qualidade 181 Pirâmide de Testes Estratégia econômica de cobertura 70 unitários rápidos isolados 20 integração interfaces entre componentes 10 E2E fluxos completos 182 TDD RedGreenRefactor 1 def testcalcularoee 2 oee CalculadoraOEE calcular operacao400planejado 480 ok95total100 3 assert oee 7917 Listing 30 Exemplo sucinto de TDD 183 Cobertura de Código Meta pragmática de 95 boa correlação com redução de defeitos evitando custos crescentes além desse patamar 19 Teoria DevSecOps e Pipeline de CICD 191 Segurança à Esquerda ShiftLeft Automação de checagens desde o início reduz custo de correção 1 jobs 2 lint 3 tests 4 security 5 steps 6 run bandit r src 7 run safety check 8 run trivy fs Listing 31 Pipeline com etapas de qualidade e segurança 192 Laços de Feedback Estágios ordenados por tempovalor lint testes build segurança deploy maximizam feedback útil por unidade de tempo 20 Modelagem de Dados e Persistência 201 Persistência Poliglota PostgreSQL transacionais ACID InfluxDB séries temporais MongoDB documentos flexíveis 22 Redis cachesessões de baixa latência 202 Normalização vs Desnormalização Timeseries desnormalizado 1 SELECT meantemperature AS avgtemp maxtemperature AS maxtemp 2 FROM sensorreadings 3 WHERE time now interval 1 hour 4 GROUP BY time 5m sensorid Listing 32 Agregações por janela temporal Transacional normalizado 1 CREATE TABLE usuarios 2 id SERIAL PRIMARY KEY email VARCHAR 255 UNIQUE NOT NULL 3 4 CREATE TABLE alertas 5 id SERIAL PRIMARY KEY usuarioid INT REFERENCES usuariosid 6 criadoem TIMESTAMP DEFAULT now 7 Listing 33 Integridade referencial em PostgreSQL 21 Aspectos de Segurança e Conformidade 211 Defesa em Profundidade Múltiplas camadas rede WAFVPN aplicação MFARBAC dados TLSAES 256backup operação SIEMIR 212 Privacidade e LGPDGDPR Privacy by design minimização anonimização e direito ao esquecimento 1 def anonimizard 2 return timestamp dtimestamp valor dvalor tipo dtipo Listing 34 Anonimização conservando utilidade analítica 23 22 Considerações de Performance e Escalabilidade 221 Escalonamento Horizontal Horizontal scaling com Kubernetes HPA load balancing e particionamento sharding por sensorid 222 Otimização de Banco de Dados 1 CREATE INDEX idxreadingstime ON sensorreadings timestamp DESC 2 CREATE INDEX idxreadingssensortime ON sensorreadings sensorid timestamp DESC Listing 35 Índices alinhados ao padrão de consulta 223 Cache e Localidade 1 POLICIES 2 sensorconfig ttl 3600 3 recentreadings ttl 60 4 analyticsresults ttl 300 5 Listing 36 Políticas de cache por volatilidade 23 Conclusões Teóricas 231 Decisões Fundamentadas Cada decisão microserviços tecnologias algoritmos testes segurança scaling foi tomada com base em princípios consolidados de engenharia de software e sistemas distribuídos 232 Tradeoffs Complexidade vs flexibilidade microserviços elevam complexidade operacional mas habilitam escalabilidade e independência tecnológica Disponibilidade vs consistência escolha por domínio CAP reflete necessidades industriais 24