RANGO 0 Fundamentos, Computación, Algoritmia y Linux
▸ Pensamiento y Solución Algorítmica: descomposición de problemas, reconocimiento de patrones, abstracción y pseudocódigo.
▸ Arquitectura de Computadores: CPU, RAM, jerarquía de cachés (L1, L2, L3) y modelo visual de memoria.
▸ Representación de Datos: sistema binario y hexadecimal, bits y bytes.
▸ Lógica Pura: tablas de verdad y lógica booleana aplicada a decisiones.
▸ Linux Essentials: filesystem, permisos, procesos, pipes, signals, SSH y tmux.
▸ Fundamentos de Redes: IPs, puertos, TCP vs UDP, ciclo Request/Response, modelo Cliente-Servidor.
▸ La Terminal y la Compilación: preprocesador, g++, linker y make.
🎯
Hito de Proyecto
Diseño del flujo lógico del ECU Gateway Simulator en papel y pseudocódigo: qué es una ECU, qué señales maneja (velocidad, RPM, temperatura). Configuración del entorno de desarrollo real en Linux.
RANGO I Sintaxis, Control de Flujo y Herramientas Base
▸ Entorno Profesional: VS Code / Neovim, compiladores y linters.
▸ Flujo de Trabajo Moderno: Git y GitHub — commits estructurados, ramas y pull requests.
▸ Sintaxis y Tipos de Datos: variables, constantes, tipado fuerte.
▸ Operadores y Expresiones: aritmética, lógicos y relacionales.
▸ Estructuras de Control: condicionales y bucles.
▸ Debugging I: depurador (IDE / gdb), call stack, stepping, variables watch.
🎯
Hito de Proyecto
ECU Gateway Simulator v0.1 — CLI con ciclo REPL básico que acepta comandos SEND_FRAME, READ_SIGNAL, STATUS y almacena señales vehiculares simuladas en variables simples en memoria.
RANGO II Modularidad, Datos Lineales y Arquitectura Temprana
▸ Arquitectura de Software I: separación por capas (CLI / Lógica de Señales / Persistencia). Alta Cohesión y SRP.
▸ Modularidad en C++: headers (.hpp) y sources (.cpp). Prevención de dependencias circulares.
▸ Funciones: paso por valor, referencia y referencia constante. Sobrecarga.
▸ Manejo de Texto: std::string avanzado y streams.
▸ Colecciones: arreglos estáticos vs std::vector. push_back vs emplace_back, reserve().
▸ Estructuras y TDA: struct, pilas (LIFO) y colas (FIFO) implementadas manualmente.
▸ Observabilidad: logging estructurado, niveles INFO/WARN/ERROR/DEBUG y timestamps.
🎯
Hito de Proyecto
ECU Gateway Simulator v0.2 — Refactorización modular. Pila de Deshacer (Undo) para revertir comandos enviados. Generación del primer archivo gateway.log con timestamp, severidad y origen.
RANGO III POO Profesional, RAII y Manejo Real de Errores
▸ POO: clases, objetos, atributos, métodos y estado.
▸ El Núcleo de C++ (RAII): Resource Acquisition Is Initialization, ownership y lifetime.
▸ Ciclo de Vida de Clases: constructores con listas de inicialización y destructores.
▸ Encapsulamiento: modificadores de acceso y enum class.
▸ Polimorfismo: herencia vs composición. Clases abstractas, interfaces y funciones virtuales.
▸ Manejo de Errores Profesional: errores recuperables vs fatales, propagación y fallback.
▸ Debugging II: breakpoints condicionales y rastreo profundo de memoria.
🎯
Hito de Proyecto
ECU Gateway Simulator v0.3 — Clase core SignalEngine con RAII. Inyección de errores forzados (señales fuera de rango: velocidad >300 km/h, temperatura >150°C) demostrando tolerancia a fallos sin crash.
RANGO IV Rendimiento, Move Semántica, Memoria y Seguridad
▸ Memoria Dinámica: Stack vs Heap, new/delete (nivel teórico).
▸ C++ Moderno: Smart Pointers — std::unique_ptr y std::shared_ptr.
▸ Move Semantics: lvalues/rvalues, std::move, Regla de 3 y Regla de 5.
▸ Performance Engineering: costo de copias, Cache Locality, std::chrono, Latency vs Throughput, Google Benchmark.
▸ Secure Coding: validación de entradas, prevención de integer overflow y buffer overflows.
▸ Herramientas de Industria: CMake Presets, Ninja, Doxygen, Valgrind y AddressSanitizer (ASan).
🎯
Hito de Proyecto
ECU Gateway Simulator v0.4 — Move Semantics para evitar copias masivas de buffers de señales. Reporte de benchmarking de latencia antes/después. Cero fugas con Valgrind/ASan. Build system definitivo con CMake + Ninja.
RANGO V STL Avanzada, Programación Funcional y Persistencia
▸ Eficiencia Algorítmica: complejidad y notación Big O.
▸ Programación Funcional: lambdas, functors, std::function. Iteradores y algoritmos STL.
▸ Contenedores Avanzados: std::map, std::set, std::unordered_map, std::stack, std::queue.
▸ Persistencia: lectura/escritura de archivos (texto y binario).
▸ Motor Relacional: integración de SQLite3.
▸ Testing: Unit Testing con Google Test cubriendo el SignalEngine y la capa de persistencia.
🎯
Hito de Proyecto
ECU Gateway Simulator v0.5 — Persistencia dual: metadatos y configuración de señales en SQLite3, buffers históricos numéricos en formato binario propio (.gwbin). Tests unitarios añadidos.
RANGO VI Arquitectura Avanzada, Sistemas Concurrentes y Redes
▸ Arquitectura de Software II: inversión e inyección de dependencias, DTOs, patrón repositorio, boundaries.
▸ Documentación de Sistemas: diagramas de arquitectura, sequence diagrams, documentación de APIs y RFCs.
▸ Concurrencia: std::thread, Race Conditions, Mutex, std::lock_guard, std::async, std::future, Thread Pool.
▸ Networking Aplicado: Sockets TCP en Linux. Manejo de caídas de red. Arquitectura de servidores concurrentes.
▸ Diseño de Protocolos: JSON vs Binario, Framing en TCP. Prevención de deserialización insegura.
🎯
Hito de Proyecto
ECU Gateway Simulator v0.6 — Evolución a Servidor TCP concurrente. Múltiples clientes envían frames estructurados bajo protocolo binario documentado en RFC por el alumno. Thread Pool para enrutamiento.
RANGO VII-A Dominio Automotriz, Protocolos y Comunicación Vehicular
▸ Arquitectura ECU: hardware, BSP, middleware y application layer. AUTOSAR Classic vs Adaptive.
▸ CAN Bus Profundo: física del bus, tramas, arbitraje. SocketCAN en Linux, vcan0 virtual, parser de tramas CAN con validación de CRC.
▸ CAN FD: motivación, diferencias de frame y casos de uso.
▸ Protocolos Complementarios: LIN Bus, SOME/IP (serialización, service discovery), DoIP para diagnóstico.
▸ Comunicación Cliente-Servidor: implementación de servicio SOME/IP con vsomeip. Diseño de interfaces: métodos, eventos y campos.
▸ Toolchain Industrial: Vector CANalyzer/CANoe — captura y análisis de tráfico CAN. Correlación con simulador vcan0.
🎯
Hito de Proyecto
ECU Gateway Simulator v0.7 — Interfaz vcan0 virtual, recepción y parseo de tramas CAN con validación CRC, exposición de señales como servicio SOME/IP con vsomeip. Tráfico capturado en CANoe. RFC del protocolo CAN entregado.
RANGO VII-B RTOS, Safety-Critical Code y Release Automotriz
▸ Programación en Tiempo Real con FreeRTOS: scheduling, prioridades, sincronización con mutex/semáforos/queues, priority inversion.
▸ Restricciones de entorno embebido: sin heap dinámico, sin excepciones, stack limitado. Emulación ARM Cortex-M con QEMU.
▸ ISO 26262 y Functional Safety: ASIL A-D, fault detection, fault tolerance, safe states, watchdogs y health monitoring.
▸ MISRA C++ 2023: reglas críticas, refactorización de código propio, clang-tidy con perfil automotriz.
▸ Testing Safety-Critical: cobertura MC/DC, SIL sobre QEMU, inyección de fallas controlada.
▸ Release Engineering Automotriz: versionado automotriz, artefactos de release (binario, changelog, reporte MISRA), GitHub Actions con cross-compilación ARM.
🎯
Hito de Proyecto
ECU Gateway Simulator v1.0.0 — Migración de tareas críticas a FreeRTOS sobre QEMU emulando ARM Cortex-M. Core reescrito bajo MISRA C++ 2023. Reporte MC/DC y fault injection tests. Release v1.0.0 publicada en GitHub con CI/CD en verde.
RANGO VII-C Diagnóstico, Cybersecurity, DDS y ADAS Básico
▸ UDS (ISO 14229): arquitectura del protocolo, servicios críticos en C++ (ReadDataByIdentifier, WriteDataByIdentifier, SecurityAccess, ECU Reset, RoutineControl). Flujo completo de flashing y Negative Response Codes.
▸ DDS — Data Distribution Service: modelo pub/sub, QoS policies (Reliability, Durability, Deadline), implementación con Fast DDS. DDS en AUTOSAR Adaptive.
▸ Cybersecurity Automotriz (ISO/SAE 21434): TARA, SecOC con MAC en tramas CAN, gestión de claves y HSM, Secure Boot conceptual.
▸ ADAS Básico: arquitectura de sensores (cámara, radar, LiDAR), procesamiento de point clouds en C++, Sensor Fusion con filtro de Kalman extendido (EKF) con Eigen.
▸ ROS 2 con rclcpp: nodos, topics y conexión entre el ecosistema robótico y automotriz.
▸ Ethernet Automotriz Avanzado: VLAN, QoS, TSN (IEEE 802.1AS) y zona-based architecture.
🎯
Hito de Proyecto
ECU Gateway Simulator v1.1.0 — Capa de diagnóstico UDS funcional, capa SecOC que autentica tramas CAN con MAC, nodo ROS 2 que publica señales como topics para pipeline EKF con Eigen. TARA simplificado. Release v1.1.0 publicada con todos los gates CI/CD en verde.
Información del programa
Temario
Temario · C++ Junior Automotriz
C++ para la Industria Automotriz Mexicana
💡 El lenguaje que controla cada ECU en los autos que Mexico fabrica