El alcance de un ingeniero de software es diferente en comparación con un ingeniero electrónico. En general, un ingeniero de software no necesita conocer la electrónica, aunque pueda tener el conocimiento (como en el caso de alguien que diseña sistemas integrados). Del mismo modo, un ingeniero electrónico no necesita saber programar.
La ingeniería de software es bastante clara en el sentido de que su alcance depende del conocimiento del dominio con el que interactúa el software. Puede o no implicar la interacción con cualquier hardware.
La programación de software integrada requiere el conocimiento básico de la electrónica y el hardware involucrados; el lado de bajo nivel de los códigos de programa que interactúan con los microprocesadores, microcontroladores, interrupciones de hardware, registros de periféricos, señales de reloj, puertas digitales, etc. Alguien con experiencia en Ingeniería Electrónica cumpliría con este requisito de trabajo. El firmware y el controlador de dispositivo para un hardware en particular son ejemplos de sistemas integrados.
Por ejemplo, en un sistema embebido, el conocimiento del dominio en los microcontroladores PIC y sus periféricos puede ser necesario para escribir dicho programa. Para aquellos con experiencia en Ingeniería Electrónica, es muy fácil obtener este conocimiento de dominio, pero muy difícil para aquellos con experiencia en Informática. La programación integrada se inclina hacia una solución de hardware y proporciona una capa de integración que oculta los detalles electrónicos de la solución empresarial. Mientras que la programación de aplicaciones generalmente proporciona una solución en la capa empresarial, como la GUI, la base de datos, la mensajería, la colaboración, el flujo y la lógica empresarial, la inteligencia empresarial, las estadísticas, los gráficos y los informes, etc. Los programadores de aplicaciones no necesitan conocer los detalles de hardware, incluso si su software interactúa con el hardware, si lo hay, porque los programadores integrados generalmente proporcionan una capa de integración que permitirá a los programadores de aplicaciones interactuar su solución comercial con la solución de hardware. Las capas de integración pueden ser controladores de dispositivos, bibliotecas de interfaz, protocolos de comunicación serie / paralelo o protocolos de Internet.
Un sistema de automatización de edificios, por ejemplo, involucra ingenieros electrónicos y de red que diseñan la red y los controladores distribuidos que están formados por microprocesadores y elementos electrónicos, los ingenieros de software embebido escriben el software y el firmware embebidos que realizan comunicaciones de datos entre los controladores en red y los controladores maestros. . Cuando el hardware está conectado y configurado correctamente, comienzan a comunicarse entre sí y comienzan a recopilar datos en la memoria caché en la RAM, FLASH o EEPROM. Con solo el software incorporado dentro del hardware, pueden ejecutarse solos, Monitoreo y control inteligente de los sistemas de aire acondicionado, sistemas de presión de agua, sistemas de alarma contra incendios, sistemas de seguridad, etc. Sin embargo, una solución empresarial completa proporcionaría una interfaz de usuario amigable y fácil de usar, pero una recopilación y archivo de datos complicados que permite a los usuarios cambiar puntos de ajuste, anulaciones manuales, tendencias de monitoreo e historial, gráficos e informes que son más significativos para los usuarios comerciales. como los gerentes Aquí es donde entran el arquitecto de soluciones y los programadores de aplicaciones.
Un sistema de software podría ser simplemente un software de automatización inteligente que no interactúa con el hardware. Éstas podrían ser una solución empresarial como los sistemas de contabilidad y nómina, SAP, ERP, comercio electrónico, MES *, etc. Los graduados de la disciplina informática se adaptarían a estos trabajos.
Un MES (siglas en inglés de Manufacturing Execution System) podría integrarse y comunicarse con el equipo de producción utilizando el protocolo estandarizado SECS / GEM. El software se integra altamente con el dominio de semiconductores, por lo tanto, es una ventaja para alguien que viene de este contexto y con conocimientos de programación.
Automatización de fábrica fuera del dominio de semiconductores, generalmente tenemos sistemas basados en PLC, SCADA o microcontroladores.
Con todo, definitivamente hay algo de programación integrada en el hardware y la programación de aplicaciones en las capas empresariales. La ingeniería electrónica no cubre tanto en la programación de aplicaciones. Los cursos de ciencias de la computación e ingeniería de software se inclinan hacia las capas empresariales.