Von der Konzeption bis zur Inbetriebnahme
Zur Umsetzung komplexer Geschäftsprozessanwendungen sowie technischer Applikationssoftware setzen wir sowohl auf Desktop-Anwendungen als auch auf webbasierte Software-Lösungen. Dabei spielen Usability (UX Design), Performance und Sicherheit eine große Rolle.
Ob Applikationen für kleinere Systeme oder große Client-Server-Architekturen – profitieren Sie von unserem langjährigen Erfahrungsspektrum mit einer breiten Technologie- und Architekturkompetenz in Angular, C++, Java EE, Python, .Net, Qt sowie diversen Tools und Frameworks. Wir unterstützen Sie bei der Neu-, Weiterentwicklung und Wartung der Applikationen vom Backend über die Middleware bis hin zum Frontend.
Apps für mobile Endgeräte sind inzwischen in zahlreichen Branchen mit vielfältigen Einsatzszenarien verbreitet. Sie bieten einerseits einen schnellen Zugriff auf Informationen, wie z.B. den Maschinen-/Gerätestatus, den Ladezustand von E-Fahrzeugen oder Navigationsdaten, und ermöglichen andererseits die Steuerung ausgewählter Prozesse wie z.B. im Bereich Home Automation.
In Verbindung mit Augmented Reality können Apps um begleitende Inhalte (Audio und Video) erweitert werden.
Wir unterstützen Sie von der Konzeption bis zur Inbetriebnahme bei der Entwicklung maßgeschneiderter Lösungen in Form von nativen, hybriden oder Web Apps für Android und iOS auf unterschiedlichen Endgeräten (Smartphone, Tablet, Wearables, Smart Watch, Apple Watch).
Engineering
- Software-Analysen
- Design & Modellierung
- Traceability & Testability
- Entwicklung & Debugging
- Test & Quality
- Optimierung, Performance
- Software Maintenance & Support
Prozesse und Konfiguration
- Entwicklungsprozesse und Normen (z.B. Medical, Automotive)
- Configuration Management & Test
- Continuous Configuration, Build & Delivery
- Testkonzepte & Testdurchführung
Software
- Toolentwicklung mit Geräteanbindung:
- Diagnose, Analyse
- Information, Visualisierung
- Konfiguration, Parametrisierung
- Toolentwicklung allgemein:
- Entwicklung & Debugging
- Simulation
- GUI-Design
- HMI- & MMI-Entwicklung
- Desktop-, Host-, Web-, Mobile-Anwendungen
Stellenangebote Industry Applications
- Softwareentwickler (gn) Middleware mit C++
- Entwickler (gn) Embedded Linux Systeme
- Softwareentwickler (gn) Python
- Softwareentwickler (gn) mit Leidenschaft
- Softwareentwickler (gn) IoT
- Softwareentwickler (gn) Embedded Systems
- Senior Softwareentwickler (gn) Applikationen
- Softwareentwickler (gn) C++ / Qt
- Technical Lead (gn) C++ Development
- Industry
- Applications
- Geschäftsprozesse
- Applikationssoftware
- Desktop
- Webbasiert
- Usability
- UX Design
- Performance
- Sicherheit
- Angular
- C++
- Java EE
- Python
- .NET
- Qt
- App
- Home Automation
- Augmented Reality
- Smartphone
- Tablet
Unterstützung bei der Digitalisierung
Im Zuge der fortschreitenden Digitalisierung hat sich die digitale Transformation zu einem weiteren unserer Leistungsschwerpunkte entwickelt. Dabei unterstützen wir Unternehmen bei der Digitalisierung sowohl von technischen Anwendungsfällen als auch von Geschäftsprozessen. Ob Applikationen für kleinere Systeme oder komplexe serviceorientierte Architekturen – profitieren Sie von unserem langjährigen Erfahrungsspektrum mit einer breiten Technologie- und Architekturkompetenz in Backend-, Frontend- und mobilen Technologien wie Java EE, Spring, Kotlin, .NET/C#, WPF, Angular/Vue.js/React, Swift, Flutter und Python sowie diversen Tools und Frameworks. Wir realisieren mit Ihnen individuelle Neu- und Weiterentwicklungen sowie die Wartung von Applikationen vom Backend über die Middleware bis hin zum Frontend.
Professional User Interfaces
Wir konzipieren und entwickeln zukunftssichere Desktop- und Webapplikationen sowie mobile Lösungen für verschiedene Gerätetypen maßgeschneidert auf Ihre fachlichen Anforderungen mit einer intuitiven Benutzerführung und zielgerichtet auf die User Experience der Anwender*innen.
Unser Leistungsspektrum umfasst dabei unter anderem Single-Page-Applikationen, native und hybride mobile Apps sowie WPF- und 2D/3D-Lösungen.
Auf Basis unserer Erfahrungen können wir hierbei auf ein breites Spektrum an innovativen Technologien und Frameworks zurückgreifen.
Service-Based-Applikationen
Mit der Entwicklung servicebasierter Lösungen auf Basis von Cloud- und Microservice-Architekturen realisieren wir leistungsfähige und leicht skalierbare Applikationen. Die flexible Integration und Austauschbarkeit der Komponenten einer cloud-basierten Software-Lösung ermöglichen eine effiziente Erweiterbarkeit der Applikationen bei sich schnell ändernden fachlichen Anforderungen. Mittels Continuous Delivery, in Verbindung mit dem Einsatz von z.B. Docker-Containern, können zudem die Deployment-Zyklen verkürzt werden.
Wir unterstützen Sie sowohl bei der Neu- und Weiterentwicklung von Microservices als auch bei der Überführung von monolithischen Legacy Systemen in eine servicebasierte Architektur.
Backend Connectivity / Kommunikationsschnittstellen
Sichere und performante Schnittstellen zur Datenkommunikation zwischen verschiedenen unternehmensinternen und unternehmensübergreifenden Softwaresystemen bilden eine entscheidende Grundlage bei der Digitalisierung und Automatisierung von Geschäftsprozessen. Sie ermöglichen unter anderem den gesicherten automatisierten Zugriff auf Softwaresysteme, die Anbindung von Drittsystemen sowie die Integration und den Austausch von Daten verschiedener Datenquellen.
Wir unterstützen Sie bei der zuverlässigen Vernetzung Ihrer Systeme durch die Neu- und Weiterentwicklung von leistungsfähigen Schnittstellen/APIs. Dabei kommen unter anderem Web Services (REST/SOAP) und Message Queues oder Datenbroker (z.B. MQTT oder Apache Kafka) zum Einsatz.
Datenverarbeitung
Unternehmen aus unterschiedlichsten Branchen sehen sich mit stetig wachsenden Datenmengen konfrontiert. Zur langfristigen Sicherung der Wettbewerbsfähigkeit müssen diese Daten sicher und effizient erfasst, ausgewertet und verarbeitet werden können. Das eröffnet vielfältige Möglichkeiten wie z.B. zur Automatisierung und Optimierung von Geschäfts- und Produktionsprozessen, zur Steuerung von Haushaltsgeräten (Smart Home), zur frühzeitigen Erkennung von erforderlichen Wartungsmaßnahmen (Predictive Maintenance) oder zum autonomen Fahren.
Wir unterstützen Sie bei der Entwicklung individueller Software-Lösungen zur effektiven Nutzung Ihrer Daten – von der Integration verschiedener Datenquellen, über die Datenaggregation, die Datenauswertung und -visualisierung auf verschiedenen Endgeräten bis hin zur Automatisierung von Prozessabläufen. Technologisch setzen wir dabei sowohl relationale als auch NoSQL-Datenbanken ein.
Digitalisierung von Geschäftsprozessen
Wir entwickeln maßgeschneiderte innovative Software-Lösungen zur Digitalisierung und Automatisierung Ihrer Geschäftsprozesse – technologieunabhängig und branchenübergreifend. Dabei unterstützen wir Sie ganzheitlich von der Anforderungsanalyse und Konzeption über das Software-Design und die Implementierung bis hin zur Integration, Inbetriebnahme und Wartung der Software-Lösung.
Mit unseren langjährigen fachlichen und technischen Erfahrungen in Verbindung mit dem Einsatz moderner Technologien und einer agilen Zusammenarbeit mit unseren Kunden stellen wir die Entwicklung innovativer und nachhaltiger Lösungen sicher - von Desktop- und Web-Lösungen bis hin zu mobilen Apps - und verbinden dabei ihre Systeme mit aktuellen Service-Schnittstellen.
Stellenangebote Business Applications
- Backend-Entwickler (gn) Java/Spring Boot
- Senior Java-Entwickler (gn) Full-Stack
- Teamleiter (gn) Software - Java
- Softwarearchitekt & -entwickler (gn) Java Spring / JEE
- Softwareentwickler (gn) Java Produktentwicklung
- Softwareentwickler (gn) C# / .NET
- Senior Softwareentwickler (gn) Applikationen
- Softwareentwickler (gn) Java Full-Stack
- Frontend-Entwickler (gn) Angular
- Java
- C#
- Kotlin
- JavaScript
- TypeScript
- Python
- Swift
- Spring
- .NET
- Angular
- Vue.js
- React
- Android
- Flutter
- Ionic
- iOS
- SwiftUI
- Oracle
- MS SQL Server
- PostgreSQL
- MySQL
- MongoDB
- AWS
- AWS Lambda
- Cloud Foundry
- MS Azure
- Kubernetes
- Rancher
- Docker
- Docker Compose
Internet of Things (IoT)
Im Rahmen der fortschreitenden Digitalisierung werden immer mehr Geräte untereinander vernetzt. Diese Vernetzung in Kombination mit verschiedenen Kommunikationstechnologien erlaubt es den Geräten zusammen zu arbeiten. All das wird durch den Überbegriff IoT (Internet der Dinge – Internet of Things) zusammengefasst und gewinnt in den letzten Jahren immer mehr an Aufmerksamkeit und Priorität.
Geräte erfassen Sensordaten und setzen diese zur Regelung von Aktoren ein. Neu ist, diese Daten an einer zentralen Stelle zu sammeln, und über die Regelung hinaus weitere Erkenntnisse zu gewinnen und zu nutzen.
Der notwendige Verarbeitungsweg der Daten vom Sensor bis in die Cloud ist lang. Dabei sind viele Aspekte zu beachten, die Spezialwissen in unterschiedlichen Bereichen benötigen.
Typischerweise werden die Daten von einem Embedded-Board über Hardwareschnittstellen (I2C, SPI, CAN-(FD), RS232) erfasst und über den gleichen Weg auch die Aktoren angesteuert. Ist hier Echtzeitfähigkeit gefragt, kommen Echtzeitbetriebssysteme zum Einsatz (z.B. FreeRTOS, Zephyr, Linux). Das geeignete OS muss anhand der gegebenen Anforderungen ausgewählt werden. Auf Applikationsseite werden die Daten verarbeitet und Algorithmen auf den Daten ausgeführt.
Um die Daten zu sammeln ist die Anbindung an ein IoT-Edge-Device oder die direkte Anbindung an ein Netzwerk notwendig. Dafür kommen Protokolle wie IPv4, IPv6, 6LowPan, MQTT, COAP, REST zum Einsatz. Wird ein IoT-Edge-Device genutzt besteht hier die Möglichkeit, die Daten bereits vorzuverarbeiten und damit die übertragene Datenmenge, welche zu einer zentralen Datenbank übertragen werden muss, zu reduzieren.
Die Übertragung von der Erfassung zum IoT-Edge-Device kann über unterschiedlichste Wege erfolgen. RFID, Bluetooth, WLAN, LoraWAN, NB-IOT sind dafür ein paar sehr verbreitete und standardisierte Kommunikationswege.
Die kumulierten Daten werden, je nach Auswertungszweck, in passenden Datenbanken (SQL, No-SQL) gesammelt, ausgewertet und passende Aktionen eingeleitet. Eine häufige Herausforderung ist dabei, zuverlässig aus der Vielzahl von Daten die notwendigen Aktionen zu erkennen.
Das Thema Sicherheit ist auf dem kompletten Pfad vom Sensor bis in die Cloud präsent und muss zwingend beachtet werden. Das Thema Vertrauenswürdigkeit und Sicherheit der Daten muss auf dem ganzen Weg geplant und sichergestellt werden.
Schon lange bevor es den Begriff IoT gab, haben wir uns mit Sensoren, Protokollen und der Verarbeitung von Daten beschäftigt. Gerne unterstützen wir Sie als kompetenter und verlässlicher Partner mit unseren Erfahrungen bei der Erstellung von passenden Konzepten und einer zielgerichteten Umsetzung.
Stellenangebote IoT
- SoC- / FPGA-Entwickler (gn) Embedded Systems
- Softwareentwickler (gn) Python
- Softwareentwickler (gn) Embedded Systems
- Security Engineer (gn) Softwaresysteme
- Softwareentwickler (gn) Innovation Development
- Softwareentwickler (gn) IoT
- Senior Softwareentwickler (gn) Applikationen
- Technical Lead (gn) C++ Development
- Softwareentwickler (gn) für Security-Projekte
- IoT
- Industrie 4.0
- Cloud
- Sensor
- Aktor
- MQTT
- CAN
- LoraWAN
- REST
- Flux
- Mono
- Akka
- Python
- Laufzeitdaten
- Echtzeit
- Automotive
- Geschwindigkeit
- Redundanz
- KI
- Machine Learning
- Bluetooth
- BLE
- IPv4
- IPv6
- NB-IoT
Sichere, skalierbare und cloud-basierte Software-Lösungen
In aktuelleren Entwicklungen entstehen immer öfter die Anforderungen an ein schnelles, initiales Go-Live sowie eine möglichst hohe Flexibilität bei benötigter Infrastruktur. Dabei können Cloud-Lösungen durch ihre sofortige Bereitstellung von Ressourcen und jederzeit mögliche Erweiterung dieser unterstützen. Gerade bei der Erfassung, Verwaltung sowie der Auswertung von Daten stellt sich die Herausforderung, auf wechselnde Bedürfnisse und Teilnehmer schnell reagieren zu können. Um solche Schwankungen kosteneffizient und gezielt abzufangen, bietet hier die Cloud mit skalierbarer- oder serverless-Infrastruktur vielfältige Methoden.
Als einer der großen Bereiche von cloud-basierten Systemen hat sich das Internet of Things (IoT) herausgestellt und ermöglicht eine Vernetzung von Maschinen und Anlagen. Aber nicht nur die Datenverarbeitung findet in der Cloud ein neues Zuhause, auch Software- und App-Lösungen profitieren immer mehr von der Verfügbarkeit in Cloud-Lösungen. Gerade die dort verfügbare Ausfallsicherheit der Systeme und nötige Redundanz machen es zu einem idealen Ort für Geschäftsprozesse oder zentralisierte Anwendungen.
Für Cloud-Lösungen und deren oft vielfältigen Dienste wird dabei eine korrekte Konfiguration schnell unübersichtlich. Hier bieten unsere Cloud-Lösungen mit GitOps eine starke Komponente, dem entgegenzuwirken. Diese Methodik des Infrastructure as Code bildet einen klar definierten Zielzustand direkt als Quellcode ab. Das ermöglicht ein hoch-automatisiertes Initialisieren und die Wartung der eingesetzten Cloud-Lösungen. Damit einher geht eine Versionierung der Infrastruktur, wodurch die Änderungen der Cloud-Lösungen transparent dokumentiert und Änderungen nachvollziehbar werden. Die Durchführung von Tests und Anwenden von Qualitätsrichtlinien auf den so abgelegten Cloud-Lösungen dienen hier als Qualitätssiegel.
Innerhalb von cloud-basierten Anwendungen bietet sich durch die vorhandene Flexibilität auch der Einsatz einer Microservice-Architektur an. Durch logisches Schneiden von Modulen lassen sich eine flexible Integration und Austauschbarkeit sicherstellen. Das vereinfacht eine Wartung der einzelnen Module in sich und kapselt verschiedene Logiken sauber voneinander ab. Diese Trennung erzwingt auch eine klare Definition von Schnittstellen, was in der Regel zu einer klar dokumentierten Umgebung führt.
Um ein fehlerfreies und zugleich stabiles Deployment dieser Module, einer IoT-Anwendung oder anderen Cloud-Lösungen, zu gewährleisten, setzen wir auf Continuous Integration und Continuous Delivery. Damit werden vorhandene Logiken mittels Tests nach jeder Änderung validiert und vorhandene Schnittstellen anderer Module auf Korrektheit überprüft. Sind diese Bedingungen gegeben, kann der Stand auf Wunsch vollautomatisiert die letzten Änderungen in die jeweiligen Cloud-Lösungen übertragen werden. Durch diese Automatisierung in Verbindung mit dem Einsatz von z.B. Docker können die Entwicklungszyklen verkürzt werden.
Wir unterstützen Sie bei der Entwicklung sicherer, skalierbarer cloud-basierter Software-Lösungen und erhöhen damit die Verfügbarkeit, Stabilität und Wirtschaftlichkeit Ihrer Lösungen.
- Amazon Webservice (AWS)
- Microsoft Azure
- plattformunabhängig
- IoT
- Software
- App
- IaC (Infrastructure as Code)
- DevOps
- GitOps
- Serverless
- Microservices
- Container
- Docker
- Kubernetes (K8s)
- CI (Continious Integration)
- CD (Continious Delivery)
- REST
- JSON
- YAML
- MQTT
- Ansible
- Teraform
- Skalierung
- Wirtschaftlichkeit
- Redundanz
- Verfügbarkeit
Ingenics Digital bietet Ihnen im Bereich Software Development und Embedded Systems professionelle Entwicklungs-Dienstleistungen. Unser Leistungsspektrum umfasst sowohl bewährte, traditionelle Methoden als auch innovative Ansätze im Bereich des maschinellen Lernens. Wir bieten Ihnen umfassende Dienstleistungen im Bereich der Anwendungsentwicklung sowie der Entwicklung von eingebetteten Systemen an, um maßgeschneiderte Lösungen für verschiedenste Branchen und Anwendungsfälle zu schaffen.
Künstliche Intelligenz gewinnt in Verbindung mit der fortschreitenden Digitalisierung eine zunehmende Bedeutung. Die damit verbundenen Themen durchdringen inzwischen verschiedenste Branchen und bieten Möglichkeiten für vielfältige Innovationen. Aufbauend auf unseren Erfahrungen unterstützen wir Sie bei der Entwicklung von intelligenten Lösungen in den Bereichen Predictive Analytics, Predictive Maintenance und Bilderkennung.
Anwendungsentwicklung mit Künstlicher Intelligenz und Machine Learning
Ingenics Digital bietet Anwendungsentwicklung mit integrierter KI und Machine Learning, um Lösungen für verschiedenste Branchen und Anwendungsfälle zu schaffen. Unser Leistungskatalog umfasst sowohl klassische KI-Methoden als auch fortschrittliche Machine Learning-Techniken, die unseren Kunden helfen, ihre Geschäftsprozesse zu optimieren und den größtmöglichen Nutzen aus ihren Daten zu ziehen.
KI im industriellen Einsatz
KI ist eine der wichtigsten Zukunftstechnologien für die Industrie und darüber hinaus für die deutsche Wirtschaft. Studien über den Einsatz von KI in der Industrie deuten an, dass das produzierende Gewerbe von allen Wirtschaftszweigen am stärksten profitiert von einem KI-induzierten Wachstum. Jedoch bleibt der tatsächliche Einsatz von KI stark hinter diesen Erwartungen zurück. Detailliertere Betrachtungen und Bewertungen unserer Experten von Problemstellungen helfen, die Lücke zwischen Erwartungen und Realität zu überbrücken.
Als Plattformen der KI-gestützten Software dienen Cloud-Lösungen, IoT-Plattformen oder Edge-Devices. Häufige Szenarien finden sich in den folgenden Bereichen:
- Produktion und unterstützende Systeme
- Maintenance und Optimierung
- KI-Einsatz innerhalb von Produkten
Embedded KI
Wir unterstützen Sie in der Umsetzung von KI-gestützten eingebetteten Systemen, von der Datenerhebung bis hin zum Deployment. Wir analysieren für Sie Daten anhand der zweckmäßigen Methoden, unter anderem Merkmalsextraktion, Klassifikation und Visualisierung. Intelligente Sensoren und automatisierte Entscheidungssysteme benötigen auf die Plattform angepasste KI-Algorithmen.
Embedded Security gehört zu den Kernthemen von Ingenics Digital. Wir beraten Sie zum Einsatz von KI-Technologien in sicheren Systemen: Da KI immer mehr in sichere Systeme eingebaut wird, ist deren Absicherung und Security-Bewertung auch immer öfter Bestandteil des Entwicklungsprozesses. Diese hat meist den IP-Schutz und die Härtung gegenüber Angriffen zum Ziel. Adversarial Machine Learning ermöglicht auch eine neue Art von Angriffsmethoden auf Applikationen, die neuronale Netze nutzen, sowie auch neue Methoden, deren Robustheit zu verbessern. Darüber hinaus bieten wir Beratung zu geeigneten KI-Ansätzen zur Erhöhung der funktionalen Sicherheit und Zuverlässigkeit.
Die Ingenics Digital KI-Werkzeugkiste
Klassische KI-Algorithmen
Tiefe neuronale Netze sind aufgrund von großen Fortschritten auf dem Gebiet sehr beliebt, jedoch sind neuronale Netze nicht für alle Aufgaben geeignet. Viele Problemstellungen lassen sich mithilfe von klassischen Ansätzen zielgerichteter und ressourcensparender lösen. Dazu gehören unter anderem:
- Data Engineering: Visualisierung, Komponentenanalyse und Aufbereitung von Daten
- Analyse von Zeitreihen, z.B. mithilfe von Hidden Markov Models
- Klassifikation mithilfe von Decision Trees, Support Vector Machine, Distanzmetriken
- Suchalgorithmen für Pfadoptimierung in Landkarten und Routing in Software Defined Networks
- Expertensysteme mit Prädikatenlogik, Grammatik-Parser und Entscheider
- Konstruktion von Grammatiken
- Prozesssteuerung mit Zustandsautomaten
- Weitere regelbasierte Systeme
- Klassische Bildanalyse mit OpenCV
Bildanalyse und Computer Vision
Die Aufgabe vieler eingebetteter Systeme ist die (Echtzeit-)Bildverarbeitung, beispielsweise in industriellen oder medizinischen Anwendungsfällen. Erkennungsraten können hier verbessert werden mit an die Aufgabe angepassten Methoden, zum Beispiel durch die Verwendung von optimierten Netzen oder die Erzeugung und Klassifikation von 3D Punktwolken. Je nach Anwendungsszenario arbeiten wir hierbei mit klassischen Bildverarbeitungsmethoden, modernen Machine Learning Bibliotheken oder mit langzeit-unterstützten Industrie-Bilderkennungssoftware.
Natural Language Processing - Sprache und Text
Sprache ist eine für den Menschen natürliche Kommunikationsform, jedoch hat sie für den Computer eine hohe Komplexität. Moderne Ansätze im Deep Learning haben es geschafft, Aufgaben der natürlichsprachliche Kommunikation abzubilden und in begrenzten Maße an die menschliche Leistung heranzukommen. Durch die erheblich verbesserte Leistung bieten sich neue Möglichkeiten für den Einsatz dieser Modelle.
Wir beraten und unterstützen Sie zu den modernen NLP-Systemen:
- Spracherkennung und Spracherzeugung
- Sprachmodelle zur Klassifikation, Textgenerierung oder als Dialogmodell
- Übersetzung mit Ende-zu-Ende Modellen
- Sprachgesteuerte Bilderzeugung
- Integration und Optimierung von vortrainierten Netzen
- Automatisierte Datensammlung und Aufbereitung
- Finetuning von vortrainierten Netzen
- Training von großen Modellen
Optimierung von Parametern in komplexen Systemen
Viele Prozessschritte oder Verfahren sind parameter-gesteuert und es ist oft schwer, aufgrund der Komplexität des Systems, die beste Kombination von Parametern zu finden. Mithilfe von wissenschaftlich etablierten Methoden helfen wir Ihnen, relevante Parameter zu identifizieren und diese zu optimieren, sowohl mit gradienten-basierten Verfahren als auch mithilfe von Methoden zur Optimierung diskreter Systeme.
Erweiterte Signalverarbeitung
Hardware-Beschleuniger für neuronale Netze ermöglichen neue, schnelle, optimierte und effizientere Implementierungen für fortgeschrittene Signalverarbeitung. Integrierte Beschleuniger berechnen neben den neuronalen Netzen auch die Fourier Transformationen bis hin zu lernbaren Filtern mit Faltungen. Bisher wurden diese Methoden vor allem auf dedizierten DSP-Hardwaremodulen umgesetzt. Wir beraten Sie und portieren für Sie Ihre Algorithmen der Signalverarbeitung.
Vorhersage von Zeitreihen
Die Vorhersage von Zeitreihen ist gefragt in vielen unterschiedlichen Disziplinen, zum Beispiel der Aktienkursanalyse, Wettervorhersage, oder Predictive Maintenance. Auch bei der Vorhersage des Verhaltens von Verkehrsteilnehmern im autonomen Fahren finden sie Einsatz. Vorhersagen von Zeitreihen sind ressourcensparend mit klassischen KI-Algorithmen möglich, z.B. Hidden Markov Modellen, oder mit Stand-der-Technik neuronalen Netzen von einfachen rekurrente neuronale Netze (RNNs) bis hin zu mächtigen Graph-basierten Netzen und Transformern. Wir unterstützen bei der Auswahl der Methode anhand von Einsatzszenario und vorhandenen Trainingsdaten.
Einsatz in tinyML Szenarien
Auf stromsparenden Cortex-M Microcontrollern ist oft kein Linux verfügbar, und damit auch keine der populären Deep-Learning Bibliotheken. Jedoch ist der Einsatz von KI in eingebetteten Systemen besonders interessant, da diese oft an ein größeres System angebunden sind.
Neuronale Netze bringen oft Vorteile bei Signalverarbeitung oder bei komplexen Tasks: Oft möchte man ein kleines eingebettetes System als "intelligenter Sensor", der schon eine Vorklassifizierung vornimmt oder Merkmale extrahiert. Dabei werden z.B. Merkmale aus Audio- oder Bildsensor-Daten extrahiert und dann an das größere System weitergeleitet und dort klassifiziert.
Hierzu setzen wir auch Machine Learning in tinyML Szenarien um. In diesen tinyML Szenarien sind oft weitere Nachbearbeitungsschritte für die Implementierung nötig, wie zum Beispiel Portierung und Quantisierung.
Erhebung und Aufbereitung von Daten
Machine Learning kann vor allem dann effektiv komplexe Aufgaben abbilden, wenn genug relevante Daten verfügbar sind. Hierbei lassen sich von vielen kleinen Sensoren schon viele Daten für unterschiedliche Zwecke sammeln. Viele eingebettete Systeme enthalten schon integrierte Mikrofone, oder Schnittstellen für Kameras; auch in den Sensoren noch kleinerer Regelungssysteme findet bereits eine Erfassung hochfrequenter Daten statt.
Wir unterstützen Sie bei der Datenerhebung über viele Schnittstellen hinweg, unter anderem:
- Dateiformate wie CSV, SQL, JSON, XML, Text und HDF5; sowie gängige Bild-, Video- und Audioformate
- Netzwerkbasierte-basierte Protokolle, wie zum Beispiel HTTP, FTP, NTP, MQTT und REST
- Bussysteme und Onboard-Schnittstellen, unter anderem Modbus/TCP, SSI/SPI, RS-485, Profibus und MTConnect
- Cloud-Anbindungen, wie z.B. Azure und AWS
- Auf Anfrage: Standardisierte Industrieprotokolle wie z.B.: OPC UA® oder MTConnect
Dazu ist oft eine Aufbereitung der gesammelten Daten notwendig: Datensätze, z.B. für das Training von Klassifikatoren, sind manchmal nicht zuverlässig und enthalten gemischte oder fehlerhafte Einträge. Mithilfe einer Konfidenzanalyse lassen sich Datensätze automatisiert auf falsch markierte Einträge überprüfen und ausfiltern.
MLOps zur effizienten Einbindung in Ihre Entwicklungsprozesse
In unserem Leistungsangebot legen wir besonderen Wert auf MLOps, das effiziente Management von Machine Learning-Projekten in der Produktion. MLOps ist die Kombination von DevOps-Praktiken und maschinellem Lernen, um den gesamten Lebenszyklus eines Machine Learning-Modells von der Entwicklung über das Training bis hin zum Deployment und der Überwachung zu optimieren. Unsere Experten unterstützen Sie dabei, Ihre Machine Learning-Initiativen nahtlos in Ihre bestehenden Prozesse und Infrastrukturen zu integrieren.
Wir bieten folgende MLOps-Leistungen an:
- Automatisierung des Trainings, der Evaluierung und des Deployments von Machine Learning-Modellen
- Continuous Integration und Continuous Deployment (CI/CD) für eine nahtlose Integration der ML-Modelle
- Skalierung von ML-Workloads in der Cloud oder On-Premises
- Überwachung und Management der Modell-Performance in Echtzeit
- Automatisierung der Hyperparameter-Optimierung und des Feature-Engineerings
- Beratung und Workshops zum Thema MLOps und Best Practices
Insgesamt unterstützt unser MLOps-Leistungsangebot Ihr Unternehmen dabei, Machine Learning-Projekte schneller, kosteneffizienter und skalierbarer umzusetzen.
Deployment
Oft soll die KI nicht auf einem PC implementiert werden, sondern in einem eingebetteten System oder in der Cloud als Service. Es gibt hierbei verschiedene Gründe, ein bestimmtes System auszuwählen, wie Anforderungen an die Reaktionszeit, Energiesparsamkeit oder Netzgröße. Wir helfen Ihnen bei der Auswahl und bei der Umsetzung verschiedener Deployment-Modelle:
- Heterogenes Deployment: Edge - Container - Cloud
- Inferenz von neuronalen Netzen auf Microcontrollern und Application Controllern
- Heterogenous Compute von neuronalen Netzen mit FPGAs (embedded Linux)
- Heterogenous Compute mit embedded Linux und Inferenz in der Cloud, bzw. mit dediziertem Inferenz-Server
- Inferenz mit HW-Beschleunigern auf eingebetteten Systemen, wie z.B. Nvidia Jetson
Stellenangebote AI / KI
- Deep Learning
- KI
- Machine Learning
- Predictive Analytics
- Predictive Maintenance
- Augmented Reality
- Algorithmen
- Python
- Docker
- PEP8
- Java
- C#
- Angular / React / Vue.js
- Pandas / scikit-learn / TensorFlow
- Embedded KI
- Artificial Intelligence
- Bildanalyse
- Natural Language Processing
Passende Linux- und Branchen-Kenntnisse in jeder Projektphase
Mit Embedded Linux haben Sie die Software auf Ihrem Board vollständig unter Kontrolle: vom BootLoader über den Kernel bis zum Userspace. Um diese umfangreiche Software komfortabel bauen zu können, bieten sich Buildsystem wie Yocto, Isar oder PTXDist an. Mit diesen Systemen können Sie Root File System (RootFS) Images per Continuous Integration bauen. Damit ist der Build-Prozess sauber dokumentiert und nach einem Commit stehen die Buildergebnisse automatisch zur Verfügung. Wenn gewünscht, kann ein weiterer automatischer Deploymentschritt das neu gebaute Image auf die Hardware bringen und die Software automatisch getestet werden. Ihre Applikation im Userspace ist hier selbstverständlich schon integriert.
Bei all diesen Schritten begleiten und unterstützen wir Sie gerne. In Teilbereichen oder auch das ganze Programm. Wir haben ein breit aufgestelltes Team, mit dem wir die Vielfalt der Anforderungen abdecken können. Embedded Linux ist das Fundament für Ihr Produkt. Dieses Fundament muss solide sein, um viele weitere Aspekte Ihres Produktes tragen zu können. Eine Möglichkeit, Sie dabei zu unterstützen, ist unsere Mixed Mode Linux-Plattform.
Die Mixed Mode Linux-Plattform ist einer Weiterentwicklung basierend auf dem ISAR Buildsystem. Ein maßgeschneidertes Debian kompatibles Embedded Linux mit:
- Unterstützung für Continuous Integration und Deployment
- einem sicheren, vertrauenswürdigen und fehlertoleranten Softwareupdate mit LIUF-Linux Update
- Framework
- Deployment aus der Cloud auf Ihr Produkt
- kurzen Buildzeiten
- Docker Unterstützung
- Echtzeit Linux Kernel
Secure Boot
Mit Secure Boot stellen Sie sicher, dass nur vertrauenswürdige Software auf Ihrem Embedded Linux System läuft und Geheimnisse (Schlüssel, Intellectual Property) sicher auf Ihrem System hinterlegt sind. In jedem Schritt des Bootprozesses wird geprüft, ob das nächste Stück Software auch vertrauenswürdig ist. Die "Chain of Trust" entsteht. Diese Chain of Trust muss von Anfang des Projektes geplant werden, um ein sicheres Endergebnis zu erhalten.
Secure Update
Um ein IoT-Gerät langfristig sicher betreiben zu können, ist ein Software-Update über das Internet unumgänglich. Mit Ihnen erarbeiten wir die für Ihr System notwendigen Requirements und erarbeiten daraus ein Software-Update-Konzept. Dieses können wir mit Hilfe von LIUF, unserem Linux Update Framework, oder als individuelle Lösung umsetzen.
LIUF bietet folgende Features:
- Failsave A/B-Update
- Signierte und verschlüsselte Updatecontainer
- Update von
- BootLoader
- Kernel
- Root Filesystem
- Applikation
- weitere über Busse angeschlossene Komponenten
- Sicherer Transport aus der Cloud auf das Embedded Linux System
Schlüssel-Infrastruktur
Für Secure Boot muss die Software signiert und kann auch verschlüsselt werden. Dafür ist eine Infrastruktur notwendig, in der nur berechtige Personen die Softwareanteile signieren können und die dafür erforderlichen Schlüssel nicht entwendet werden können. Mit unseren Security Expert*innen erarbeiten wir mit Ihnen zusammen eine Zeremonie zur Erstellung, Verwaltung und Nutzung der Schlüssel.
Stellenangebote Embedded Linux
- Softwareentwickler (gn) Middleware mit C++
- Entwickler (gn) Embedded Linux Systeme
- Softwareentwickler (gn) mit Leidenschaft
- Security Engineer (gn) Softwaresysteme
- Senior Softwareentwickler (gn) Embedded Systems
- Softwareentwickler (gn) C++ / Qt
- Technical Lead (gn) Embedded Software
- Softwareentwickler (gn) für Security-Projekte
- Embedded Linux
- Kernel
- Docker
- U-Boot
- BareBox
- YOCTO
- Isar
- PTXDist
- Root Filesystem
- Linux Update Framework LIUF
- Linux Plattform
- HawkBit
- Cloud
- Docker
- Secure Boot
- Secure Update
- Signing Server
- PKI Infrastruktur
- OpenAMP
- i.MX8
- STM32MP1
- ARM
Wie kann ich mein Embedded System vor Manipulation schützen?
Wo sind die kritischen Stellen meiner Webanwendung? Wer hat die Kontrolle über meine Schlüssel? Wir helfen Ihnen, die Antworten zu finden. Unsere Experten denken Security von Anfang an mit und stellen die entscheidenden Weichen, bevor es zu spät ist. Wir unterstützen Sie bei der Entwicklung von sicheren Systemen und sicherer Software von Anfang an. Mit Bedrohungs- und Risikoanalysen können viele Risiken schon in der Konzeptphase eliminiert werden. Mit Code-Reviews und White-Box-Analysen erhalten Sie unkompliziert kompetentes Feedback zu Ihren existierenden Lösungen. Passend zu Ihrem Produkt begleiten wir Sie bei der Ausrichtung an etablierten Standards und Richtlinien (ISO 62443-4-x, EN 303645, NIST 8259(A), PSA Certified Level 1). Ergänzend dazu beraten wir Sie gerne zu allen Fragen der sicheren Produktentwicklung (Secure Development Lifecycle), sei es zur Software Supply Chain, zum Aufbau einer vertrauenswürdigen CI/CD-Infrastruktur oder zum Security Testing.
Moderne Software besteht aus einer Vielzahl von Komponenten, die jeweils eigene Risiken bergen. Wir helfen Ihnen bei der Erstellung und Pflege Ihres Software-Bill-of-Material (SBOM). Wir unterstützen Sie auch bei der Bewertung von Supply-Chain-Risiken anhand Ihres SBOM und erarbeiten mit Ihnen gemeinsam und bedarfsgerecht Lösungen zur Reduktion von kritischen Abhängigkeiten.
Gerne beraten wir Sie bereits im Vorfeld der Entwicklung bei der Auswahl von Frameworks, (Web-)Technologien und Service-Architekturen mit Blick auf eine positive Developer-Experience in Bezug auf (nicht ausschließlich) sicherheitskritische APIs und langfristige Wartbarkeit der resultierenden Softwaresysteme.
Die Sicherheit eingebetteter Systeme ist eng mit der Hardware verbunden. Wir beraten Sie bei der Auswahl geeigneter Komponenten, um teure Fehlentscheidungen zu vermeiden. Profitieren Sie von unserer Erfahrung mit Secure-Boot-Konzepten vieler Hersteller (NXP, ST, TI, Infineon, Xilinx, ...), mit RTOS-Systemen und Linux. Wir realisieren mit unseren Kunden maßgeschneiderte Lösungen zu Secure Update, Software Signing und Lizenzmanagement. Dazu zählen neben der technischen Umsetzung vor allem organisatorische Prozesse zum Schlüsselmanagement und die Bereitstellung der zugehörigen Infrastruktur zur Verwaltung von Schlüsselmaterial.
Die Nutzung eindeutiger kryptografischer Identitäten ermöglicht eine sichere Anbindung von Embedded Systems an die Cloud oder ein geschlossenes Backend. Erweiterte Security-Funktionalitäten setzen wir hardwaregestützt und passend zum Bedarf mit TrustZone-Applikationen, SmartCards, TPMs, HSMs oder FPGA-Lösungen um. Zahlreiche Kunden vertrauen auf unsere langjährige Erfahrung mit der Realisierung von High-Security Firmware und Speziallösungen.
Durchgängige Lösungen vom μController bis ins Backend aus einer Hand stellen sicher, dass Kommunikation und Vernetzung nur mit authentifizierten Partnern erfolgt und auf jeder Ebene Vertraulichkeit, Integrität und Authentizität sichergestellt werden.
- AES
- Application Partitioning
- AppSec
- Authentifizierung
- Authentication
- Autorisierung
- Confidentiality
- CVE
- Data Integrity
- Data Management
- ECC
- Embedded Security
- Encryption
- HSM
- Identifizierung
- Intellectual Property
- IPv6
- Kryptographie
- PKI
- Privacy
- RSA
- SBOM
- SPDX
- SmartCard
- Schlüsselmanagement
- Secure Boot
- Secure Services
- Secure Storage
- Secure Update
- SEI CERT C
- SHA
- SBOM
- Software-Supply-Chain
- Threat Modelling
- TLS
- TPM
- Trusted Execution Environment
- Trusted Zones
- Wireguard
- Zertifikate
Professioneller Softwaretest
Professioneller Test ist die nachvollziehbare, auf bewährte Praktiken gestützte Messung verschiedener funktionaler und nichtfunktionaler Qualitätsaspekte (siehe z.B. Standard ISO 25010 und andere). Dabei ist es zweckmäßig, je nach Projektfortschritt unterschiedliche Teststufen anzuwenden und möglichst viel automatisiert zu testen. In der Praxis gibt es hierbei eine Reihe teilweise auch unerwarteter Details zu berücksichtigen, um gültige Qualitätsaussagen zu erzeugen: Von der Festlegung des Testobjekts über die Testanalyse bis hin zu den Stufen bei der Einführung einer Testautomatisierung. Selbst wenn die Tests schließlich jede Nacht laufen, gibt es weitere potenzielle Hürden: Effiziente Debug- und Bugfixingprozesse, ggf. verknüpft mit agilen Vorgehensweisen sowie die angemessene Beurteilung statistischer ("sporadischer") Fehler. Gerade dieser Fehlertypus kann andernfalls zu erheblichen Projektverzögerungen führen.
Wir haben jahrzehntelange Erfahrung im professionellen Softwaretest, ob agil oder nicht. So können wir Sie bei den folgenden Themen gerne beraten und unterstützen:
Vorbereitung des Testprozesses:
- Bedarfsanalyse für Testerschulungen sowie Klärung der Test-Terminologie. Je klarer die Begrifflichkeiten im Vorfeld festgelegt werden, umso weniger Diskussionsbedarf gibt es erfahrungsgemäß im Nachhinein.
- Analyse und Review bestehender Prozesse
- Optimierung bestehender Prozesse
- Überführung bisheriger Prozesse in agile Vorgehensweisen
- Einführung von ISO/IEC/IEEE 29119 "Software testing": Auf diesen Standard gestützte Testprozesse sind mit weniger Aufwand zu implementieren, da nicht jede Entscheidung zum Design des Testprozesses selbst getroffen werden muss und schaffen überdies Vertrauen bei Ihren Kunden.
- Design der Teststufen: Bewährte Praxis ist die Unterteilung des Testprozesses in statische sowie dynamische Testverfahren; letztere umfassen mehrere Stufen, etwa Unit-, Komponenten- und Gesamtsystemtest. Parallel dazu werden die Testobjekte sachgemäß angelegt.
- Schulungen für Moderatoren bei statischen Tests, z.B. Reviews: Gut moderierte Reviews können nachweislich gerade die Fehler zu vermeiden helfen, die trotz fehlerloser Unittests bei den ersten Integrations- und Systemtests auftreten, wenn getrennt entwickelte Komponenten zusammenspielen.
Implementierung des Testprozesses:
- Beratung bei der Suche nach geeigneten Tools für den Test sowie das automatisierte Framework. Jedes Tool hat seine Stärken und Schwächen. Wir unterstützen bei der Abwägung.
- Design und Implementierung einer Testautomatisierung vom Testframework, den Testschnittstellen über die Testfunktionen hin zu Templates für Testfälle. Auch automatische Testfallgenerierung aus beschreibenden Meta-Sprachen ist denkbar. Nicht zu vergessen, aber oft vernachlässigt: Erzeugung aussagekräftiger Logs, die auch bei sporadischen Fehlern mit Auftrittswahrscheinlichkeit von unter 5 % den Debugger nicht im Stich lassen.
- Testbarkeit des Testobjekts: Nicht jede Software ist gleich gut testbar. Nicht selten ist ein explizites Design für die Testbarkeit notwendig, verbunden mit einer behutsamen Anpassung des Mindsets in der Entwicklung. Darin haben wir Erfahrung.
- Test Driven Development oder nicht? Wir sprechen gerne darüber.
- Detailanalyse der Requirements (Lastenheft, PBIs, Features ...) zur Erstellung der Testfälle.
- Implementierung und Anwendung eines Frameworks für Hardware-in-the-Loop (HIL) bzw. Software-in-the-Loop (SIL). Diesbezüglich können wir unser eigenes, hochflexibles HIL-Framework anbieten, das bereits bei Kunden erfolgreich im Einsatz ist.
- Test und Evaluierung des Testframeworks: Auch dieses Stück Software muss sich das Vertrauen erst erarbeiten. Wir kennen die Kinderkrankheiten und was dagegen zu tun ist.
- Einrichten eines Debug- und Fehlerbehebungsprozesses inklusive Fehlerdatenbank und Strategie für Regressionstests.
Durchführung und Auswertung der Tests:
- Einrichtung von Testplänen
- Auswertung der Testlogs und Ergebnisse, ggf. automatisch
- Ablage der Testergebnisse
- Umgang mit statistisch auftretenden Fehlern: Gerade bei gereiften Produkten und Testprozessen werden systematische Fehler schnell in den unteren Teststufen (z.B. Unittests) abgefangen. Im Gesamtsystemtest treten hingegen vermehrt sporadische Fehler auf, die mit indeterministischem Verhalten (Timings) zu tun haben und Auftrittswahrscheinlichkeiten von manchmal < 5 % haben. Wie damit umgehen? Wie sind Bugfixes dieser Fehlerart zu testen? Bei Fragen dieser Art beraten wir Sie gerne.
Gibt es etwas, das hier nicht aufgeführt ist? Kontaktieren Sie uns gerne: Test und Quality sind unsere Leidenschaft. Gemeinsam finden wir Antworten auf Ihre Fragen.
Stellenangebote Test & Quality
- professioneller Test
- Qualität
- ISO 25010
- Teststufe
- Testobjekt
- Testanalyse
- Testautomatisierung
- Debugging
- Bugfixing
- agil
- statistische Fehler
- statistischer Test
- dynamischer Test
- Testprozess
- Testerschulung
- Test-Terminologie
- ISO/IEC/IEEE 29119 "Software testing"
- Testprozess
- Unittest
- Komponententest
- Gesamtzsystemtest
- Testobjekt
- Review
- Integrationstest
- Testtools
- Testframework
- Testschnittstellen
- Testfunktionen
- Testfälle
- automatische Testfallgenerierung
- Testbarkeit
- Test Driven Development
- Hardware-in-the-Loop (HIL)
- Software-in-the-Loop (SIL)
- HIL-Framework HILF
- Fehlerdatenbank
- Regressionstests
- Testplan
- Testlogs
- Testergebnisse