Tenemos un dispositivo en el que estamos considerando realizar una actualización de software en un microcontrolador de metal desnudo. La nueva imagen se programaría en todos los productos futuros.
Si tuviera que cambiar un componente en el dispositivo, tendría que completar una orden de cambio de ingeniería.
¿Existe un procedimiento industrial equivalente al cambiar el software?
Respuestas:
Todavía lo llamaría un ECO.
Si el firmware está programado en el micro en la fábrica, entonces ese firmware y su versión específica deben ser una línea de pedido en la lista de materiales.
Cambiar el firmware significa cambiar la lista de materiales.
Cambiar la lista de materiales requiere un ECO.
Después de eso, una actualización de campo del firmware debe seguir un proceso similar al que se seguiría si se requiriera una modificación del hardware para una unidad en el campo.
Entonces, si llama a eso un ECO, entonces esto también es un ECO.
fuente
Normalmente, un cambio de software se denomina parche o (actualización de software). Y hasta donde yo sé (dependiendo de la compañía) los procedimientos se denominan parche o procedimiento de actualización de software.
Sin embargo, en la mayoría de los casos, las actualizaciones de software no son más que ejecutar una aplicación especial que se encarga de la instalación y todas las conversiones necesarias, etc. son parte del parche.
Por lo tanto, a diferencia del intercambio electrónico de piezas, normalmente no se debe desinstalar o cambiar ningún software actual, ya que forma parte del software del parche.
Además, en caso de que haya restricciones o condiciones sobre cuándo el parche / actualización de software puede o no instalarse, se comprobará en el parche mismo y solo se instalará cuando sea válido para la instalación (o al menos, debería funcionar de esa manera )
Entonces, en principio, la actualización del parche / software hace muchas cosas, como (posiblemente no completa):
fuente
Los términos que uso normalmente son Solicitud de cambio para cosas que deben cambiarse debido a requisitos modificados, e Informe de problemas para cosas que deben cambiarse debido a errores.
Estos se recopilan y luego se programan para ciclos de actualización específicos. Si un ciclo es solo interno, se llama Milestone , si se implementa en clientes, se llama Release .
Una línea de tiempo típica tiene algunos hitos antes del lanzamiento, llamada Release Candidate que se somete a pruebas exhaustivas, y cualquier error encontrado allí genera más informes de problemas que nuevamente se programan para el próximo hito si son lo suficientemente importantes, o un lanzamiento posterior si no.
También es posible crear una sucursal que solo aborde relaciones públicas específicas en respuesta a las quejas de los clientes, con una versión separada que no tenga más cambios, con la esperanza de que se introduzcan menos errores aquí. Por lo general, esto solo se hace si el esfuerzo para las actualizaciones es lo suficientemente bajo (por ejemplo, porque las actualizaciones se pueden instalar simplemente conectando una memoria USB con un archivo con un nombre determinado).
fuente
Respuesta corta: está integrado en el sistema de versiones de software.
Respuesta larga:
El software tiende a cambiar mucho más rápidamente que el hardware. Por lo general, el software utiliza algún tipo de sistema de control de versiones (VCS), como el popular Git. La mayoría de las compañías de software con las que he trabajado usan un VCS para rastrear los cambios en el software, y cada confirmación explica el razonamiento detrás del cambio. Algunos también usan un rastreador de problemas, que rastrea errores conocidos, mejoras y demás. Por lo general, hay un proceso en el lugar donde el desarrollo ocurre en una rama, luego ese desarrollo se prueba antes de fusionarse en una rama "principal" (lanzamiento). Esto tiende a ser mucho más eficiente para la alta frecuencia de cambios en el desarrollo de software en comparación con el tempo más lento en el hardware. La implementación y el proceso específicos de esto varían de una compañía a otra, y a menudo están influenciados por un estándar para fines de control de calidad (ISO9001, AS9100D, etc.).
Un ejemplo:
Decides hacer un cambio.
Crea un problema en el rastreador de problemas.
fuente
En una configuración de la industria correctamente ejecutada, el firmware que se actualizará en el micro es en sí mismo una parte y tiene un número de parte para ese ejecutable específico (archivo hexadecimal o lo que sea). Si desea cambiar el firmware, es un cambio a la lista de materiales (BOM). Y eso necesita un ECO de la misma manera que si quisieras reemplazar un chip.
Es realmente tan simple como eso.
Hay un corolario en esto. Si su firmware no tiene un número de pieza y no está en la lista de la lista de materiales y, por lo tanto, no está controlado, entonces su proceso de calidad probablemente necesite mejorar. Si se supone que debe cumplir con ISO-9001 o algo similar, esta es una brecha definitiva en su proceso que debe corregirse.
fuente
Las actualizaciones de software se llaman parches o son lo que son "actualizaciones de software". Siempre pregunto a los ingenieros de software si la unidad se actualiza "a la última versión".
Lo ideal es que las partes interesadas "firmen" el control de versiones y lo prueben antes de lanzarlo a producción, pero la mayoría de las veces esta práctica solo ocurre la mayoría de las veces.
fuente