Misra C: Desarrollando Software seguro en Automoción

No es necesario confirmar el impacto que ha tenido el desarrollo tecnológico en nuestra sociedad. Diversos sectores que tienen una importante influencia en nuestra vida cotidiana han encontrado la manera de adaptar este avance a su manera de proveer bienes y servicios. Hoy en día se pueden utilizar aplicaciones móviles para transferir dinero desde prácticamente cualquier parte del mundo. Las personas pueden recorrer países enteros sin necesidad de mapas o guías de cualquier tipo. Y unos de los referentes principales de este cambio han sido los medios de transporte, específicamente los automóviles. 

 

Enfocando la situación actual en México en cuanto a transporte automóvil (sin contar las motocicletas u otro tipo de transporte), en agosto de 2022 el INEGI marca cifras de 47.738.165 millones de vehículos en circulación, divididos en automóviles, camiones de pasajeros y camiones de carga. Los automóviles ocupan el 74.81% de esta cifra, con 35,717,019 millones de unidades. Debido al uso creciente de los vehículos terrestres en muchos países del mundo, también se impulsó el desarrollo de funcionalidades que proporcionaran más seguridad y confort a los usuarios en este tipo de transporte.

 

Es aquí donde entra la necesidad de implementar sistemas con capas más robustas de seguridad en su arquitectura interna, lo cual se pensó en su momento (y se sigue haciendo hoy en día) usando unidades de control electrónicas o ECU por sus siglas en inglés Electronic Control Unit. Mediante la programación de microcontroladores incorporados en las ECU’s es que estos dispositivos electrónicos son interconectados con sensores y actuadores que permiten ejecutar sus comandos.

 

Hoy en día se pueden tener ECU’s encargadas de controlar las luces intermitentes, hasta las inyecciones de combustible en el motor. Los automóviles actuales pueden contar con 100 o incluso más ECU’s incorporadas en su interior. Debido al creciente uso de las ECU en los automóviles surgió la importancia de contar con medidas de seguridad estándar, tanto en el software como en el hardware, en cada uno de estos sistemas para poder brindar garantías más confiables en los vehículos producidos por las automotrices.

 

Cabe subrayar que en este movimiento surgieron varias iniciativas y guidelines (directrices) que siguen implementándose en la actualidad. Una de ellas fue MISRA, la cual empezó en los 90’s como un proyecto en el programa “SafeIt” del gobierno del Reino Unido, en donde se desarrollaron pautas para el desarrollo de SW embedido en vehículos terrestres.

 

En noviembre del 94 se publicaron las directrices de desarrollo para software enfocado en vehículos “Development guidelines for vehicle based software”, el cual fue muy significativo, ya que representaba el consenso de la industria y también el primer acercamiento de la industria automotriz a la seguridad funcional, aproximadamente 10 años antes de que se empezara trabajar en la ISO 26262, la cual es una norma internacional encargada de definir el marco de la seguridad funcional en los vehículos terrestres de motor. Después de este proyecto, MISRA siguió sirviendo como un referente en el campo del software para la automoción. Desde el 2021 MISRA es una entidad manejada sin fines de lucro.

 

Respecto a MISRA C, se creó originalmente con la intención de cubrir la necesidad de tener un conjunto restringido de un lenguaje de programación estandarizado identificado en los guidelines publicados en el 94, dentro del contexto del uso emergente del lenguaje C para el desarrollo de software embebido en aplicaciones de automoción. Hoy en día, MISRA C es mundialmente utilizado como referente en el desarrollo de SW en lenguaje C, en donde la seguridad y la calidad del código son imprescindibles. También se publicó MISRA C++ en junio del 2008, para cubrir el creciente uso de C++ en ciertas aplicaciones. Futuros trabajos en MISRA C y MISRA C++ se seguirán haciendo para extender el soporte a nuevas versiones del lenguaje, así como a posibles nuevas características que pueda cubrir.

 

¿Pero, qué beneficios trajo Misra C a la hora de desarrollar software seguro?

Respecto al software, permitió que la portabilidad creciera enormemente (respecto al objetivo de cumplir normas de Misra C). Los ingenieros idearon estrategias de seguir estas normas en la implementación del SW. Se desarrollaron herramientas que pudieran detectar anomalías en el código, tales como los analizadores de código estáticos, los cuales se pueden configurar para poder detectar de manera rápida y confiable todas las anomalías o violaciones a las reglas de Misra C presentes en un archivo o proyecto. Actualmente existen muchas herramientas de este tipo que se adecuan a todo tipo de necesidades.

Esto no sólo supone un avance en la velocidad de la implementación de las medidas de seguridad en el código, sino que también permite que, en una empresa (desde la perspectiva de la gestión), el traspaso de estas herramientas se pueda hacer de manera más uniforme no solamente en un mismo proyecto, sino que también se puede extender a varios proyectos, ahorrando así recursos de una manera bastante eficiente.

 

¿Y por qué el énfasis en robustecer estos sistemas en la Automoción?

Citando a Marius Mihailovici, el director general de Porsche Engineering Rumania, en un artículo publicado en diciembre de 2021, sólo para darse una vaga idea: Un automóvil moderno tiene aproximadamente 100 millones de líneas de código. Un avión Boeing 787 dreamliner solo tiene 14 millones de líneas. Esto debido a la cantidad de funcionalidades que los coches incorporan hoy en sus líneas. Conectar smartphones al automóvil, carga inalámbrica de celulares en automóvil, sistemas de entrenamiento y navegación, etc. hacen que el software que se implementa en los vehículos se mucho más complejo, y aniade una carga extra al tener que desarrollar más código para monitorear estas funcionalidades, y crear otras que se encarguen meramente de controlar los indicadores de seguridad en el vehículo, para así permitir que los usuarios lleguen sanos y salvos a su destino cada vez que decidan manejar un coche.

 

Rogelio Velázquez Demetrio

Licenciatura en Ingeniería en Mecatrónica, generación 2020.

LinkedIn: https://www.linkedin.com/in/rogelio-velazquez-a550a3178

 

 

Fuentes de apoyo:

https://medium.com/next-level-german-engineering/porsche-future-of-code-526eb3de3bbe

https://www.misra.org.uk/

https://www.inegi.org.mx/temas/vehiculos/

Artículos Relacionados