Softwareentwicklung für elektrische und elektronische Systeme
Die Leistung deckt den technischen Lebenszyklus von Software in elektrotechnischen Produkten und Anlagen ab. Dazu zählen Anforderungsanalyse, Softwarearchitektur, Implementierung, Test, Inbetriebnahme und Weiterentwicklung. Je nach System werden Echtzeitverhalten, Ressourcenbeschränkungen, Kommunikation mit Peripherie sowie stabile Abläufe beim Starten, Steuern und Überwachen berücksichtigt.
Typische Einsatzfelder in Geräten, Anlagen und Schnittstellen
Software Engineering wird dort benötigt, wo elektrische Systeme nicht nur über Hardware, sondern auch über Logik, Datenverarbeitung und Kommunikation funktionieren. Typische Kontexte sind eingebettete Systeme in Geräten, Steuerungsfunktionen in technischen Anlagen, Parametrierung und Diagnose, Datenanbindung an übergeordnete Systeme sowie die Verarbeitung von Mess-, Status- oder Betriebsdaten. Auch Benutzeroberflächen mit technischem Bezug können dazugehören, etwa für Bedienung, Konfiguration oder Service.
Ausprägungen von hardwarenaher Software bis Protokollentwicklung
Innerhalb der Leistung gibt es unterschiedliche Schwerpunkte. Dazu gehören Firmware für Mikrocontroller, hardwarenahe Software für Treiber und Peripherie, Steuer- und Regelungslogik, Kommunikationssoftware für Feldbusse oder andere Schnittstellen sowie Prüf- und Diagnosesoftware. Je nach Projekt kann der Fokus auf einer kompakten Gerätefunktion liegen oder auf dem Zusammenspiel mehrerer Module innerhalb eines grösseren Systems.
Abgrenzung zu Hardware Engineering und Einordnung im Elektroengineering
Software Engineering ist eine Unterleistung des Elektroengineerings und ergänzt die Entwicklung von elektrischen und elektronischen Systemen um das Verhalten auf Programmebene. Im Unterschied zu Hardware Engineering befasst es sich nicht mit Schaltungsdesign, Bauteilauswahl oder physischem Aufbau, sondern mit Logik, Datenflüssen, Zuständen und Schnittstellen der Software. Die Grenze verläuft in der Praxis an der Schnittstelle zwischen Elektronik und Programmcode, etwa bei Registerzugriffen, Treibern, Kommunikationsprotokollen und der Ansteuerung von Komponenten.