Schwerpunkte auf MDSD, MDA, TDD und agiler (iterativ inkrementeller) Entwicklung vorzugsweise im Bereich RCP oder Web-Service-Back-Ends.
Aktualisiert am 05.08.2023
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 04.10.2023
Verfügbar zu: 100%
davon vor Ort: 100%
Modellbasierte Software-Entwicklung
OOD
GoF-Patterns
Requirements-Engineering und -management
TDD
UML

Einsatzorte

Einsatzorte

Erlangen (D-91056, D-91058, D-91052, D-91054) (+200km) München (+100km) Mindelheim (+100km) Deggendorf (+75km)

Remote-Arbeit ist möglich.

möglich

Projekte

Projekte

3 Jahre 7 Monate
2019-09 - 2023-03

Supportleistungen für ein Nürnberger Bundesamt

Requirementsingenieur, SW-Architekt, -Entwickler und -Tester Atlassian Confluence Atlassian JIRA MVC ...
Requirementsingenieur, SW-Architekt, -Entwickler und -Tester

Pflege und Erweiterung von Workflow-Management-Systemen auf JIRA-Basis mit Fokus auf den eigenentwickelten Plugins, die MVC-Services auf Apache-Velocity-Basis und SPAs auf SOY/Javascript-Basis implementieren. Nutzung von JUnit/Mockito und statischer Code-Analyse durch SonarQube zur Unterstützung der QS.


Eclipse git maven Jenkins apache velocity templates soy templates JIRA tomcat JavaScript OSGI JIRA-Plugins Bitbucket Mockito SonarQube JUnit Innovator (MID GmbH) Oracle Apache Tomcat
Atlassian Confluence Atlassian JIRA MVC SPA REST GoF-Patterns JSON UML 2.5 BPMN SOLID-Principles Java JavaScript Scrum Jenkinsfiles Agile SQL
Ein Nürnberger Bundesamt im Auftrag eines Berliner Systemhauses
Nürnberg, Erlangen (Home-Office)
2 Jahre 9 Monate
2018-09 - 2021-05

Toolchaining

Software-Architekt, -Ingenieur, -Tester und Systemintegrator JEE8 Spring Boot Docker ...
Software-Architekt, -Ingenieur, -Tester und Systemintegrator

Modernisierung und Verfeinerung selbst erstellter Softwarekomponenten zur Verkettung gegebener Werkzeuge und Frameworks zur Unterstützung der Softwareentwicklung und Projektabwicklung; Bewertung von Softwarewerkzeugen und Frameworks bezüglich ihrer Eignung für diese Zwecke.

JEE8 Spring Boot Docker MongoDB elasticsearch BIRT
Andreas Schmid
Erlangen
1 Jahr 10 Monate
2016-11 - 2018-08

Diagnostics - Java and RCP Development

Product Owner, Software-Entwickler, Customer Support OTX (Open Test sequence eXchange - ISO 13209) UML2 Scrum
Product Owner, Software-Entwickler, Customer Support

Technologischer Kontext:

Um Operationen wie

  • Diagnose,

  • Tests,

  • Re-Programmierung oder

  • Initialisierung

von Automobilkomponenten oder Funktionen mit diagnostischen Fähigkeiten durchzuführen, nutzt man diagnostische Testsequenzen.

Solche Operationen können mit off-board Testsoftware ausgeführt werden.

Die OTXSuite ist solche Software.

Neben ihrer Ausführung ist die Entwicklung und der Test solcher

Operationen das Hauptleistungsmerkmal der Suite.

Testsequenzen definieren die Abfolge von Interaktionen zwischen dem Anwender, der Diagnoseanwendung und der Kommunikationsschnittstelle des Fahrzeugs.

Der Anwender kann ein Mitglied des Werkstatt- oder Montagepersonals sein.

Die Sequenzen definieren zudem alle Berechnungen und Entscheidungen, die für eine geführte Diagnose oder ähnliche Testlogik gebraucht werden.

OTX (Open Test sequence eXchange, ISO 13209) schlägt ein offenes und standardisiertes, xml-basiertes, von Menschen und Maschinen lesbares Datenformat zur Beschreibung diagnostischer Testsequenzen vor.

Sein Einsatzzweck:

Das Format unterstützt den einheitlichen Transfer diagnostischer

Testsequenzen zwischen

  • Zulieferern elektronischer Systeme,

  • Fahrzeugherstellern,

  • Händlern und

  • Werkstätten.

In OTX definierte diagnostische Testsequenzen werden im folgenden als OTX-Sequenzen bezeichnet.

Durchgeführte Tätigkeiten:

Erster Vertrag, ursprüngliche Aufgabenstellung:

Refactoring der OTXSuite, die ursprünglich von der In2Soft GmbH entwickelt wurde.

