Vea cómo la solución de calidad continua de Parasoft ayuda a controlar y administrar los entornos de prueba para ofrecer software de alta calidad con confianza. Regístrese para la demostración >>
La conducción autónoma es un espacio muy competitivo y la velocidad del desarrollador es un mantra. Quien primero pueda llevar un producto certificado al mercado tendrá una ventaja significativa sobre la competencia, por lo que es fácil para los desarrolladores ver el análisis estático y otras iniciativas de calidad como un obstáculo. Especialmente porque el campo de la conducción autónoma está hambriento de talento, las organizaciones están contratando desarrolladores inteligentes, incluso si no tienen experiencia en seguridad. Pero los desarrolladores que provienen de un entorno sin una cultura de seguridad funcional no conocen todos los procesos de calidad que se requieren para el desarrollo de software crítico para la seguridad. Esto puede hacer que la aceptación cultural sea un desafío.
A veces se siente que construir un consenso interno para las prácticas orientadas a la calidad requiere una maestría en Psicología, o las habilidades de un negociador capacitado ... En proyectos anteriores, fui responsable de introducir el análisis estático y el cumplimiento de los estándares de codificación AUTOSAR C ++ 14 como un método sostenible. proceso. El software de conducción autónoma es muy innovador y los componentes de software que se utilizan para ello se desarrollan utilizando C ++ moderno. Con eso en mente, el estándar de codificación AUTOSAR C ++ 14 es el estándar más apropiado para el software de conducción autónoma porque es compatible con C ++ moderno y fue creado para un desarrollo orientado a la seguridad.
Para convencer a los no convencidos, he realizado múltiples presentaciones en las que se discutieron múltiples aspectos diferentes. Pero aún así, incluso con todas estas discusiones y acuerdos, algunos desarrolladores se resisten a analizar todo el código que crean. Estos son algunos de los puntos principales en los que me enfoco para implementar los procesos correctos:
La tecnología de conducción autónoma se encuentra en una fase muy temprana. Gran parte del código fuente creado es solo un prototipo para probar nuevas ideas. Algunos desarrolladores no quieren “perder” el tiempo haciéndolo compatible con el estándar de codificación, solo quieren escribir algo rápidamente y probarlo. Una historia típica que he escuchado es: "Solo quiero probar este nuevo algoritmo, si funciona, reescribiré el código para hacerlo limpio". Esto suena bastante inocente, pero la realidad es que solo se trata de una deuda técnica creciente.
Cuando pasamos de un prototipo a otro, normalmente llevamos mucho código, estadísticamente puede ser hasta el 80% del código. Así que no podemos darnos el lujo de crear un prototipo de algo con un código incorrecto y luego arreglarlo más tarde, porque desde el principio, sabemos que no tendremos tiempo para eso. Entonces, incluso si algo es un prototipo, el código debe ser compatible porque el producto final contendrá una cantidad significativa de código que se creó inicialmente como un prototipo.
Si en lugar de concentrarse en hacerlo ahora en lugar de hacerlo más tarde, puede concentrarse en hacerlo ahora para evitar pasar una cantidad de tiempo desconocida al final, los desarrolladores empiezan a verlo como una mejora del proceso en lugar de introducir una ralentización. Si puede adaptar el proceso de manera eficiente al flujo de trabajo del desarrollador sin disminuir la velocidad o la creatividad, será mucho más fácil trabajar con él. Es mucho más fácil mantener algo ordenado y limpio sobre la marcha, que limpiar un gran desorden al final. La construcción de prácticas consistentes y sostenibles para escribir código compatible lo ayudará a encontrar menos desorden en el futuro.
Pero incluso si puede introducir con éxito un proceso de cumplimiento de estándares de codificación desde el principio, inevitablemente ya habrá una cantidad (significativa) de código que ya fue creado por el equipo, y algo que fue heredado. Y mientras selecciona la herramienta de análisis estático (prueba Parasoft C / C ++) y elige el estándar (AUTOSAR), mientras tanto, el equipo está creando una gran cantidad de código sin ninguna política de cumplimiento. Por lo tanto, es importante crear también una política para el código heredado. Dos grandes políticas son:
Con estas estrategias, puede abordar el código heredado, introducir código nuevo y continuar manteniendo el lugar ordenado.
Para tener éxito en la adopción de procesos de cumplimiento de estándares de codificación y análisis estático en toda la organización de desarrollo, se beneficiará de hacer lo siguiente:
Ijaz es un ingeniero de seguridad funcional con más de 14 años de experiencia en desarrollo / prueba de software. Su experiencia reciente se ha centrado en la tecnología de conducción autónoma, liderando el esfuerzo para implementar ISO 26262 y la construcción de escenarios simulados para probar rigurosamente la tecnología de conducción autónoma.