Company logo

INGENIEURBÜRO
SOFTWARE SYSTEMS

Das Ingenieurbüro Software Systems ist der kompetente Partner für die Entwicklung von Softwaresystemen und die Lösung komplexer Aufgabenstellungen.

Jürgen Ehret Leiter & Gründer Dr.-Ing. Jürgen Ehret
Leiter & Gründer

Mit Dr.-Ing. Jürgen Ehret haben Sie einen erfahrenen und zuverlässigen Entwicklungsingenieur an Ihrer Seite. Jürgen arbeitete viele Jahre bei BMW als Entwicklungsingenieur im Forschungs- und Innovationszentrum (FIZ) in München und im BMW Technology Office in Palo Alto, Kalifornien. In interdisziplinären Teams entwickelte er Software für elektronische Antriebs- und Fahrwerksysteme für die Serienproduktion und untersuchte in seiner Dissertation neue Ansätze für die Entwicklung sicherheitskritischer Drive-by-Wire-Systeme.

Nach seinem Umzug in das kalifornische Silicon Valley war Jürgen als freiberuflicher Softwareingenieur tätig und unterstützte sowohl namhafte Unternehmen als auch ein Start-up bei der Entwicklung von Softwaresystemen. Weitere Einzelheiten finden Sie in Jürgens Kurzbiografie >

Jürgen Ehret Leiter & Gründer

Kurzbiografie

Jürgen Ehret

Geboren und aufgewachsen in Freiburg im Breisgau, hat sich Jürgen zu einem international erfahrenen Entwicklungsingenieur entwickelt.

Jürgen hat sein Handwerk von der Pike auf gelernt. Er absolvierte eine Ausbildung zum Energieanlagenelektroniker bei der Deutschen Bahn, holte über den zweiten Bildungsweg das Abitur nach und studierte anschließend Elektrotechnik an der Universität Karlsruhe (TH).

Als junger Diplomingenieur begann er seine Karriere bei BMW in München und arbeitete viele Jahre in kollegialen, interdisziplinären Teams an spannenden Projekten, die ihn die Ingenieurskunst lehrten und schließlich nach Palo Alto, Kalifornien, führten. Nach vielen faszinierenden Jahren in der Softwareentwicklung promovierte er während seiner Tätigkeit bei BMW an der Technischen Universität München (TUM) zum Thema „Validation of Safety-Critical Distributed Real-Time Systems“.

Danach zog es Jürgen ins Silicon Valley, wo er als freiberuflicher Softwareingenieur arbeitete. Sowohl in etablierten Unternehmen als auch in einem Start-up meisterte er erfolgreich anspruchsvolle Aufgaben der Softwareentwicklung unter agilen Arbeitsbedingungen für seine Kunden.

In seinen Projekten hat Jürgen durch seine analytischen und kreativen Fähigkeiten gezeigt, wie theoretisches Wissen erfolgreich zur Lösung praktischer Aufgaben eingesetzt werden kann.

Nach seiner Rückkehr nach Deutschland gründete er das Ingenieurbüro Software Systems, das auf die Entwicklung von Softwaresystemen spezialisiert ist.

Jürgen liebt die Natur, die er so oft wie möglich beim Wandern oder Joggen genießt, und er liebt es, interessante Bücher zu lesen.

Weitere Informationen zu Jürgens Karriere finden Sie in seinem Curriculum Vitae.

Was wir tun und wie wir es tun

Wir arbeiten eng mit unseren Kunden zusammen, um effiziente Lösungen für ihre spezifischen Aufgabenstellungen zu entwickeln und in leistungsfähige und zuverlässige Softwaresysteme umzusetzen!

Die Aufgabe kann beispielsweise wie folgt aussehen:

  1. Design und Implementierung eines Softwaresystems – von der Idee bis zur Marktreife.
  2. Erweiterung oder Optimierung von Softwaresystemen.
  3. Entwicklung einer Software zur Simulation und Analyse eines physikalischen Prozesses.

Wir sind der festen Überzeugung, dass die Entwicklung hochwertiger Software zur Zufriedenheit der Kunden grundlegende Werte und Prinzipien erfordert. Das „Manifesto for Agile Software Development“ ist für uns Leitlinie und Motivation zugleich, diesem hohen Anspruch gerecht zu werden:

„Wir erschließen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen. Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:

Individuen und Interaktionen mehr als Prozesse und Werkzeuge

Funktionierende Software mehr als umfassende Dokumentation

Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung

Reagieren auf Veränderung mehr als das Befolgen eines Plans

Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.“