Technische Merkmale der Suite:

  • Außendarstellung (VIEW): Grafische Darstellung einer OTX-Sequenz unter Verwendung von GEF.

  • Datenmodell (MODEL): Apache XMLBeans (https://xmlbeans.apache.org/).

Das Refactoring wurde nötig, da unter anderem die Implementierung des Datenmodells auf Apache XMLBeans basierte, deren Pflege seit Mai 2014 eingestellt ist.

Architekturelles Refactoring:

Ziel: Entwirren der Komponenten-Verantwortlichkeiten bis Komponenten mit Model-, View- & Controller-Verantwortlichkeiten klar getrennt sind.

Anschließend Austausch der Komponenten mit Model-Verantwortlichkeiten.

  • Zu diesem Zweck Analyse der OTXSuite im Bezug auf Ansätze zur Migration von Apache XMLBeans zu EMF unter Verwendung des XText-Frameworks bei gleichzeitiger Migration von Eclipse 3 nach Eclipse 4.

  • In diesem Zusammenhang Skizzierung von Ansätzen zum Aufbau einer ausreichenden Test-Abdeckung, die die Voraussetzung jeglicher Refactoring-Maßnahmen ist, bis das Refactoring abgeblasen wurde.

    • Es wurde zu Gunsten des Neubaus der OTXSuite unter Verwendung von Web-Technologien abgeblasen.

Product ownership (PO == project managment + marketing) der OTXSuite:

Übernahme der Produkt-Owner-Ship für die OTXSuite gegenüber einem englischen Kunden der KPIT um die Lücke zu schließen, die durch den Weggang des bisherigen POs entstand.

Diese Aufgabe wurde durchgeführt bis sie an einen neu eingestellten OTX-Experten übergeben werden konnte.

Erweiterung einer Authoring-Guideline:

Anpassung eines Authoring-Style-Guides an die Bedürfnisse des englischen Kunden in enger Zusammenarbeit mit dem Kunden.

Dies schloss die Definition kundenspezifischer Validierungsregeln

(Checker-Rules) zur Ergänzung der bereits in ISO 13209 enthaltenen Kern-Regeln ein.

Requirements-Engineering:

Definition kundenspezifischer Anforderungen an die OTXSuite und ein eigenständiges Validierungswerkzeug, das als OTX-Checker bezeichnet wurde.

Der Checker war darauf ausgelegt neben den Validierungsregeln des ISO 13209 weitere kundenspezifische Regeln umzusetzen.

Prozesseinbettung:

Erstellung des ersten Entwurfs des Entwicklungsprozesses in enger Zusammenarbeit mit dem Kunden.

Der Prozess deckte die Anwendung der OTXSuite,

des oben erwähnten Checkers und anderer von KPIT bereitgestellter Werkzeuge innerhalb der Fahrzeug-Entwicklung und -Produktion des Kunden ab.

6 aufeinander folgende Vertragsverlängerungen:

Product-support für einen deutschen Kunden der KPIT:

Kundensupport und Pflege der OTXSuite V1.0 für einen deutschen Kunden der KPIT auf technischer Ebene.

Pflege-Strategie: Geringst mögliche Änderung - Lasse so viel wie möglich unverändert.

Fehlereingrenzung, -verfolgung und -behebung,

Requirements-Engineering sowie Produkterweiterungen:

  • Fehlerbehebung und Umsetzung von Erweiterungen, die in enger Zusammenarbeit mit dem Kunden definiert wurden.

  • Unterstützung des Kunden im Umgang mit Datenbestandsaktualisierungen unter anderem durch das Refactoring alter mit der Suite erstellter OTX-Sequenzen.

    • Dies wurde durch Junit4-tests erreicht, die die Rolle von White-Box-Tests übernahmen.

  • Durchführung eines Konzeptübergangs innerhalb des Ansatzes des Kunden zur geführten Fehlersuche in enger Zusammenarbeit mit dem Kunden der KPIT.

    • Beim Übergang gewählte Strategie: Iterativ, inkrementell unter Verwendung von Engineering-Releases und koordiniertes, schrittweises Refactoring alter OTX-Sequenzen.

  • Ausarbeitung eines Use-Case-Models, das die funktionalen Anforderungen an den vom Kunden KPITs verfolgten Ansatz zur geführten Fehlersuche wiedergibt. Die Modellierung erfolgte in UML2 unter Verwendung von Enterprise Architect.
Eclipse RCP Eclipse 3 Eclipse 4 Xtext Xtend Graphical Editing Framework (GEF) EMF Apache XMLBeans JIRA Bugzilla Enterprise Architect Atlassian Confluence
OTX (Open Test sequence eXchange - ISO 13209) UML2 Scrum
KPIT Technologies GmbH
München
1 Jahr 2 Monate
2015-09 - 2016-10

Vorbereitung eines Open-Source-Projekts

Software-Ingenieur, Tester, Systemintegrator UML2 Java Continuous Integration ...
Software-Ingenieur, Tester, Systemintegrator

Projektkontext:

Implementierung einer Applikation zur Visualisierung des Verhaltens von UML2-konformen hierarchischen Zustandsautomaten.

Zwei Ansätze zur Erzeugung von Automaten werden umgesetzt:

Die Zustandsautomaten sind über eine DSL spezifizierbar und UML2-konform durch ein UML-Tool modellierbar. In beiden Fällen wird eine gemeinsame Java-Library verwendet. Ihre Implementierung lehnt sich stark an das UML2-Metamodel für hierarchische Zustandsautomaten an.

DETAILS:

  • DSL-basierter Ansatz: Generierter Java-Code implementiert das Verhalten unter Verwendung der Library.

  • UML-basierter Ansatz: Spring-core instanziiert, initialisiert und verdrahtet Klassen aus der Library.

Entwicklungsstand:

  • Die Java-Library ist soweit ausimplementiert, dass sie Deep-History auf alle Hierarie-Ebenen unterstützt. Parallel zueinander ablaufende Automaten werden demgegenüber noch NICHT unterstützt.

  • Spezifikation von UML-State-Charts durch eine DSL auf Xtext-Basis und Code-Generierung durch XTend2-Templates ist möglich. Die Implementierung liegt als stabiler, lauffähiger Prototyp vor.

  • Konvertierung von UML-State-Charts im XMI-Format in spring XML beans als testbarer lauffähiger Prototyp.

  • Integrationstests als parametrisierte Junit-Tests.

Nächste Schritte:

  • Aufsetzen der Build- und Testautomatisierung (CI) auf der Basis von Jenkins, SVN, GIT und Maven Tycho.

  • Visualisierung ausgewählter aus der Spezifikation erzeugter EMF (ecore)-Komponenten mittels GEF. Hierfür liegt ein lauffähiger Demonstrator vor, der im Zuge der Einarbeitung in GEF in Anlehnung an Beispiele aus dem Internet erstellt wurde.

Spring-core Eclipse RCP e4 Jenkins Xtext XTend2 SVN Git Maven Tycho GEF EMF
UML2 Java Continuous Integration uml2 state charts (metamodel)
Erlangen
7 Monate
2015-01 - 2015-07

Optimierung eines Web-Services zur Koordination der Paketzustellung in einem Logistikunternehmen

Unternehmensberater im Bereich Software Engineering Client-Server-Architekturen Client-Virtualisierung GoF Patterns ...
Unternehmensberater im Bereich Software Engineering

Übernahme, Migration, Integration, Konsolidierung, Test, Dokumentation und Verfeinerung von Software zur Transformation von Zustelladressen für Pakete. Die verfeinerte Software ist Teil eines Systems zur Koordination der Paketzustellung in einem Logistikunternehmen.

  • Verfeinerung durch Quellcode-Refactoring und Optimierung der OO-Architektur der Komponenten zur Transformation von Zustelladressen;
  • Refactoring unter Befolgung allgemein anerkannter Entwurfsprinzipien (SOLID Prinzipien) und unter vorteilhafter Anwendung objektorientierter Entwurfsmuster (GoF Patterns);
  • Erstellung parametrisierter JUnit-Tests als System- und Regressionstests für den gesamten Java-Anteil des Kundenidentifikationsdienstes;
  • Schaffung der Möglichkeit Testdaten als Excel-Tabellen bereitzustellen sowie Unterstützung von Tabellenstrukturen im Umgang mit Testdaten (Apache POI);
  • Testgetriebene Entwicklung ausgehend von Testdaten, die zur Erreichung hoher Qualitätsstandards eine hohe Testabdeckung garantieren;
  • Konsolidierung durch die schrittweise Fehlereingrenzung und -korrektur sowie die Verfolgung der Verhaltensabweichung;
  • Analyse, Eingrenzung und Behebung gemeldeter Fehler;
  • Proaktive, zeitnahe, verzögerungsfreie Meldung sich abzeichnender Risiken und Probleme;
  • Erkennung möglicher Maßnahmen zur Verringerung oder Begrenzung gemeldeter Risiken und Findung von Lösungsansätzen;
  • Erstellung von Dokumenten mit anschaulichen und praxisnahen Beispielen für Nicht-Entwickler;

Zur Vorbereitung auf und begleitend zum Projekteinsatz: Erweiterung des Fachwissens über Spring und JPA zur Bewertung dieser Technologien im Hinblick auf ihre Anwendbarkeit im laufenden und in folgenden Projekten.

Apache POI Eclipse JDBC Java EE Java SE Java Standard Edition (JSE) JPA JUnit SVN POI POI
Client-Server-Architekturen Client-Virtualisierung GoF Patterns Objektorientierte Softwareentwicklung mit UML OOA OOD OOP SOLID Prinzipien SQL TDD Test-Driven Development UML Java Clean Code
Bonn
9 Monate
2014-01 - 2014-09

Schienenfahrzeug-Test-Automatisierung

Software-Ingenieur, Tester Client-Server-Architektur Client-Virtualisierung GoF Patterns ...
Software-Ingenieur, Tester

Konzeption, Planung, Automatisierung, Implementierung und anschließende Ausführung von Integrations- und Systemtests, denen aufgrund des sicherheitsgerichteten Entwicklungsumfelds eine besondere Bedeutung zukommt.

Die zu testende Software kommt in verschiedenen internationalen Kundenprojekten u .a. im Hochgeschwindigkeits-Schienenverkehr zum Einsatz.

Ausgeführte Aufgaben im Detail:

  • Konzeption der Testfälle, Realisierung mittels Eclipse in Python 2.7 (PyUnit) und Integration in das kundenspezifische Testausführungssystem (TMS - Test Management System) für die automatisierte Ausführung.
  • Im Rahmen der Testfallrealisierung erfolgte sowohl die client- wie serverseitige Analyse und Implementierung von RESTfuI Webservices auf HTTP-Basis.
  • Serverseitig erfolgte die Implementierung von Mock-Ups für RESTfuI Webservices (CherryPy), gegen die zur Steigerung der Entwicklungseffizienz die clientseitige Implementierung (requests, IxmI) getestet wurde, um sie auf ihren Einsatz vorzubereiten. Hierdurch konnte die Testanlage stark entlastet werden.
  • Weiterleitung der Testergebnisse an die Reporting-Infrastruktur unmittelbar nach der Ausführung (SonarQube).
  • Risikogetriebene Auswahl und Entwicklung der Tests unter Einsatz eines agilen Entwicklungsprozesses (SCRUM).

Durch diese Vorgehensweise konnte die frühzeitige Aufdeckung und Weiterleitung einer Reihe von Fehlern in der Software erreicht werden.

CherryPy Rational ClearCase Rational ClearQuest Eclipse PyDev lxml (Bibliothek zur Verarbeitung von XML und HTML mit Python) PyUnit requests (HTTP library für Python) Umbrello UML Modeller Lighttpd Wireshark
Client-Server-Architektur Client-Virtualisierung GoF Patterns HTTP Linux als Entwicklungsumgebung Objektorientierte Softwareentwicklung mit UM OOA OOD OOP Python 2.7 RESTfuI Webservices auf HTTP-Basis SOLID Prinzipien TDD Test-Driven Development UML REST Clean Code
Erlangen
1 Jahr 1 Monat
2012-06 - 2013-06

Collaborative Manufacturing Network for Competitive Advantage

Software-Entwickler Anforderungs-Analyse C/C++ Client-Server-Architektur ...
Software-Entwickler

Spezifikation und prototypische Umsetzung von ''Mobile Maintenance'' mit einem Front-End auf Android 4-Basis und einem Back-End aus in Java implementierten FCGI-Deamons, die via HTTP kommunizieren und in C++ implementierte Tests anstoßen. Im Rahmen dessen Integration eines in Java auf Eclipse-RCP-Basis implementierten Testmanagement-Werkzeugs als FCGI-Deamon und Anbindung desselben an Virtuoso-Sparql-Endpoints mittels Linked Data sowie Implementierung eines koordinierenden Daemons unter Befolgung der SOLID-Prinzipien bei vorteilhafter Verwendung geeigneter OO-Design-Patterns (GoF-Patterns).

Android-SDK Apache AXIS 2 Apache CXF ARQ (SPARQL Processor) AWK BASH Fuseki (SPARQL server) FusionForge (Projektmanagement und -kollaboration) GIMP hiawatha-webserver JUnit 4 openSUSE Kubuntu PowerPoint Protégé (Editor zur Modellierung von Ontologien) SED SoapUI SVN Apache Tomcat Trac Umbrello UML Modeller VirtualBox Virtuoso Wireshark
Anforderungs-Analyse C/C++ Client-Server-Architektur Client-Virtualisierung Code-Generierung Eclipse-RCP Eclipse-PDE FCGI Geschäfts-Prozess-Analyse Geschäfts-Prozess-Modellierung GoF-Patterns HTTP Java Standard Edition (JSE) Java Enterprise Edition (JEE) JEE Patterns Linux als Entwicklungsumgebung Modellgetriebene Softwareentwicklung (MDSD) MVC Pattern (JEE) Objektorientierte Softwareentwicklung mit UML OOA OOD OOP Resource Description Framework (RDF) RESTfuI Webservices auf HTTP-Basis SOAP SOLID Prinzipien Test-Driven Development (TDD) UML Linux Administration REST Clean Code
München
8 Monate
2011-10 - 2012-05

eMobility - MDSD (Model-Driven Software Development) basierend auf ROOM mittels eTrice.

Software-Ingenieur, Tester awk Bash GoF-Patterns ...
Software-Ingenieur, Tester

Projektkontext: Entwicklung einer kundenspezifischen Variante des Modellierungswerkzeugs eTrice, das die Modellierungssprache ROOM (Real-Time Object-Oriented Modeling) unterstützt. Das Modellierungswerkzeug verfügt über einen graphischen Editor (Graphiti) und einen Texteditor (DSL auf Xtext-Basis).
Die Variante sollte die modellgestützte Entwicklung
von Steuergerätesoftware basierend auf einer erweiterten Variante von ROOM unterstützen.

Im Rahmen dessen erfüllte Aufgaben:

  • Erstellung von ROOM-Modellen zum Regressionstest des kundenspezifischen C-Code-Generators (Xtend2 Template Expressions) und von Dokumentation zur Einführung der Endbenutzer in die kundenspezifische Variante der Modellierung mit ROOM/eTrice;
  • Eingrenzung auftretender Fehler auf Java-Code- und Modell-Ebene sowie Ausarbeitung von Korrekturvorschlägen;
  • Betreuung der Endbenutzer bei der Modellierung unter Verwendung der erstellten Dokumentation;
  • Aufsetzen und Betreuung der Continuous Integration (Hudson);
Apache Ant Apache AXIOM Eclipse-CDT Eclipse-PDE Eclipse-RCP EMF eTrice GIMP Hudson Java Standard Edition (JSE) JUnit make makefile MinGW CUTE C++ Unit Testing Easier Subversion SVN Xtend2 XText Licence Protector (Mirage Computer Systems GmbH) RCP
awk Bash GoF-Patterns Hierarchical FSMs Java Linux als Entwicklungsumgebung MDSD Modellgetriebene Softwareentwicklung Objektorientierte Softwareentwicklung mit UML UML OOA OOD OOP OSGi-Bundles ROOM Code-Generierung SED SOLID Prinzipien TDD Test-Driven Development XML C UML Superstructure State Machines Clean Code Continuous Integration
Herzogenaurach
2 Jahre
2009-11 - 2011-10

Entwicklung eines Testmanagementwerkzeugs für den Embedded-Bereich

Software-Ingenieur awk Bash Client-Virtualisierung ...
Software-Ingenieur

Projektkontext: Entwicklung des Testmanagementwerkzeugs CETES, das Teil eines modellbasierten Testsystems im Embedded Bereich ist.

Im Rahmen dessen:

  • Erstellung und Pflege der automatischen Erstellung des Reports zur Testfall- und Requirementsabdeckung von CETES unter Einsatz des Business Intelligence and Reporting Tools (BIRT - Report-Designer auf Eclipse-RCP-Basis);
  • Evaluierung des Licence Protectors der Mirage Computer Systems GmbH auf Eignung für CETES.
Apache AXIOM BIRT dokuWiki Eclipse-PDE Eclipse-RCP Enterprise Architect GIMP Java Standard Edition (JSE) Oracle-DB Subversion SVN Umbrello UML Modeller VirtualBox RCP
awk Bash Client-Virtualisierung Code-Generierung GoF-Patterns Java Linux als Entwicklungsumgebung MDSD Modellgetriebene Softwareentwicklung Objektorientierte Softwareentwicklung mit UML OOA OOD OOP SQL Model Based System Engineering SED SOLID Prinzipien TDD Test-Driven Development UML XML XSD Clean Code
München
11 Monate
2010-07 - 2011-05

Requirements Engineering im Wehrtechnik-Bereich unter Einsatz von UML

Requirements Ingenieur Objektorientierte Softwareentwicklung mit UML OOA Requirements Management ...
Requirements Ingenieur

Im Rahmen der multinationalen Entwicklung eines Luftabwehrsystems:

  • Analyse und Qualitätssicherung der Anforderungen an zwei Subsysteme;
  • Nachverfolgung und Konsistenzprüfungen im Rahmen des Änderungsmanagements der Anforderungen;
  • Prozessoptimierung durch die Automatisierung der Änderungsantragserstellung für Anforderungen.
IBM Rational Rose RT IBM RequisitePro Reqtify MS Excel
Objektorientierte Softwareentwicklung mit UML OOA Requirements Management UML Excel-VBA-Programmierung V-Modell
Unterschleißheim
5 Jahre 10 Monate
2005-03 - 2010-12

Schulungsdurchführungen

Schulungsleiter
Schulungsleiter

Gelegentliche Unterstützung des Schulungsbereichs der Kölsch & Altmann Software & Management Consulting GmbH mit der Durchführung von C++ und UML-Schulungen. Projektbezogener Aufbau von Know-How und Anwendungserfahrung mit den Realzeit-Erweiterungen von Rose RT im UML-Umfeld und Aufbereitung der gewonnenen Erfahrungen in einer Weise, die ihre Verwendung zu Schulungszwecken erlaubt.

München
2 Jahre 2 Monate
2008-02 - 2010-03

Validierung des E/E-Bordnetz-Architektur-Prozesses für einen Automobil-Konzern

Requirements Ingenieur Anforderungs-Analyse eEPK erweiterte Ereignis-Prozess-Ketten (eEPK) ...
Requirements Ingenieur

Projektkontext: Optimierung des Designprozesses von E/E-Bordnetzen durch die Verbesserung seiner Toolunterstützung und durch Umstellung auf einen Katalog funktionaler Anforderungen als Ausgangspunkt für die Bordnetzentwicklung.
Im Rahmen dessen erfüllte Aufgaben:

  • Anwenderseitiges Requirements Engineering für kundenspezifische Erweiterungen eines Tools zur E/E-Bordnetzentwicklung (PREEvision der Firma Aquintos);
  • Requirements- und Änderungsmanagement für einen Katalog funktionaler Anforderungen an E/E-Bordnetze;
  • Analyse und Dokumentation von Teilen des E/E-Bordnetzentwicklungsprozesses anhand eines vorgegebenen Beispiels mit Hilfe von eEPKs;
  • Synchronisation ausgewählter Teilprozesse als Basis für die Anwendung eines im Auftrag eines OEM durch einen seiner IT-Zulieferer entwickelten Tools zur Unterstützung des E/E-Bordnetzentwicklungs- und -testprozesses;
  • Requirementsdefinition für Erweiterungen und Anpassungen des letztgenannten Tools auf der Basis selbst gemachter Anwendungserfahrungen;
  • Ausarbeitung von Datenmigrationskonzepten sowie Ausführung, Betreuung und Überwachung der Datenmigration aufsetzend auf den ausgearbeiteten Konzepten;
  • Erweiterung und Verfeinerung der Datenmigrationskonzepte auf der Basis der bei der Migrationsdurchführung gemachten Erfahrungen;
  • Aufbereitung von Daten als Planungsgrundlage für die Integrationsstufenplanung von E/E-Bortnetzen.

Apache AXIOM Apache POI Java Standard Edition (JSE) MS Excel MS Powerpoint MS Word System42 PREEvision (aquintos GmbH/Vector Informatik GmbH)
Anforderungs-Analyse eEPK erweiterte Ereignis-Prozess-Ketten (eEPK) Geschäfts-Prozess-Analyse Geschäfts-Prozess-Modellierung Java Modellgetriebener System-Entwurf OOA Requirements Management SOAP UML VisualBasic-Makros für MS Excel VisualBasic-Makros für MS Powerpoint XML XSD V-Modell
Wolfsburg
3 Monate
2007-11 - 2008-01

Evaluierung JEE

Software-Ingenieur JPA BPEL
Software-Ingenieur

Projektkontext: Umsetzung einer vorhandenen firmeninternen Anwendung für das Projekt-Controlling unter Verwendung neuer Software-Architekturen auf der Basis moderner und leichtgewichtiger Frameworks zur Evaluierung der hierzu verwendeten Frameworks und Technologien.

Im Rahmen dessen:

  • Persistierung von Anwendungsdaten mit Hibernate;
  • Validierung von JPA.
Hibernate EclipseLink
JPA BPEL
München
8 Jahre 10 Monate
1999-01 - 2007-10

Entwicklung eines Voice over IP Gateways

Software-Ingenieur, Tester, Systemintegrator, Task-Force-Manager awk Bash C/C++ ...
Software-Ingenieur, Tester, Systemintegrator, Task-Force-Manager

Projektkontext: Erstellung und iterativ inkrementelle Erweiterung eines in C++ implementierten Real Time Voice over IP Gateways zur Ausführung unter VxWorks und Linux. Das Gateways setzt sich aus verschiedenen Subsystemen zusammen. Jedes Subsystem hat eine klar abgegrenzte Verantwortlichkeit. Es ist kompatibel zu einer vorgegebenen Schnittstelle und registriert sich bei einer koordinierenden Komponente. Über diese Komponente läuft die Kommunikation zwischen den Subsystemen. Das macht die Subsysteme austauschbar und erleichtert die Erweiterung des Systems. Jedes Subsystem implementiert einen endlichen Zustandsautomaten. Im Zusammenspiel der Subsysteme ergibt sich ein System aus verschiedenen endlichen Automaten, die miteinander über synchronen und asynchronen Meldungsaustausch kommunizieren.

Mitarbeit bei der modellbasierten Entwicklung mehrere Releases des Gateways in der jeweiligen Requirementsanalyse-, Spezifikations-, Design-, Implementations- und Integrationsphase. Je nach Phase in der Rolle des

  • Analysten,
  • OO-Designers,
  • OO-Programmierers,
  • Integrators,
  • Testers und
  • Task-Force-Leaders

letzteres im Rahmen der koordinierten Lösung sehr dringender, komplexer Probleme.

Unterstützung des Kundenservices bei der Bewältigung von Problemen mit Gateway- Releases im Kundeneinsatz zum Teil auch durch Einsatz bei Endnutzern der VoIP-Gateways vor Ort.

In enger Zusammenarbeit mit den Entwicklungsteams des Kunden Einbringung der

  • Unterstützung reibungsloser Fax- und Modem-Übertragungen,
  • der Unterstützung des SIP-Protokolls und

  • standardkonforme Einbringung des Leistungsmerkmals Anrufweiterschaltung (Call Diversion Recommendation ITU-T H.450.3).

Hierbei Implementation und Integration neuer Subsysteme. Je nach Entwicklungsschwerpunkt dauerhafte oder vorübergehende Übernahme der Verantwortung für Wartung, Erweiterung und Pflege weiterer Subsysteme. Die Entwicklung erfolgte tool-gestützt in UML unter Verwendung der UML-Tools Innovator 6.2 und Umbrello.

In den jeweiligen Spezifikationsphasen

  • Ausarbeitung von Vorschlägen für die Gestaltung des OO-Designs unter Befolgung der SOLID-Prinzipien bei vorteilhafter Kombination geeigneter GoF-Patterns unter Nutzung des UML-Tools Innovator 6.2;
  • Auswahl und Anpassung eines der gemachten Vorschläge in enger Zusammenarbeit mit den Entwicklungsteams des Kunden;

Ergebnis: UML-Modelle, aus dem Code generiert werden konnte.

In den Implementationsphasen

  • Umsetzung des jeweiligen UML-Modells unter Nutzung des Code-Generators des UML-Tools Innovator 6.2, um aus Klassendiagrammen C++-Komponenten zu erzeugen;
  • Bei der Einbringung der Fax-/Modem-Unterstützung Nutzung des Umbrello UML Modellers zur Generierung von C++-Code aus mit Umbrello erstellten Zustandsdiagrammen und zur Generierung von Testfällen aus Sequenzdiagrammen unter Einsatz eines selbst erstellten Code-Generators, der auf XSLT-Skripten basierte;
  • Testgetriebene Einbringung (TDD) manueller Erweiterungen der generierten Komponenten unter Nutzung von Microsoft Visual C++ 6.0 als Programmierumgebung, ClearCase zum Source-Code-Konfigurationsmanagement und Route98 (Mock-Up-Erstellung) zur Testausführung in der Entwicklungsumgebung;
  • Ausarbeitung und Durchführung von Regressionstests mit Route98 in der Entwicklungsumgebung;
  • Vorbereitung der Integration durch Ausarbeitung und Durchführung von überlappenden Teilintegrationstests.

In den Integrationsphasen Einsatz als Integrator und Integrationstester mit Schwerpunkt auf Last- und Stresstests.

Im Detail:

  • Fehlersuche auf dem Zielsystem mit Schwerpunkt auf Memory-Leak-Suche mit zugekauften kommerziellen und vom Kunden selbst erstellten Tools, die auf die Eingrenzung von Memory-Leaks spezialisiert waren, die nur unter hoher Systemlast auftraten;
  • Eingrenzung sporadisch auftretender Zugriffsverletzungen im Umweg über Memory-Leak-Eingrenzung, da viele Zugriffsverletzungen auch Memory-Leaks verursachen, so dass deren Behebung auch oft Zugriffsverletzungen behoben;

Ergebnis: Steigerung der Stabilität und Zuverlässigkeit durch Steigerung der Zwischenausfallzeit (Mean-Time-To-Failure) auf die geforderte Länge.

Produktbetreuung für alte Releases. Im Rahmen dessen Fehler- und Änderungsmanagements sowie die Führung und Koordination von Teams, die im Bedarfsfall zur Eingrenzung und Behebung besonders schwieriger Probleme zusammengestellt wurden.

Erleichterung der Fehlereingrenzung durch Schaffung der Möglichkeit zum Nachstellen von Endbenutzerproblemen in der Entwicklungsumgebung.

Zu diesem Zweck:

  • Generierung von Testskripten aus Trace-Ausgaben mit Hilfe selbst erstellter Shell-, awk- und sed-Skripte;
  • Erstellung von Skripten zur Isolierung und Analyse von Schlechtfällen aus umfangreichen Gesamt-Traces, die mehrere simultan ablaufende Vorgänge abdecken;
  • Portierung ausgewählter Skripte nach Java zur Herstellung der Plattformunabhängigkeit und Erweiterung um eine GUI zur Verbesserung der Benutzbarkeit durch Kollegen.

Im Rahmen der Implementation, Integration und dem Test der oben erwähnten Erweiterungen zur Steigerung der Zuverlässigkeit von analogen Fax- und Modem-Übertragungen: Eigeninitiative, selbständige Erstellung einer Reihe von Werkzeugen und Verknüpfung vorhandener Werkzeuge zu Werkzeugketten, da geeignete Standardprodukte beim Kunden nicht zur Verfügung standen oder erst hätten adaptiert werden müssen.

Im Rahmen dessen:

  • Zustandsmodellierung mit Hilfe eines Freeware-Tools unter LINUX;
  • Erstellung von XSL- und awk-Skripten zur Generierung von Quellcode für Test- und Systemkomponenten ausgehend von Sequence- und State-Diagrammen aus UML-Modellen im XMI-Format;
  • Später Portierung dieser Skripte nach Java zur Herstellung der Plattform-Unaghängigkeit;
  • Generierung von Quellcode aus einem mit dem Freeware-Tool Umbrello erstellten iterativ erweiterten und angepassten UML-Modell.

Teilintegrationstest der generierten Systemkomponenten mit aus dem UML-Modell ebenfalls generierten Testskripten sowie Erstellung der Systemdokumentation auf der Basis der durch den Test gelieferten Trace-Ausgaben.

In der Integrationsphase der Erweiterung des VoIP-Gateways um das SIP-Protokoll Eingrenzung von Memory-Leaks, die nur unter Last auftraten. Dabei erfolgreiche Führung einer mehrköpfigen, international besetzten Task-Force mit dem Ziel der Steigerung der Leistungsfähigkeit dieses Gateways bei Verwendung des SIP-Protokolls bis zur Erreichung der vorgegebenen Leistungsdaten.

Cygwin GIMP Innovator 6 UML Modeller (MID GmbH) Java Standard Edition (JSE) MemScope (Wind River) Rational Purify Service Center (Siemens AG) Spring-Core Test & Monitoring Tool (TMT) (Siemens AG) Umbrello UML Modeller VC++ 6.0 VxWorks Wireshark Ethereal XSL-(standalone)-Prozessoren/Transformatoren XSLT-Prozessor
awk Bash C/C++ Code-Generierung CVS GoF Patterns H323 H245 HTML IP-Netzwerkanalyse auf Protokoll-Ebene JavaScript Java Linux Administration Linux als Entwicklungsumgebung Modellgetriebene Softwareentwicklung (MDSD) Memory Leak Analyse und Eingrenzung Objektorientierte Softwareentwicklung mit UML OOA OOD OOP RTP SED SIP SOLID Prinzipien TDD UML Unix-Shells Unix VoIP XML XSLT XML Metadata Interchange XMI Clean Code Code Reviews V-Modell
München

Aus- und Weiterbildung

Aus- und Weiterbildung

6 Jahre
1988-10 - 1994-09

Informatik-Studium

Diplom-Informatiker Univ., Friedrich-Alexander-Universität, Erlangen-Nürnberg
Diplom-Informatiker Univ.
Friedrich-Alexander-Universität, Erlangen-Nürnberg

Diplomarbeit:

„Spezifikation klassischer BLAS-,LINPACK- und EISPACK-Algorithmen in ASL-II und diesbezügliche Bewertung der Spracheigenschaften.“

Studienarbeit:

„Implementierung des primalen Schnittebenenverfahrens von Young auf einem SIMD-Rechner“

Nebenfach (Hauptstudium):

Mathematik

Nebenfach (Grundstudium):

Betriebswirtschaftslehre

Schwerpunkte:

  • Programmiersprachen,
  • parallele Programmierung für SIMD (single instruction multiple data) und MIMD (multiple instruction multiple data) Systeme,
  • Numerische Verfahren für SIMD- und MIMD-Systeme

Kompetenzen

Kompetenzen

Top-Skills

Modellbasierte Software-Entwicklung OOD GoF-Patterns Requirements-Engineering und -management TDD UML

Produkte / Standards / Erfahrungen / Methoden

Anforderungs-Analyse
Apache Ant
Apache AXIOM
Apache AXIS 2
Apache CXF
Apache POI
Apache Tomcat
apache velocity templates
Apache XMLBeans
Atlassian Confluence
Atlassian JIRA
BIRT
Bugzilla
C++ Unit Testing Easier
CherryPy
Clean Code
Code Reviews
Code-Generierung
Continuous Integration
CUTE
CVS
Cygwin
Docker
dokuWiki
Eclipse
Eclipse 3
Eclipse 4
Eclipse PyDev
Eclipse RCP
Eclipse RCP e4
Eclipse-CDT
eEPK
elasticsearch
EMF
Enterprise Architect
erweiterte Ereignis-Prozess-Ketten (eEPK)
Ethereal
eTrice
FusionForge (Projektmanagement und -kollaboration)
GEF
Geschäfts-Prozess-Analyse
Geschäfts-Prozess-Modellierung
Git
Graphical Editing Framework (GEF)
H245
H323
Hierarchical FSMs
HTML
Hudson
IBM Rational Rose RT
IBM RequisitePro
Innovator 6 UML Modeller (MID GmbH)
IP-Netzwerkanalyse auf Protokoll-Ebene
Java Enterprise Edition (JEE)
JEE8
Jenkins
JIRA
JIRA-Plugins
JUnit
JUnit 4
Licence Protector (Mirage Computer Systems GmbH)
Lighttpd
Linux Administration
lxml (Bibliothek zur Verarbeitung von XML und HTML mit Python)
maven
Maven Tycho
MDSD
Memory Leak Analyse und Eingrenzung
MemScope (Wind River)
MinGW
Model Based System Engineering
Modellgetriebene Softwareentwicklung
Modellgetriebene Softwareentwicklung (MDSD)
Modellgetriebener System-Entwurf
MS Excel
MS Powerpoint
MS Word
MVC
OSGI
OSGi-Bundles
OTX (Open Test sequence eXchange - ISO 13209)
POI
PowerPoint
PREEvision (aquintos GmbH/Vector Informatik GmbH)
PyUnit
Rational ClearCase
Rational ClearQuest
Rational Purify
RCP
Reqtify
requests (HTTP library für Python)
Requirements Management
REST
ROOM
Scrum
Service Center (Siemens AG)
SOAP
SoapUI
soy templates
SPA
Spring Boot
Spring-Core
Subversion
SVN
System42
Test & Monitoring Tool (TMT) (Siemens AG)
Test-Driven Development (TDD)
tomcat
Trac
Umbrello UML Modeller
UML
UML Superstructure State Machines
V-Modell
VC++ 6.0
VirtualBox
Virtuoso
VoIP
Wireshark
XMI
XML
XML Metadata Interchange
XSD
XSL-(standalone)-Prozessoren/Transformatoren
XSLT-Prozessor

Betriebssysteme

Client-Virtualisierung
Kubuntu
Linux als Entwicklungsumgebung
openSUSE
Unix
VxWorks

Programmiersprachen

AWK
BASH
C
C/C++
Excel-VBA
Excel-VBA-Programmierung
Java
Java EE
Java SE
Java Standard Edition (JSE)
JavaScript
JPA
make
makefile
Python 2.7
SED
Unix-Shells
VisualBasic-Makros für MS Excel
VisualBasic-Makros für MS Powerpoint
XSLT
Xtend
Xtend2
XText

Datenbanken

ARQ (SPARQL Processor)
Fuseki (SPARQL server)
JDBC
MongoDB
Oracle-DB
SQL

Datenkommunikation

HTTP
JSON
RESTfuI Webservices auf HTTP-Basis
RTP
SIP

Design / Entwicklung / Konstruktion

Android-SDK
Client-Server-Architektur
Client-Server-Architekturen
Continuous-Integration
Eclipse-PDE
Eclipse-RCP
FCGI
GIMP
GoF Patterns
GoF-Patterns
hiawatha-webserver
JEE Patterns
MVC Pattern (JEE)
Objektorientierte Softwareentwicklung mit UML
OOA
OOD
OOP
Protégé (Editor zur Modellierung von Ontologien)
Resource Description Framework (RDF)
SOLID Prinzipien
TDD
Test-Driven Development
UML2
uml2 state charts (metamodel)

Einsatzorte

Einsatzorte

Erlangen (D-91056, D-91058, D-91052, D-91054) (+200km) München (+100km) Mindelheim (+100km) Deggendorf (+75km)

Remote-Arbeit ist möglich.

möglich

Projekte

Projekte

3 Jahre 7 Monate
2019-09 - 2023-03

Supportleistungen für ein Nürnberger Bundesamt

Requirementsingenieur, SW-Architekt, -Entwickler und -Tester Atlassian Confluence Atlassian JIRA MVC ...
Requirementsingenieur, SW-Architekt, -Entwickler und -Tester

Pflege und Erweiterung von Workflow-Management-Systemen auf JIRA-Basis mit Fokus auf den eigenentwickelten Plugins, die MVC-Services auf Apache-Velocity-Basis und SPAs auf SOY/Javascript-Basis implementieren. Nutzung von JUnit/Mockito und statischer Code-Analyse durch SonarQube zur Unterstützung der QS.


Eclipse git maven Jenkins apache velocity templates soy templates JIRA tomcat JavaScript OSGI JIRA-Plugins Bitbucket Mockito SonarQube JUnit Innovator (MID GmbH) Oracle Apache Tomcat
Atlassian Confluence Atlassian JIRA MVC SPA REST GoF-Patterns JSON UML 2.5 BPMN SOLID-Principles Java JavaScript Scrum Jenkinsfiles Agile SQL
Ein Nürnberger Bundesamt im Auftrag eines Berliner Systemhauses
Nürnberg, Erlangen (Home-Office)
2 Jahre 9 Monate
2018-09 - 2021-05

Toolchaining

Software-Architekt, -Ingenieur, -Tester und Systemintegrator JEE8 Spring Boot Docker ...
Software-Architekt, -Ingenieur, -Tester und Systemintegrator

Modernisierung und Verfeinerung selbst erstellter Softwarekomponenten zur Verkettung gegebener Werkzeuge und Frameworks zur Unterstützung der Softwareentwicklung und Projektabwicklung; Bewertung von Softwarewerkzeugen und Frameworks bezüglich ihrer Eignung für diese Zwecke.

JEE8 Spring Boot Docker MongoDB elasticsearch BIRT
Andreas Schmid
Erlangen
1 Jahr 10 Monate
2016-11 - 2018-08

Diagnostics - Java and RCP Development

Product Owner, Software-Entwickler, Customer Support OTX (Open Test sequence eXchange - ISO 13209) UML2 Scrum
Product Owner, Software-Entwickler, Customer Support

Technologischer Kontext:

Um Operationen wie

  • Diagnose,

  • Tests,

  • Re-Programmierung oder

  • Initialisierung

von Automobilkomponenten oder Funktionen mit diagnostischen Fähigkeiten durchzuführen, nutzt man diagnostische Testsequenzen.

Solche Operationen können mit off-board Testsoftware ausgeführt werden.

Die OTXSuite ist solche Software.

Neben ihrer Ausführung ist die Entwicklung und der Test solcher

Operationen das Hauptleistungsmerkmal der Suite.

Testsequenzen definieren die Abfolge von Interaktionen zwischen dem Anwender, der Diagnoseanwendung und der Kommunikationsschnittstelle des Fahrzeugs.

Der Anwender kann ein Mitglied des Werkstatt- oder Montagepersonals sein.

Die Sequenzen definieren zudem alle Berechnungen und Entscheidungen, die für eine geführte Diagnose oder ähnliche Testlogik gebraucht werden.

OTX (Open Test sequence eXchange, ISO 13209) schlägt ein offenes und standardisiertes, xml-basiertes, von Menschen und Maschinen lesbares Datenformat zur Beschreibung diagnostischer Testsequenzen vor.

Sein Einsatzzweck:

Das Format unterstützt den einheitlichen Transfer diagnostischer

Testsequenzen zwischen

  • Zulieferern elektronischer Systeme,

  • Fahrzeugherstellern,

  • Händlern und

  • Werkstätten.

In OTX definierte diagnostische Testsequenzen werden im folgenden als OTX-Sequenzen bezeichnet.

Durchgeführte Tätigkeiten:

Erster Vertrag, ursprüngliche Aufgabenstellung:

Refactoring der OTXSuite, die ursprünglich von der In2Soft GmbH entwickelt wurde.

Technische Merkmale der Suite:

  • Außendarstellung (VIEW): Grafische Darstellung einer OTX-Sequenz unter Verwendung von GEF.

  • Datenmodell (MODEL): Apache XMLBeans (https://xmlbeans.apache.org/).

Das Refactoring wurde nötig, da unter anderem die Implementierung des Datenmodells auf Apache XMLBeans basierte, deren Pflege seit Mai 2014 eingestellt ist.

Architekturelles Refactoring:

Ziel: Entwirren der Komponenten-Verantwortlichkeiten bis Komponenten mit Model-, View- & Controller-Verantwortlichkeiten klar getrennt sind.

Anschließend Austausch der Komponenten mit Model-Verantwortlichkeiten.

  • Zu diesem Zweck Analyse der OTXSuite im Bezug auf Ansätze zur Migration von Apache XMLBeans zu EMF unter Verwendung des XText-Frameworks bei gleichzeitiger Migration von Eclipse 3 nach Eclipse 4.

  • In diesem Zusammenhang Skizzierung von Ansätzen zum Aufbau einer ausreichenden Test-Abdeckung, die die Voraussetzung jeglicher Refactoring-Maßnahmen ist, bis das Refactoring abgeblasen wurde.

    • Es wurde zu Gunsten des Neubaus der OTXSuite unter Verwendung von Web-Technologien abgeblasen.

Product ownership (PO == project managment + marketing) der OTXSuite:

Übernahme der Produkt-Owner-Ship für die OTXSuite gegenüber einem englischen Kunden der KPIT um die Lücke zu schließen, die durch den Weggang des bisherigen POs entstand.

Diese Aufgabe wurde durchgeführt bis sie an einen neu eingestellten OTX-Experten übergeben werden konnte.

Erweiterung einer Authoring-Guideline:

Anpassung eines Authoring-Style-Guides an die Bedürfnisse des englischen Kunden in enger Zusammenarbeit mit dem Kunden.

Dies schloss die Definition kundenspezifischer Validierungsregeln

(Checker-Rules) zur Ergänzung der bereits in ISO 13209 enthaltenen Kern-Regeln ein.

Requirements-Engineering:

Definition kundenspezifischer Anforderungen an die OTXSuite und ein eigenständiges Validierungswerkzeug, das als OTX-Checker bezeichnet wurde.

Der Checker war darauf ausgelegt neben den Validierungsregeln des ISO 13209 weitere kundenspezifische Regeln umzusetzen.

Prozesseinbettung:

Erstellung des ersten Entwurfs des Entwicklungsprozesses in enger Zusammenarbeit mit dem Kunden.

Der Prozess deckte die Anwendung der OTXSuite,

des oben erwähnten Checkers und anderer von KPIT bereitgestellter Werkzeuge innerhalb der Fahrzeug-Entwicklung und -Produktion des Kunden ab.

6 aufeinander folgende Vertragsverlängerungen:

Product-support für einen deutschen Kunden der KPIT:

Kundensupport und Pflege der OTXSuite V1.0 für einen deutschen Kunden der KPIT auf technischer Ebene.

Pflege-Strategie: Geringst mögliche Änderung - Lasse so viel wie möglich unverändert.

Fehlereingrenzung, -verfolgung und -behebung,

Requirements-Engineering sowie Produkterweiterungen:

  • Fehlerbehebung und Umsetzung von Erweiterungen, die in enger Zusammenarbeit mit dem Kunden definiert wurden.

  • Unterstützung des Kunden im Umgang mit Datenbestandsaktualisierungen unter anderem durch das Refactoring alter mit der Suite erstellter OTX-Sequenzen.

    • Dies wurde durch Junit4-tests erreicht, die die Rolle von White-Box-Tests übernahmen.

  • Durchführung eines Konzeptübergangs innerhalb des Ansatzes des Kunden zur geführten Fehlersuche in enger Zusammenarbeit mit dem Kunden der KPIT.

    • Beim Übergang gewählte Strategie: Iterativ, inkrementell unter Verwendung von Engineering-Releases und koordiniertes, schrittweises Refactoring alter OTX-Sequenzen.

  • Ausarbeitung eines Use-Case-Models, das die funktionalen Anforderungen an den vom Kunden KPITs verfolgten Ansatz zur geführten Fehlersuche wiedergibt. Die Modellierung erfolgte in UML2 unter Verwendung von Enterprise Architect.
Eclipse RCP Eclipse 3 Eclipse 4 Xtext Xtend Graphical Editing Framework (GEF) EMF Apache XMLBeans JIRA Bugzilla Enterprise Architect Atlassian Confluence
OTX (Open Test sequence eXchange - ISO 13209) UML2 Scrum
KPIT Technologies GmbH
München
1 Jahr 2 Monate
2015-09 - 2016-10

Vorbereitung eines Open-Source-Projekts

Software-Ingenieur, Tester, Systemintegrator UML2 Java Continuous Integration ...
Software-Ingenieur, Tester, Systemintegrator

Projektkontext:

Implementierung einer Applikation zur Visualisierung des Verhaltens von UML2-konformen hierarchischen Zustandsautomaten.

Zwei Ansätze zur Erzeugung von Automaten werden umgesetzt:

Die Zustandsautomaten sind über eine DSL spezifizierbar und UML2-konform durch ein UML-Tool modellierbar. In beiden Fällen wird eine gemeinsame Java-Library verwendet. Ihre Implementierung lehnt sich stark an das UML2-Metamodel für hierarchische Zustandsautomaten an.

DETAILS:

  • DSL-basierter Ansatz: Generierter Java-Code implementiert das Verhalten unter Verwendung der Library.

  • UML-basierter Ansatz: Spring-core instanziiert, initialisiert und verdrahtet Klassen aus der Library.

Entwicklungsstand:

  • Die Java-Library ist soweit ausimplementiert, dass sie Deep-History auf alle Hierarie-Ebenen unterstützt. Parallel zueinander ablaufende Automaten werden demgegenüber noch NICHT unterstützt.

  • Spezifikation von UML-State-Charts durch eine DSL auf Xtext-Basis und Code-Generierung durch XTend2-Templates ist möglich. Die Implementierung liegt als stabiler, lauffähiger Prototyp vor.

  • Konvertierung von UML-State-Charts im XMI-Format in spring XML beans als testbarer lauffähiger Prototyp.

  • Integrationstests als parametrisierte Junit-Tests.

Nächste Schritte:

  • Aufsetzen der Build- und Testautomatisierung (CI) auf der Basis von Jenkins, SVN, GIT und Maven Tycho.

  • Visualisierung ausgewählter aus der Spezifikation erzeugter EMF (ecore)-Komponenten mittels GEF. Hierfür liegt ein lauffähiger Demonstrator vor, der im Zuge der Einarbeitung in GEF in Anlehnung an Beispiele aus dem Internet erstellt wurde.

Spring-core Eclipse RCP e4 Jenkins Xtext XTend2 SVN Git Maven Tycho GEF EMF
UML2 Java Continuous Integration uml2 state charts (metamodel)
Erlangen
7 Monate
2015-01 - 2015-07

Optimierung eines Web-Services zur Koordination der Paketzustellung in einem Logistikunternehmen

Unternehmensberater im Bereich Software Engineering Client-Server-Architekturen Client-Virtualisierung GoF Patterns ...
Unternehmensberater im Bereich Software Engineering

Übernahme, Migration, Integration, Konsolidierung, Test, Dokumentation und Verfeinerung von Software zur Transformation von Zustelladressen für Pakete. Die verfeinerte Software ist Teil eines Systems zur Koordination der Paketzustellung in einem Logistikunternehmen.

  • Verfeinerung durch Quellcode-Refactoring und Optimierung der OO-Architektur der Komponenten zur Transformation von Zustelladressen;
  • Refactoring unter Befolgung allgemein anerkannter Entwurfsprinzipien (SOLID Prinzipien) und unter vorteilhafter Anwendung objektorientierter Entwurfsmuster (GoF Patterns);
  • Erstellung parametrisierter JUnit-Tests als System- und Regressionstests für den gesamten Java-Anteil des Kundenidentifikationsdienstes;
  • Schaffung der Möglichkeit Testdaten als Excel-Tabellen bereitzustellen sowie Unterstützung von Tabellenstrukturen im Umgang mit Testdaten (Apache POI);
  • Testgetriebene Entwicklung ausgehend von Testdaten, die zur Erreichung hoher Qualitätsstandards eine hohe Testabdeckung garantieren;
  • Konsolidierung durch die schrittweise Fehlereingrenzung und -korrektur sowie die Verfolgung der Verhaltensabweichung;
  • Analyse, Eingrenzung und Behebung gemeldeter Fehler;
  • Proaktive, zeitnahe, verzögerungsfreie Meldung sich abzeichnender Risiken und Probleme;
  • Erkennung möglicher Maßnahmen zur Verringerung oder Begrenzung gemeldeter Risiken und Findung von Lösungsansätzen;
  • Erstellung von Dokumenten mit anschaulichen und praxisnahen Beispielen für Nicht-Entwickler;

Zur Vorbereitung auf und begleitend zum Projekteinsatz: Erweiterung des Fachwissens über Spring und JPA zur Bewertung dieser Technologien im Hinblick auf ihre Anwendbarkeit im laufenden und in folgenden Projekten.

Apache POI Eclipse JDBC Java EE Java SE Java Standard Edition (JSE) JPA JUnit SVN POI POI
Client-Server-Architekturen Client-Virtualisierung GoF Patterns Objektorientierte Softwareentwicklung mit UML OOA OOD OOP SOLID Prinzipien SQL TDD Test-Driven Development UML Java Clean Code
Bonn
9 Monate
2014-01 - 2014-09

Schienenfahrzeug-Test-Automatisierung

Software-Ingenieur, Tester Client-Server-Architektur Client-Virtualisierung GoF Patterns ...
Software-Ingenieur, Tester

Konzeption, Planung, Automatisierung, Implementierung und anschließende Ausführung von Integrations- und Systemtests, denen aufgrund des sicherheitsgerichteten Entwicklungsumfelds eine besondere Bedeutung zukommt.

Die zu testende Software kommt in verschiedenen internationalen Kundenprojekten u .a. im Hochgeschwindigkeits-Schienenverkehr zum Einsatz.

Ausgeführte Aufgaben im Detail:

  • Konzeption der Testfälle, Realisierung mittels Eclipse in Python 2.7 (PyUnit) und Integration in das kundenspezifische Testausführungssystem (TMS - Test Management System) für die automatisierte Ausführung.
  • Im Rahmen der Testfallrealisierung erfolgte sowohl die client- wie serverseitige Analyse und Implementierung von RESTfuI Webservices auf HTTP-Basis.
  • Serverseitig erfolgte die Implementierung von Mock-Ups für RESTfuI Webservices (CherryPy), gegen die zur Steigerung der Entwicklungseffizienz die clientseitige Implementierung (requests, IxmI) getestet wurde, um sie auf ihren Einsatz vorzubereiten. Hierdurch konnte die Testanlage stark entlastet werden.
  • Weiterleitung der Testergebnisse an die Reporting-Infrastruktur unmittelbar nach der Ausführung (SonarQube).
  • Risikogetriebene Auswahl und Entwicklung der Tests unter Einsatz eines agilen Entwicklungsprozesses (SCRUM).

Durch diese Vorgehensweise konnte die frühzeitige Aufdeckung und Weiterleitung einer Reihe von Fehlern in der Software erreicht werden.

CherryPy Rational ClearCase Rational ClearQuest Eclipse PyDev lxml (Bibliothek zur Verarbeitung von XML und HTML mit Python) PyUnit requests (HTTP library für Python) Umbrello UML Modeller Lighttpd Wireshark
Client-Server-Architektur Client-Virtualisierung GoF Patterns HTTP Linux als Entwicklungsumgebung Objektorientierte Softwareentwicklung mit UM OOA OOD OOP Python 2.7 RESTfuI Webservices auf HTTP-Basis SOLID Prinzipien TDD Test-Driven Development UML REST Clean Code
Erlangen
1 Jahr 1 Monat
2012-06 - 2013-06

Collaborative Manufacturing Network for Competitive Advantage

Software-Entwickler Anforderungs-Analyse C/C++ Client-Server-Architektur ...
Software-Entwickler

Spezifikation und prototypische Umsetzung von ''Mobile Maintenance'' mit einem Front-End auf Android 4-Basis und einem Back-End aus in Java implementierten FCGI-Deamons, die via HTTP kommunizieren und in C++ implementierte Tests anstoßen. Im Rahmen dessen Integration eines in Java auf Eclipse-RCP-Basis implementierten Testmanagement-Werkzeugs als FCGI-Deamon und Anbindung desselben an Virtuoso-Sparql-Endpoints mittels Linked Data sowie Implementierung eines koordinierenden Daemons unter Befolgung der SOLID-Prinzipien bei vorteilhafter Verwendung geeigneter OO-Design-Patterns (GoF-Patterns).

Android-SDK Apache AXIS 2 Apache CXF ARQ (SPARQL Processor) AWK BASH Fuseki (SPARQL server) FusionForge (Projektmanagement und -kollaboration) GIMP hiawatha-webserver JUnit 4 openSUSE Kubuntu PowerPoint Protégé (Editor zur Modellierung von Ontologien) SED SoapUI SVN Apache Tomcat Trac Umbrello UML Modeller VirtualBox Virtuoso Wireshark
Anforderungs-Analyse C/C++ Client-Server-Architektur Client-Virtualisierung Code-Generierung Eclipse-RCP Eclipse-PDE FCGI Geschäfts-Prozess-Analyse Geschäfts-Prozess-Modellierung GoF-Patterns HTTP Java Standard Edition (JSE) Java Enterprise Edition (JEE) JEE Patterns Linux als Entwicklungsumgebung Modellgetriebene Softwareentwicklung (MDSD) MVC Pattern (JEE) Objektorientierte Softwareentwicklung mit UML OOA OOD OOP Resource Description Framework (RDF) RESTfuI Webservices auf HTTP-Basis SOAP SOLID Prinzipien Test-Driven Development (TDD) UML Linux Administration REST Clean Code
München
8 Monate
2011-10 - 2012-05

eMobility - MDSD (Model-Driven Software Development) basierend auf ROOM mittels eTrice.

Software-Ingenieur, Tester awk Bash GoF-Patterns ...
Software-Ingenieur, Tester

Projektkontext: Entwicklung einer kundenspezifischen Variante des Modellierungswerkzeugs eTrice, das die Modellierungssprache ROOM (Real-Time Object-Oriented Modeling) unterstützt. Das Modellierungswerkzeug verfügt über einen graphischen Editor (Graphiti) und einen Texteditor (DSL auf Xtext-Basis).
Die Variante sollte die modellgestützte Entwicklung
von Steuergerätesoftware basierend auf einer erweiterten Variante von ROOM unterstützen.

Im Rahmen dessen erfüllte Aufgaben:

  • Erstellung von ROOM-Modellen zum Regressionstest des kundenspezifischen C-Code-Generators (Xtend2 Template Expressions) und von Dokumentation zur Einführung der Endbenutzer in die kundenspezifische Variante der Modellierung mit ROOM/eTrice;
  • Eingrenzung auftretender Fehler auf Java-Code- und Modell-Ebene sowie Ausarbeitung von Korrekturvorschlägen;
  • Betreuung der Endbenutzer bei der Modellierung unter Verwendung der erstellten Dokumentation;
  • Aufsetzen und Betreuung der Continuous Integration (Hudson);
Apache Ant Apache AXIOM Eclipse-CDT Eclipse-PDE Eclipse-RCP EMF eTrice GIMP Hudson Java Standard Edition (JSE) JUnit make makefile MinGW CUTE C++ Unit Testing Easier Subversion SVN Xtend2 XText Licence Protector (Mirage Computer Systems GmbH) RCP
awk Bash GoF-Patterns Hierarchical FSMs Java Linux als Entwicklungsumgebung MDSD Modellgetriebene Softwareentwicklung Objektorientierte Softwareentwicklung mit UML UML OOA OOD OOP OSGi-Bundles ROOM Code-Generierung SED SOLID Prinzipien TDD Test-Driven Development XML C UML Superstructure State Machines Clean Code Continuous Integration
Herzogenaurach
2 Jahre
2009-11 - 2011-10

Entwicklung eines Testmanagementwerkzeugs für den Embedded-Bereich

Software-Ingenieur awk Bash Client-Virtualisierung ...
Software-Ingenieur

Projektkontext: Entwicklung des Testmanagementwerkzeugs CETES, das Teil eines modellbasierten Testsystems im Embedded Bereich ist.

Im Rahmen dessen:

  • Erstellung und Pflege der automatischen Erstellung des Reports zur Testfall- und Requirementsabdeckung von CETES unter Einsatz des Business Intelligence and Reporting Tools (BIRT - Report-Designer auf Eclipse-RCP-Basis);
  • Evaluierung des Licence Protectors der Mirage Computer Systems GmbH auf Eignung für CETES.
Apache AXIOM BIRT dokuWiki Eclipse-PDE Eclipse-RCP Enterprise Architect GIMP Java Standard Edition (JSE) Oracle-DB Subversion SVN Umbrello UML Modeller VirtualBox RCP
awk Bash Client-Virtualisierung Code-Generierung GoF-Patterns Java Linux als Entwicklungsumgebung MDSD Modellgetriebene Softwareentwicklung Objektorientierte Softwareentwicklung mit UML OOA OOD OOP SQL Model Based System Engineering SED SOLID Prinzipien TDD Test-Driven Development UML XML XSD Clean Code
München
11 Monate
2010-07 - 2011-05

Requirements Engineering im Wehrtechnik-Bereich unter Einsatz von UML

Requirements Ingenieur Objektorientierte Softwareentwicklung mit UML OOA Requirements Management ...
Requirements Ingenieur

Im Rahmen der multinationalen Entwicklung eines Luftabwehrsystems:

  • Analyse und Qualitätssicherung der Anforderungen an zwei Subsysteme;
  • Nachverfolgung und Konsistenzprüfungen im Rahmen des Änderungsmanagements der Anforderungen;
  • Prozessoptimierung durch die Automatisierung der Änderungsantragserstellung für Anforderungen.
IBM Rational Rose RT IBM RequisitePro Reqtify MS Excel
Objektorientierte Softwareentwicklung mit UML OOA Requirements Management UML Excel-VBA-Programmierung V-Modell
Unterschleißheim
5 Jahre 10 Monate
2005-03 - 2010-12

Schulungsdurchführungen

Schulungsleiter
Schulungsleiter

Gelegentliche Unterstützung des Schulungsbereichs der Kölsch & Altmann Software & Management Consulting GmbH mit der Durchführung von C++ und UML-Schulungen. Projektbezogener Aufbau von Know-How und Anwendungserfahrung mit den Realzeit-Erweiterungen von Rose RT im UML-Umfeld und Aufbereitung der gewonnenen Erfahrungen in einer Weise, die ihre Verwendung zu Schulungszwecken erlaubt.

München
2 Jahre 2 Monate
2008-02 - 2010-03

Validierung des E/E-Bordnetz-Architektur-Prozesses für einen Automobil-Konzern

Requirements Ingenieur Anforderungs-Analyse eEPK erweiterte Ereignis-Prozess-Ketten (eEPK) ...
Requirements Ingenieur

Projektkontext: Optimierung des Designprozesses von E/E-Bordnetzen durch die Verbesserung seiner Toolunterstützung und durch Umstellung auf einen Katalog funktionaler Anforderungen als Ausgangspunkt für die Bordnetzentwicklung.
Im Rahmen dessen erfüllte Aufgaben:

  • Anwenderseitiges Requirements Engineering für kundenspezifische Erweiterungen eines Tools zur E/E-Bordnetzentwicklung (PREEvision der Firma Aquintos);
  • Requirements- und Änderungsmanagement für einen Katalog funktionaler Anforderungen an E/E-Bordnetze;
  • Analyse und Dokumentation von Teilen des E/E-Bordnetzentwicklungsprozesses anhand eines vorgegebenen Beispiels mit Hilfe von eEPKs;
  • Synchronisation ausgewählter Teilprozesse als Basis für die Anwendung eines im Auftrag eines OEM durch einen seiner IT-Zulieferer entwickelten Tools zur Unterstützung des E/E-Bordnetzentwicklungs- und -testprozesses;
  • Requirementsdefinition für Erweiterungen und Anpassungen des letztgenannten Tools auf der Basis selbst gemachter Anwendungserfahrungen;
  • Ausarbeitung von Datenmigrationskonzepten sowie Ausführung, Betreuung und Überwachung der Datenmigration aufsetzend auf den ausgearbeiteten Konzepten;
  • Erweiterung und Verfeinerung der Datenmigrationskonzepte auf der Basis der bei der Migrationsdurchführung gemachten Erfahrungen;
  • Aufbereitung von Daten als Planungsgrundlage für die Integrationsstufenplanung von E/E-Bortnetzen.

Apache AXIOM Apache POI Java Standard Edition (JSE) MS Excel MS Powerpoint MS Word System42 PREEvision (aquintos GmbH/Vector Informatik GmbH)
Anforderungs-Analyse eEPK erweiterte Ereignis-Prozess-Ketten (eEPK) Geschäfts-Prozess-Analyse Geschäfts-Prozess-Modellierung Java Modellgetriebener System-Entwurf OOA Requirements Management SOAP UML VisualBasic-Makros für MS Excel VisualBasic-Makros für MS Powerpoint XML XSD V-Modell
Wolfsburg
3 Monate
2007-11 - 2008-01

Evaluierung JEE

Software-Ingenieur JPA BPEL
Software-Ingenieur

Projektkontext: Umsetzung einer vorhandenen firmeninternen Anwendung für das Projekt-Controlling unter Verwendung neuer Software-Architekturen auf der Basis moderner und leichtgewichtiger Frameworks zur Evaluierung der hierzu verwendeten Frameworks und Technologien.

Im Rahmen dessen:

  • Persistierung von Anwendungsdaten mit Hibernate;
  • Validierung von JPA.
Hibernate EclipseLink
JPA BPEL
München
8 Jahre 10 Monate
1999-01 - 2007-10

Entwicklung eines Voice over IP Gateways

Software-Ingenieur, Tester, Systemintegrator, Task-Force-Manager awk Bash C/C++ ...
Software-Ingenieur, Tester, Systemintegrator, Task-Force-Manager

Projektkontext: Erstellung und iterativ inkrementelle Erweiterung eines in C++ implementierten Real Time Voice over IP Gateways zur Ausführung unter VxWorks und Linux. Das Gateways setzt sich aus verschiedenen Subsystemen zusammen. Jedes Subsystem hat eine klar abgegrenzte Verantwortlichkeit. Es ist kompatibel zu einer vorgegebenen Schnittstelle und registriert sich bei einer koordinierenden Komponente. Über diese Komponente läuft die Kommunikation zwischen den Subsystemen. Das macht die Subsysteme austauschbar und erleichtert die Erweiterung des Systems. Jedes Subsystem implementiert einen endlichen Zustandsautomaten. Im Zusammenspiel der Subsysteme ergibt sich ein System aus verschiedenen endlichen Automaten, die miteinander über synchronen und asynchronen Meldungsaustausch kommunizieren.

Mitarbeit bei der modellbasierten Entwicklung mehrere Releases des Gateways in der jeweiligen Requirementsanalyse-, Spezifikations-, Design-, Implementations- und Integrationsphase. Je nach Phase in der Rolle des

  • Analysten,
  • OO-Designers,
  • OO-Programmierers,
  • Integrators,
  • Testers und
  • Task-Force-Leaders

letzteres im Rahmen der koordinierten Lösung sehr dringender, komplexer Probleme.

Unterstützung des Kundenservices bei der Bewältigung von Problemen mit Gateway- Releases im Kundeneinsatz zum Teil auch durch Einsatz bei Endnutzern der VoIP-Gateways vor Ort.

In enger Zusammenarbeit mit den Entwicklungsteams des Kunden Einbringung der

  • Unterstützung reibungsloser Fax- und Modem-Übertragungen,
  • der Unterstützung des SIP-Protokolls und

  • standardkonforme Einbringung des Leistungsmerkmals Anrufweiterschaltung (Call Diversion Recommendation ITU-T H.450.3).

Hierbei Implementation und Integration neuer Subsysteme. Je nach Entwicklungsschwerpunkt dauerhafte oder vorübergehende Übernahme der Verantwortung für Wartung, Erweiterung und Pflege weiterer Subsysteme. Die Entwicklung erfolgte tool-gestützt in UML unter Verwendung der UML-Tools Innovator 6.2 und Umbrello.

In den jeweiligen Spezifikationsphasen

  • Ausarbeitung von Vorschlägen für die Gestaltung des OO-Designs unter Befolgung der SOLID-Prinzipien bei vorteilhafter Kombination geeigneter GoF-Patterns unter Nutzung des UML-Tools Innovator 6.2;
  • Auswahl und Anpassung eines der gemachten Vorschläge in enger Zusammenarbeit mit den Entwicklungsteams des Kunden;

Ergebnis: UML-Modelle, aus dem Code generiert werden konnte.

In den Implementationsphasen

  • Umsetzung des jeweiligen UML-Modells unter Nutzung des Code-Generators des UML-Tools Innovator 6.2, um aus Klassendiagrammen C++-Komponenten zu erzeugen;
  • Bei der Einbringung der Fax-/Modem-Unterstützung Nutzung des Umbrello UML Modellers zur Generierung von C++-Code aus mit Umbrello erstellten Zustandsdiagrammen und zur Generierung von Testfällen aus Sequenzdiagrammen unter Einsatz eines selbst erstellten Code-Generators, der auf XSLT-Skripten basierte;
  • Testgetriebene Einbringung (TDD) manueller Erweiterungen der generierten Komponenten unter Nutzung von Microsoft Visual C++ 6.0 als Programmierumgebung, ClearCase zum Source-Code-Konfigurationsmanagement und Route98 (Mock-Up-Erstellung) zur Testausführung in der Entwicklungsumgebung;
  • Ausarbeitung und Durchführung von Regressionstests mit Route98 in der Entwicklungsumgebung;
  • Vorbereitung der Integration durch Ausarbeitung und Durchführung von überlappenden Teilintegrationstests.

In den Integrationsphasen Einsatz als Integrator und Integrationstester mit Schwerpunkt auf Last- und Stresstests.

Im Detail:

  • Fehlersuche auf dem Zielsystem mit Schwerpunkt auf Memory-Leak-Suche mit zugekauften kommerziellen und vom Kunden selbst erstellten Tools, die auf die Eingrenzung von Memory-Leaks spezialisiert waren, die nur unter hoher Systemlast auftraten;
  • Eingrenzung sporadisch auftretender Zugriffsverletzungen im Umweg über Memory-Leak-Eingrenzung, da viele Zugriffsverletzungen auch Memory-Leaks verursachen, so dass deren Behebung auch oft Zugriffsverletzungen behoben;

Ergebnis: Steigerung der Stabilität und Zuverlässigkeit durch Steigerung der Zwischenausfallzeit (Mean-Time-To-Failure) auf die geforderte Länge.

Produktbetreuung für alte Releases. Im Rahmen dessen Fehler- und Änderungsmanagements sowie die Führung und Koordination von Teams, die im Bedarfsfall zur Eingrenzung und Behebung besonders schwieriger Probleme zusammengestellt wurden.

Erleichterung der Fehlereingrenzung durch Schaffung der Möglichkeit zum Nachstellen von Endbenutzerproblemen in der Entwicklungsumgebung.

Zu diesem Zweck:

  • Generierung von Testskripten aus Trace-Ausgaben mit Hilfe selbst erstellter Shell-, awk- und sed-Skripte;
  • Erstellung von Skripten zur Isolierung und Analyse von Schlechtfällen aus umfangreichen Gesamt-Traces, die mehrere simultan ablaufende Vorgänge abdecken;
  • Portierung ausgewählter Skripte nach Java zur Herstellung der Plattformunabhängigkeit und Erweiterung um eine GUI zur Verbesserung der Benutzbarkeit durch Kollegen.

Im Rahmen der Implementation, Integration und dem Test der oben erwähnten Erweiterungen zur Steigerung der Zuverlässigkeit von analogen Fax- und Modem-Übertragungen: Eigeninitiative, selbständige Erstellung einer Reihe von Werkzeugen und Verknüpfung vorhandener Werkzeuge zu Werkzeugketten, da geeignete Standardprodukte beim Kunden nicht zur Verfügung standen oder erst hätten adaptiert werden müssen.

Im Rahmen dessen:

  • Zustandsmodellierung mit Hilfe eines Freeware-Tools unter LINUX;
  • Erstellung von XSL- und awk-Skripten zur Generierung von Quellcode für Test- und Systemkomponenten ausgehend von Sequence- und State-Diagrammen aus UML-Modellen im XMI-Format;
  • Später Portierung dieser Skripte nach Java zur Herstellung der Plattform-Unaghängigkeit;
  • Generierung von Quellcode aus einem mit dem Freeware-Tool Umbrello erstellten iterativ erweiterten und angepassten UML-Modell.

Teilintegrationstest der generierten Systemkomponenten mit aus dem UML-Modell ebenfalls generierten Testskripten sowie Erstellung der Systemdokumentation auf der Basis der durch den Test gelieferten Trace-Ausgaben.

In der Integrationsphase der Erweiterung des VoIP-Gateways um das SIP-Protokoll Eingrenzung von Memory-Leaks, die nur unter Last auftraten. Dabei erfolgreiche Führung einer mehrköpfigen, international besetzten Task-Force mit dem Ziel der Steigerung der Leistungsfähigkeit dieses Gateways bei Verwendung des SIP-Protokolls bis zur Erreichung der vorgegebenen Leistungsdaten.

Cygwin GIMP Innovator 6 UML Modeller (MID GmbH) Java Standard Edition (JSE) MemScope (Wind River) Rational Purify Service Center (Siemens AG) Spring-Core Test & Monitoring Tool (TMT) (Siemens AG) Umbrello UML Modeller VC++ 6.0 VxWorks Wireshark Ethereal XSL-(standalone)-Prozessoren/Transformatoren XSLT-Prozessor
awk Bash C/C++ Code-Generierung CVS GoF Patterns H323 H245 HTML IP-Netzwerkanalyse auf Protokoll-Ebene JavaScript Java Linux Administration Linux als Entwicklungsumgebung Modellgetriebene Softwareentwicklung (MDSD) Memory Leak Analyse und Eingrenzung Objektorientierte Softwareentwicklung mit UML OOA OOD OOP RTP SED SIP SOLID Prinzipien TDD UML Unix-Shells Unix VoIP XML XSLT XML Metadata Interchange XMI Clean Code Code Reviews V-Modell
München

Aus- und Weiterbildung

Aus- und Weiterbildung

6 Jahre
1988-10 - 1994-09

Informatik-Studium

Diplom-Informatiker Univ., Friedrich-Alexander-Universität, Erlangen-Nürnberg
Diplom-Informatiker Univ.
Friedrich-Alexander-Universität, Erlangen-Nürnberg

Diplomarbeit:

„Spezifikation klassischer BLAS-,LINPACK- und EISPACK-Algorithmen in ASL-II und diesbezügliche Bewertung der Spracheigenschaften.“

Studienarbeit:

„Implementierung des primalen Schnittebenenverfahrens von Young auf einem SIMD-Rechner“

Nebenfach (Hauptstudium):

Mathematik

Nebenfach (Grundstudium):

Betriebswirtschaftslehre

Schwerpunkte:

  • Programmiersprachen,
  • parallele Programmierung für SIMD (single instruction multiple data) und MIMD (multiple instruction multiple data) Systeme,
  • Numerische Verfahren für SIMD- und MIMD-Systeme

Kompetenzen

Kompetenzen

Top-Skills

Modellbasierte Software-Entwicklung OOD GoF-Patterns Requirements-Engineering und -management TDD UML

Produkte / Standards / Erfahrungen / Methoden

Anforderungs-Analyse
Apache Ant
Apache AXIOM
Apache AXIS 2
Apache CXF
Apache POI
Apache Tomcat
apache velocity templates
Apache XMLBeans
Atlassian Confluence
Atlassian JIRA
BIRT
Bugzilla
C++ Unit Testing Easier
CherryPy
Clean Code
Code Reviews
Code-Generierung
Continuous Integration
CUTE
CVS
Cygwin
Docker
dokuWiki
Eclipse
Eclipse 3
Eclipse 4
Eclipse PyDev
Eclipse RCP
Eclipse RCP e4
Eclipse-CDT
eEPK
elasticsearch
EMF
Enterprise Architect
erweiterte Ereignis-Prozess-Ketten (eEPK)
Ethereal
eTrice
FusionForge (Projektmanagement und -kollaboration)
GEF
Geschäfts-Prozess-Analyse
Geschäfts-Prozess-Modellierung
Git
Graphical Editing Framework (GEF)
H245
H323
Hierarchical FSMs
HTML
Hudson
IBM Rational Rose RT
IBM RequisitePro
Innovator 6 UML Modeller (MID GmbH)
IP-Netzwerkanalyse auf Protokoll-Ebene
Java Enterprise Edition (JEE)
JEE8
Jenkins
JIRA
JIRA-Plugins
JUnit
JUnit 4
Licence Protector (Mirage Computer Systems GmbH)
Lighttpd
Linux Administration
lxml (Bibliothek zur Verarbeitung von XML und HTML mit Python)
maven
Maven Tycho
MDSD
Memory Leak Analyse und Eingrenzung
MemScope (Wind River)
MinGW
Model Based System Engineering
Modellgetriebene Softwareentwicklung
Modellgetriebene Softwareentwicklung (MDSD)
Modellgetriebener System-Entwurf
MS Excel
MS Powerpoint
MS Word
MVC
OSGI
OSGi-Bundles
OTX (Open Test sequence eXchange - ISO 13209)
POI
PowerPoint
PREEvision (aquintos GmbH/Vector Informatik GmbH)
PyUnit
Rational ClearCase
Rational ClearQuest
Rational Purify
RCP
Reqtify
requests (HTTP library für Python)
Requirements Management
REST
ROOM
Scrum
Service Center (Siemens AG)
SOAP
SoapUI
soy templates
SPA
Spring Boot
Spring-Core
Subversion
SVN
System42
Test & Monitoring Tool (TMT) (Siemens AG)
Test-Driven Development (TDD)
tomcat
Trac
Umbrello UML Modeller
UML
UML Superstructure State Machines
V-Modell
VC++ 6.0
VirtualBox
Virtuoso
VoIP
Wireshark
XMI
XML
XML Metadata Interchange
XSD
XSL-(standalone)-Prozessoren/Transformatoren
XSLT-Prozessor

Betriebssysteme

Client-Virtualisierung
Kubuntu
Linux als Entwicklungsumgebung
openSUSE
Unix
VxWorks

Programmiersprachen

AWK
BASH
C
C/C++
Excel-VBA
Excel-VBA-Programmierung
Java
Java EE
Java SE
Java Standard Edition (JSE)
JavaScript
JPA
make
makefile
Python 2.7
SED
Unix-Shells
VisualBasic-Makros für MS Excel
VisualBasic-Makros für MS Powerpoint
XSLT
Xtend
Xtend2
XText

Datenbanken

ARQ (SPARQL Processor)
Fuseki (SPARQL server)
JDBC
MongoDB
Oracle-DB
SQL

Datenkommunikation

HTTP
JSON
RESTfuI Webservices auf HTTP-Basis
RTP
SIP

Design / Entwicklung / Konstruktion

Android-SDK
Client-Server-Architektur
Client-Server-Architekturen
Continuous-Integration
Eclipse-PDE
Eclipse-RCP
FCGI
GIMP
GoF Patterns
GoF-Patterns
hiawatha-webserver
JEE Patterns
MVC Pattern (JEE)
Objektorientierte Softwareentwicklung mit UML
OOA
OOD
OOP
Protégé (Editor zur Modellierung von Ontologien)
Resource Description Framework (RDF)
SOLID Prinzipien
TDD
Test-Driven Development
UML2
uml2 state charts (metamodel)

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das GULP Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.