¿Cuál es el equivalente de software de una orden de cambio de ingeniería?


14

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?


1
Depende. En el mundo de los dispositivos médicos, las pautas de la FDA lo llaman ECR y ECO, por lo que también lo llamamos así. Pero en realidad, especialmente para las industrias menos reguladas o con una gestión más "ágil", no existe un concepto de ECO sino de ECR. Cuando se envía CR, el trabajo comenzaría. El CO generalmente se da implícitamente cuando se otorga "enviar aprobar" a un cambio. Las cosas vinculadas al CO, como el análisis de riesgos, también son opcionales o inexistentes.
user3528438

Siempre lo llamé un "escape".
Hot Licks

Respuestas:


29

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.


1
Sí, así es como lo hizo mi antigua empresa. Las versiones de firmware eran solo otro elemento en la lista de materiales para la programación de fábrica. Pudimos actualizar nuestro software en el campo, por lo que tendríamos versiones para correcciones de errores / trabajos personalizados y también se les asignaría un número de pieza (simplemente no se menciona en la lista de materiales).
shenles

Esto responde a la pregunta si el proyecto en cuestión es un producto con software como componente. Pero, ¿y si el proyecto en sí mismo es software?
user3528438

2
@ user3528438 - entonces la pregunta estaría fuera de tema aquí en el SE de ingeniería eléctrica, ¿no?
Brhans

6

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):

  • Compruebe si se puede instalar el parche / actualización de software (por ejemplo, versiones del sistema operativo, versión actual instalada, etc.)
  • De lo contrario, se mostrará un mensaje y el parche / actualización se detendrá.
  • Si se puede instalar, se realizarán los archivos que deben convertirse (esto a veces es parte de la aplicación principal que se debe parchar / actualizar).
  • Los nuevos archivos se actualizan o agregan a la aplicación para actualizarlos / parchearlos.
  • Se muestran las notas de la versión (opcionalmente).
  • La aplicación se inicia (opcionalmente).

@MichaelKeijzers El software del que estoy hablando es el firmware que se está programando en un microcontrolador de metal desnudo. Significa que todas las partes futuras tendrán el nuevo software que es diferente a un parche o actualización OTA. ¿Se aplica lo anterior? (He editado la pregunta en función de sus comentarios)
SeanJ

1
Creo que todavía se aplica. Sin embargo, el firmware actualizado es parte de la actualización del parche / software que describo. Entonces, en las empresas en las que trabajé, los parches / actualizaciones creados no solo actualizan el firmware de los chips (principalmente a través del software del controlador), sino que también se realizan los pasos anteriores.
Michel Keijzers

6

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).


4

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:

  1. Decides hacer un cambio.

  2. Crea un problema en el rastreador de problemas.

  3. Crea una rama para abordar el problema.
  4. Realizas algunos cambios de software.
  5. Tiene sus cambios revisados ​​por pares según la política de la compañía
  6. Emite una solicitud de extracción y vuelve a fusionarse en la rama de desarrollo.
  7. Cierras el problema.

3
Esto responde a la pregunta equivocada. La pregunta de los OP está en la primera línea de su ejemplo: ¿cuál es el nombre del proceso de "decidir hacer un cambio"
Cuál

4

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.


3

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.