(Auszug aus: Beedle, Mike, et al. 2001. „Manifesto for Agile Software Development“. https://agilemanifesto.org/)

Section Headline

Ausgewählte Projekte

Entdecken Sie die Expertise und Erfahrung, die Jürgen in Ihr Projekt einbringen kann. Nehmen Sie mit uns Kontakt auf. Gemeinsam machen wir Ihr Projekt zum Erfolg!

Symbol of Smartphone App

Computer Vision App

IBSoftSys

Symbol of Smartphone App Aus Interesse an Computer Vision und digitaler Bildverarbeitung entwickelte Jürgen eine Anwendung, die das menschliche Sehen und Denken beim Spielen des Kartenspiels SET® simuliert. Normale Lichtverhältnisse vorausgesetzt, findet die entwickelte Smartphone-App nicht nur die richtige Lösung vor allen anderen Spielern, sondern auch alle Lösungen.

Software Tools

Objective-C C/C++ iOS Xcode Scilab/MATLAB OpenCV

Details >

Symbol of Smartphone App

Computer Vision App

IBSoftSys

Die Idee zu dieser App entstand an der Laurelwood Elementary School in Santa Clara, Kalifornien. Als Volontär spielte Jürgen mit Zweitklässlern im Mathematikunterricht als Gruppenarbeit das Kartenspiel SET®, das die visuelle Wahrnehmung und das logische Denken trainiert. Er stellte sich immer wieder vor, wie ein Smartphone seine Rolle als Schiedsrichter übernehmen könnte.

Ausgehend von dieser Vision entwickelte Jürgen die Smartphone-App AI Card Player. Die App erkennt die Farben und Symbole der Spielkarten, berechnet alle erlaubten Kombinationen und präsentiert die Lösung des Rätsels sehr anschaulich und verständlich.

Der größte Teil der Entwicklung bestand darin, einen zuverlässigen Weg zu finden, um die Farben und Symbole der Spielkarten zu erkennen und dieses Modell in effiziente Software zu übersetzen. Interessanterweise ist die visuelle Wahrnehmung von Spielkarten und das Erlernen der Symbole für uns Menschen eine relativ einfache Aufgabe, sie stellen aber für ein Computersystem kein triviales Problem dar. Dagegen scheint die Nachbildung des logischen Denkens für ein Computersystem ein Kinderspiel zu sein. Die Umsetzung der Spielregeln machte nur einen winzigen Bruchteil des Entwicklungsaufwandes aus.

Weitere Informationen zur App finden Sie auf der Webseite AI Card Player.

Software Tools

Objective-C C/C++ iOS Xcode Scilab/MATLAB OpenCV

SET® is a registered trademark of Cannei LLC licensed by Set Enterprises, Inc.

Symbol of Crash Test Dummy

Embedded Systems

BMW Group

Symbol of Crash Test DummyIn interdisziplinären Ingenieurteams bei BMW entwickelte Jürgen Software elektronischer Systeme (Embedded Systems) für Lenk- und Antriebssysteme in Fahrzeugen. Nach langjähriger Tätigkeit in der Entwicklung erforschte Jürgen für seine Doktorarbeit und BMW Methoden zur Entwicklung von Soft- und Hardware für zukünftige Drive-by-Wire-Systeme.

Software Tools

C/C++ Assembler ASCET VCC

Details >

Symbol Crash Test Dummy

Embedded Systems

BMW Group

In interdisziplinären Ingenieurteams bei BMW, München, entwickelte Jürgen Software von elektronischen Steuergeräten (Embedded Systems) für Lenk- und Antriebssysteme, die beispielsweise im 3er und 7er in Serie gingen.

Seine Aufgabe war die Entwicklung Echtzeit kritischer Softwaresysteme, die mit unterschiedlichen Konfigurationen der Hardware in vielen Fahrzeugvarianten zum Einsatz kamen. Das Arbeitsgebiet umfasste die Erstellung der ersten Prototypen im Labor, die anschließende Integration ins Fahrzeug, Systemtests im Fahrzeug auch unter extremsten klimatischen Bedingungen und die Betreuung der Softwaresysteme nach dem Serienanlauf.

Die immer komplexer werdenden Systeme in Fahrzeugen, wie beispielsweise Drive-by-Wire-Systeme, erforderten den Einsatz neuer Methoden und Tools. Um den deutlich gestiegenen Anforderungen an Soft- und Hardware gerecht zu werden, hat Jürgen im Rahmen seiner Promotion im BMW Technology Office, Palo Alto, Kalifornien, neue Ansätze zur Entwicklung solcher Systeme entwickelt und evaluiert.

Software Tools

C/C++ Assembler ASCET VCC

VCC: Virtual Component Co-Design

Symbol of Distributed System

Modelling & Simulation

GM Advanced Technology Office

Symbol of Distributed SystemGemeinsam mit dem GM Advanced Technology Office entwickelte Jürgen ein Modell zur Simulation vernetzter Steuergeräte. Anhand des Modells konnten die Ingenieure bei GM die Vernetzung der Steuergeräte neuer Modelle simulieren und analysieren.

Software Tools

C/C++ MLDesigner

Details >

Symbol of Model of Distributed Systems

Modelling & Simulation

GM Advanced Technology Office

General Motors (GM) in den USA suchte nach einem Simulationsmodell für vernetzte elektronischer Steuergeräte in ihren Fahrzeugen. Übergeordnetes Ziel war es, optimale Systemarchitekturen für zukünftige Fahrzeugmodelle zu entwickeln.

Gemeinsam mit Paolo Giusto, Forscher und Ingenieur am GM Advanced Technology Office, Palo Alto, Kalifornien, entwickelte Jürgen ein Modell, das vernetzte Steuergeräte simulieren kann. Herzstück des Modells war ein Suchalgorithmus, der alle möglichen Kommunikationskanäle analysierte und so eine quantitative Bewertung unterschiedlicher Systemarchitekturen ermöglichte. Individuell entwickelte Auswertungsfunktionen erlaubten zudem eine einfache Analyse der Ergebnisse und rundeten das entwickelte Softwarepaket ab.

Das auf statistischen Methoden basierende Simulationsmodell wurde von den GM Ingenieuren akzeptiert und in den Entwicklungsabteilungen erfolgreich eingesetzt.

Software Tools

C/C++ MLDesigner

Symbol of Test Software Systems

Software Testing

Cisco Systems & Crosstest

Symbol of Test Software SystemsIn der Start-up Crosstest entwickelte Jürgen Module für ein Softwaretool, mit dem Softwareentwickler ihren C/C++ Code testen. Später war Jürgen Teil des Support-Teams bei Cisco Systems, wo er Methoden zum Testen von Software entwickelte und die Automatisierung von Tests durch Shell Scripts unterstützte.

Software Tools

Java C/C++ Perl Shell Scripts

Details >

Symbol of Test Software Systems

Software Testing

Cisco Systems & Crosstest

In der Start-up Crosstest, San Mateo, Kalifornien, hat Jürgen in einem kleinen Team Module für ein Softwaretool entwickelt, das Unit-Testfälle für C/C++-Funktionen generiert. Das Tool unterstützt Softwareentwickler beim Testen ihrer Softwarefunktionen, um Fehler im Code frühzeitig zu erkennen und zu beseitigen. Der CEO von Crosstest, Khalid Sebti, war sehr begeistert von einem neuen Softwaremodul, das Jürgen entwickelte, und bemerkte: „Jürgen, du hast die Messlatte für uns sehr hoch gelegt!“

Mit einem ähnlichen Ziel vor Augen arbeitete Jürgen im Supportteam bei Cisco Systems, San Jose, Kalifornien. Im Team entwickelte Jürgen Shell Scripts für die Testautomatisierung und allgemeine Richtlinien für das Testen von Software. Eine weitere wichtige Aufgabe des Teams war es, die Softwareentwickler mit diesen neuen Tools und Methoden vertraut zu machen und sie bei der Anwendung zu unterstützen.

Software Tools

Java C/C++ Perl Shell Scripts

Symbol of Search for Contacts

Web Page Filtering

Auto-Handels-Service

Symbol of Search for ContactsJürgen entwickelte ein Softwareprogramm, das die Webseiten eines Online-Fahrzeugmarktes nach Kontaktdaten von Autohändlern durchsucht, die für den Auto-Handels-Service interessant sind. Die gefundenen Kontakte werden für kommerzielle Programme so aufbereitet, dass die Daten dort einfach importiert werden können.

Software Tools

Python PHP Beautiful Soup JSON Selenium WebDriver Shell Scripts

Details >

Symbol of Search for Contacts

Web Page Filtering

Auto-Handels-Service

Ein Berliner Auto-Handels-Service wünschte sich ein Softwareprogramm, das die generierten Webseiten eines Online-Fahrzeugmarktes nach ausgewählten Kriterien (Marke, Preis etc.) durchsucht und aus der Informationsflut für ihn interessante Kontaktadressen herausfiltert.

Eine Herausforderung bei diesem Projekt war die hohe Anzahl an Anfragen an den Webserver des Online-Portals (mehr als 50.000) und die damit verbundenen Verzögerungen oder gar Abbrüche durch den Webserver.

Die Lösung des Problems bestand darin, Abfragen in kleinere Einheiten zu zerlegen und die Zwischenergebnisse in einem Standardformat zu speichern. Dadurch konnten die Daten letztendlich unabhängig von der Internetverbindung zu den gewünschten Händlerlisten zusammengeführt werden. Die generierte Liste kann nun einfach aus einem Standardprogramm, zum Beispiel Microsoft Excel oder Apple Numbers, importiert und übersichtlich als Tabelle dargestellt werden.

Diese Lösung machte das Softwaresystem nicht nur robuster und skalierbarer, sondern auch schneller.

Software Tools

Python PHP Beautiful Soup JSON Selenium WebDriver Shell Scripts

Section Headline