Los usuarios de computadoras probablemente estén más familiarizados con el software que se ejecuta en sus sistemas operativos. Sin embargo, es posible que no tengan tanta experiencia con el software que regula el funcionamiento de ciertos componentes sofisticados de hardware. Estos componentes son programados por profesionales llamados ingenieros de software embebido.
Los componentes de hardware que realizan funciones específicas y especializadas se denominan sistemas integrados. Estos actúan como computadoras dentro de las computadoras, con sus propios procesadores y memoria. Los sistemas integrados toman datos de componentes de hardware específicos, ejecutan su programación y luego pasan datos a otras piezas de hardware en la máquina. El papel de un sistema embebido podría ser tan complejo como convertir datos de una antena interna a un formato de datos que el resto del dispositivo pueda usar, o tan simple como transmitir señales específicas cuando se activa con un botón. Un ingeniero de software integrado crea los programas que ejecutan estos dispositivos.
El trabajo de un ingeniero de software integrado es similar al de los ingenieros de software que crean programas para computadoras de escritorio. El código fuente para convertir datos en un formato a otro es el mismo en una computadora personal que en un sistema integrado. La diferencia entre el trabajo del ingeniero de software incorporado es agregar código adicional para que el programa se ejecute en el hardware especializado que actúa como sistema integrado.
Los sistemas operativos en los que se ejecutan las aplicaciones de escritorio incluyen una variedad de software de controlador. Esto es apropiado para estos sistemas debido a la gama de hardware que podría estar en la computadora y el software que un usuario podría ejecutar. Los sistemas integrados son independientes y solo ejecutan un solo programa. Por esta razón, el programador solo necesita cargar un número limitado de controladores, y el programa mismo, en la memoria limitada del dispositivo. El trabajo del ingeniero de software incorporado generalmente incluye determinar el número más pequeño de controladores que el programa necesitará para operar el dispositivo integrado.
Después de que un ingeniero de software incorporado termina de programar un dispositivo, su trabajo debe documentarse. Los sistemas integrados nunca se usan solos, sino como parte de un proyecto más grande. Para hacer uso del dispositivo, otros ingenieros necesitan conocer información como:
qué datos espera el sistema integrado
qué formato de datos espera su programación
cómo reaccionará el dispositivo a diferentes entradas
el formato de los datos que generará el dispositivo
Esta información se incluye luego en la documentación técnica que los ingenieros de software integrados producen ellos mismos, a menudo en forma de manual. A veces, los escritores técnicos, en lugar de los ingenieros reales, crean dichos manuales, a partir de las notas que proporcionan los ingenieros de software. Tener documentación para consultar es invaluable para los usuarios.