Fachlicher Schwerpunkt dieses Freiberuflers

C#, .NET, C++, Anwendungsentwicklung und technische Architektur4

verfügbar ab
25.05.2020
verfügbar zu
100 %
davon vor Ort
100 %
PLZ-Gebiet, Land

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

Kontaktwunsch

Ich möchte bevorzugt für Projekte in diesen Einsatzorten kontaktiert werden.

Projekte

07/2017 - 04/2020

2 Jahre 10 Monate

KABU XL

Rolle
Architekt, Entwickler
Kunde
LfF, Landesamt für Finanzen des Freistaats Bayern
Einsatzort
München
Projektinhalte

KABU ist das Kernstück des Integrierten Haushalts- und Kassenverfahrens (IHV) des Freistaats Bayern. KABU XL spezifiziert bedeutende Erweiterungen des bisherigen Verfahrens, sowie plattformrelevante Migrationen.

Das System besteht im Wesentlichen aus:

  • Einem System aus COBOL Batchanwendungen, die den automatisierten Anteil des Verfahrens, bei einem Datenvolumen von 30 – 40 Millionen Buchungen pro Monat, durchführen.
  • Oracle Datenbanken.
  • 27 separaten VB6 Desktopanwendungen zur Sachbearbeitung.

 

Zwischen 2010 und 2014 wurde beschlossen, die Desktopanwendungen in einem einheitlichen System mit Haushalts-, Organisations-, Arbeitsgruppen und Benutzerverwaltung zu integrieren.Als Plattform wurde .NET mit der Programmiersprache C# und einem UI mit WPF spezifiziert.
Die Entwicklung am Projekt KABU XL startete 2015.

Bereits vor meiner Mitwirkung, 2017, war es offensichtlich geworden, dass die bestehende Architektur den hohen Anforderungen an das System nicht genügen konnte.
Die komplexen Anforderungen an die Datenverarbeitung, Validierung, Performanz und die individuellen Ansprüche der fachlichen Sachbearbeitung, wie auch das hohe Datenvolumen des Verfahrens verlangten nach einer angemessenen Enterprise Architektur.

Ich entwickelte eine serviceorientierte, auf 3 erweiterbaren Schichten basierende, Basisarchitektur mit einer Reihe von Infrastrukturkomponenten und Frameworks, die auf die Individualanforderungen zugeschnitten waren. Die Module der Fachkonzeptschichten wurden in enger Zusammenarbeit mit den Entwicklern besprochen und im Sinne der Gesamtarchitektur auf der Grundlage eines jeweils angemessenen Anforderungsdesigns implementiert.
Wie bei jeder großangelegten Architektur wurde auf vollständige Entkopplung Wert gelegt. WPF technologiespezifische Anforderungen, wie z.B. hochkomplexe Validierungen, deklarative Regelintegration und freie, entkoppelte Datenbindung wurden durch Framework-Dienste unterstützt.

Eine detailliertere Beschreibung der Architektur würde den Rahmen dieser Kurzbeschreibung sprengen. Im Oktober 2018 wurde von der Informatik Zentralabteilung T1 ein, vom Finanzministerium beauftragtes Architekturreview durchgeführt. Die, von mir in diesem Zusammenhang erstellte, allgemeine Dokumentation der Anwendungsarchitektur umfasst bereits 160 Seiten.

Für alle Infrastruktur- und Domänenmodule wurden umfassende Unit-, Integrations- und funktionale, automatisierte Tests erstellt.
Alle Aufgaben wurden in direkter Zusammenarbeit mit der Abteilungs-, Referats- und Projektleitung durchgeführt. An den wesentlichen Besprechungen nahmen alle Entwickler regelmäßig teil.

Im Verlauf des Projekts wurde offensichtlich, dass ein Bedarf für die Vereinheitlichung des Testmanagements und der fachlichen Anforderungsanalyse bestanden. Solche und andere synergetische Effekte zwischen Projektleitung, Entwicklung, QS, Test- und Anforderungsmanagement waren in diesem Projekt ausgesprochen hoch und positiv zu bewerten. Sie führten letztendlich zur Beauftragung des Finanzministeriums zur Durchführung einer Fachanalyse und der Evaluierung einer geeigneten ALM Plattform.

Kenntnisse

Domain Modelling

Software Architektur

.NET

Oracle/SQL

C#

WPF

XAML

Unity IOC

Test Driven Development

Produkte

Visual Studio 2015

Visual Studio 2017

.NET 6.2

.NET 7.0

Git

TFS

Oracle 12c

Oracle SQL Developer

Unittest

Visual Studio 2019

10/2019 - 02/2020

5 Monate

IHV Anforderungsmanagement und ALM (Teilprojekt von KABU XL)

Rolle
Beratung
Kunde
LfF, Landesamt für Finanzen des Freistaats Bayern
Einsatzort
München
Projektinhalte
  • Das LfF besitzt zurzeit keine einheitlichen Systeme für Anforderungs- oder Application Lifecycle Management.
  • Ziel dieses Projekts ist die formale Beschreibung einer adäquaten Vorgehensweise für alle LfF-internen Softwaresysteme, wenn möglich auf einer einzigen Plattform.
  • Da in einigen Referaten bereits AzureDevOps Server verwendet werden, werden derzeit die Möglichkeiten des TFS in Bezug auf die existierende Softwarelandschaft geprüft.
Kenntnisse

Anforderungsmanagement

ALM

Testmanagement

Produkte

TFS

Microsoft Azure

DevOps

07/2019 - 09/2019

3 Monate

Assessment einer automatisierten Migration (Teilprojekt von KABU XL)

Rolle
Beratung
Kunde
LfF, Landesamt für Finanzen des Freistaats Bayern
Einsatzort
München
Projektinhalte

Die Dialoganwendungen des KABU Verfahrens umfassen 25 Anwendungen in VB6 und eine Anwendung in VBA über einer Access Datenbank.Microsoft beendet die offizielle Unterstützung der VB6 Laufzeit auf allen Windows Betriebssystemen im Jahr 2025.
Die VB6 Laufzeit wird darüber hinaus bereits seit dem Jahr 2005 nicht mehr aktualisiert. In der Zwischenzeit haben sich verschiedene Sicherheitsmängel gezeigt, die von Microsoft nicht mehr behoben werden.

Auf Beschluss des Finanzministeriums sollte ein Assessment bezüglich der automatisierten Migration der sogenannten Dialoganwendungen des KABU Verfahrens auf die .NET Plattform durchgeführt werden.

Die KABU Dialoganwendungen wurden Ende der 90er Jahre von externen Dienstleistern entwickelt und anschließend von internen und externen Entwicklern des LfF gepflegt und weiterentwickelt.
In einem Assessment aus dem Jahr 2010 war bereits von einer Migration aufgrund der schlechten Code Qualität abgeraten worden.

Die Grundlage des neuen Assessments bildeten

  • Microsoft Best Practices für die Migration von VB6 Anwendungen (Dokument).
  • 2 Microsoft Anwendungen zur Qualitätsüberprüfung von VB6 Anwendungen und der Erhebung und Dokumentation potenzieller Schwachstellen.
  • Gespräche mit den Entwicklern der VB6 Anwendungen.
  • Prüfung des Qualitäts- und Anforderungsmanagements.
  • Marktanalyse, Servicemodelle und Preisbildung aller verfügbaren Migrationstools.

Nach der Durchführung und Analyse der Basisparameter wurden die Migrationstools durch interne Entwickler auf Hyper-V Terminals getestet. Nachdem die Versuche ergeben hatten, dass keines der Tools eine vollständige oder korrekte Migration durchzuführen imstande gewesen war, wurden die Möglichkeiten und potenziellen Aufwände manueller Nacharbeiten evaluiert.

Die Ergebnisse wurden in einem Dokument zusammengefasst, das im Rahmen des vorgegebenen Ziels die Grundvoraussetzungen, strategische und technische Empfehlungen, sowie die zu erwartenden Ergebnisse aufwandsbezogen beschreibt.
Das Assessment wurde anschließend mit einem Empfehlungsschreiben der Abteilungs- und Referatsleitung dem Finanzministerium, wie auch der Zentralabteilung übergeben.

Zum aktuellen Zeitpunkt liegt noch keine Stellungnahme seitens des Finanzministeriums vor.

Kenntnisse

.NET

C#

VB.NET

VB6

Access DB

Oracle/SQL

ADO.NET

ODBC

Produkte

Microsoft Visual Studio

Visual Studio.NET

Access

Oracle

Diverse Migrationstools

Hyper-V

04/2018 - 12/2018

9 Monate

DAMAS V3.3

Rolle
Software Entwickler
Kunde
Roche
Einsatzort
Penzberg
Projektinhalte

Roche bietet sowohl konzerninternen wie auch externen Laboratorien die Möglichkeit während der Upstream und Downstream Fermentationsprozesse entnommene Proben mit dem DAMAS Probenmanagement digital zu verwalten.

  • Die Prozessdaten werden lokal aufgenommen und anschließend in das global zentrale PELI System übertragen, um sie in anschließenden Verfahren zentral zu verwalten.
  • Inhalt des Projekts waren Erweiterungen, Verfeinerungen und Verbesserungen in der Validierung der Verfahrensprozesse. Betroffen waren sowohl die Dienste zur Übertragung der Proben in das zentrale System wie auch die Datenverarbeitung der Prozesse, sowohl im Backend wie auch den Anwendungsmodulen.
  • Die wesentlichen Aufgaben bestanden in der Besprechung und der Anpassung der fachlichen Anforderungen im Anforderungsmanagementsystem (DOORS), wie auch deren Design, Implementierung und Integration in das bestehende System.
  • Im Zuge der Weiterentwicklung wurde die Entwicklungsplattform auf Visual Studio 2017 mit .NET 4.7 migriert.
Kenntnisse

WPF

MVVM

WCF

Webservices

Oracle/SQL

.NET 4.6

Produkte

Visual Studio 2015

TFS

DOORS

Oracle 12c

Component One

Microsoft IIS

Visual Studio 2017

08/2016 - 12/2017

1 Jahr 5 Monate

VETAS

Rolle
Software Architektur und Entwicklung
Kunde
TÜV Süd
Einsatzort
München
Projektinhalte

Details weiter unten in den Projekten VETAS Migration, VETAS Pilot und VETAS Neu

Anpassungen an neue Technologien und Platformen.

Feature Erweiterungen.

Kenntnisse

.NET4.5

WPF

XAML

MVVM

Oracle/SQL

Entity Framework

Unity / Prism

Produkte

.NET 4.5

Oracle 12c

Visual Studio 2013

Visual Studio 2015

Oracle SQL Developer

06/2016 - 04/2017

11 Monate

DAMAS, eJournal 3.2 und 3.3

Rolle
Software Entwickler, Infrastruktur und Software Qualität
Kunde
Roche
Einsatzort
Penzberg
Projektinhalte

DAMAS (Data Acquisition and Management and
Analysis System) ist eine Roche Eigenentwicklung, die zur Unterstützung der Planung, Ausführung und Dokumentation der Entwicklunsprozesse und deren Auswertung und Vereinfachung eingesetzt wird. DAMAS stellt die durchgängige Erfassung und Auswertung der Daten sicher, die innerhalb der Entwicklungsprozesse anfallen. In diesem Zusammenhang umfasst die Software folgende Hauptfunktionen:

  • Materialmanagement
  • Rezepterstellung
  • Stoffzubereitung
  • Verwaltung und Verwiegung von Einsatzstoffen
  • Probenmanagement
  • Reporting

Die Software besteht aus einem WPF/.Net basierten Server/Client System.
Die serverseitige Anbindung zu Oracle wird über Entity Framework 5.0 hergestellt.
Das Daten Transaktionsmodel besteht hauptsächlich aus expliziten SQL-Statements, teilweise aber auch EF O/R Features.
Die Server Anwendungen laufen auf IIS, die Schnittstellen werden durch Webservices publiziert, die mit WCF (Windows Communication Foundation) implementiert werden.
Die Client Anwendung ist eine Integrationsplatform, für die oben genannten Subsysteme (1-6).

Aufgaben:

  • Erstellung und Erweiterung von Features.
  • Verbesserung der Performanz, Erweiterbarkeit und Wartbarkeit.
  • Erstellen von automatisierten Komponententtests mit MS Unit Test.
  • Anpassung, Migration und Erweiterung des DB-Schemas.
  • Erstellung und Integration einer erweiterbaren Anwendungsarchitektur.

Details (Server):

Die Server- und Clientanwendungen laufen auf dem .Net Framework 4.5.1, die Implementierungssprache ist C#.
Die serverseitige Anbindung an die Oracle Datenbanken erfolgt über Entity Framework 5.0 in Anbindung an die entsprechenden
Data-Provider Module von Oracle.
Als Server wird IIS eingesetzt, die Anwendungsschnittstellen werden als Web-Services veröffentlicht.
Als Technologie zur Implementierung dient WCF.

Details (Client):
Die ursprüngliche Implementierung mit Windows Forms mit MVP wurde durch WPF mit MVVM ersetzt. Mittlerweile sind ca. 90% des Clients nach WPF migriert. Neben eigen entwickelten WPF Benutzersteuerelementen wird auch die WPF Bibliothek von "Component One" benutzt. Der Lebenszyklus der persistenten Aktivitäten ist ausnahmslos transaktions gebunden. Zkünftige Web Clients können so ohne großen Aufwand integriert werden. Die, durch das Fehlen transienter Modelle verursachten Performanzverluste, werden durch den Einsatz von clientseitigem Multitasking reduziert. Die Dateninhalte werden clientseitig als Views verarbeitet, serverseitig werden explizite Transaktionen und gespeicherte Datenbankprozeduren verwendet. Die Isolation der Komponenten und Schnittstellen wird durch den Einsatzt von IOC Containern ermöglicht.
Die ursprüngliche Verwendung von MVVM-Light wird durch Microsoft Patterns und Practices Unity ersetzt.

Details (Test):
Da DAMAS ein validiertes System ist, müssen für alle relevanten Funktionen automatisierte Tests erstellt werden.
Als Laufzeit und Implementierungsplatform wird MS Unit Test mit C# als Implementierungsprache benutzt. Als Anforderungs Management Tool wird Doors eingesetzt.  Zur Synchronisation, Historie und Validierung des Sourcecodes wird TFS (Sourcecontrol und Workitems) eingesetzt. eingesetzt.

Kenntnisse

WPF

MVVM

Clean Code

.NET 4.5

Unity

Unittest

WCF

Anwendungsarchitektur

Produkte

Visual Studio 2015

TFS

DOORS

Oracle 12c

Visual Studion 2013

Component One

WebServices

09/2015 - 09/2016

1 Jahr 1 Monat

BMW Ispa Next

Rolle
Architektur, Codequalität und Entwicklung
Kunde
NTT Data, BMW
Einsatzort
München
Projektinhalte

Bei Ispa Next handelt es sich um die letzte Generation der internationalen Software für BMW Service Händler. Es ist ein, mit WPF / MVVM erstellter Rich Client, der die umfangreichen BMW Backend Landschaften bedient. Die "Velocity" der Umsetzung der User Stories sank in der 2. Hälfte des Jahres 2015 kontinuierlich. Die Ursachenanalyse zeigte Mängel in der Anwendungsarchitektur und einen nicht-refaktorierten Anteil technischer Schulden.

  • Entwickeln und Vorstellen von Lösungen, die diesem negativen Prozess durch architektonische- und design-technische Maßnahmen entgegenwirken würden.
  • Als Stil wurde eine 3-Schichten Architektur mit verschiedenen "Crosscutting Concerns" eingebracht. Schichten Isolation wurde durch die Einführung von Unity(Microsoft Patterns&Practices) IOC Containern und Dependency Injection erreicht.
  • Im Modul und Klassendesign wurden "SOLID" Prinzipien an zahlreichen Problemstellen berücksichtigt.


Sonstiges

  • Architektur- und Designpräsentationen(Projektleitung)
  • Beispielanwendungen
  • Coaching
  • Diskussion(Entwicklungsteam)
Kenntnisse

Scrum

WPF

MVVM

Applikationsarchitektur

Clean Code

.NET 4.5

.NET 4.6

Unity

Unittest

Moq

MEF

Produkte

Visual Studio 2015

Structure101

Atlassian Confluence

Atlassian JIRA

Jenkins

Continuous Integration

SonarQube

NDepend

ReSharper

SVN

06/2015 - 01/2016

8 Monate

Vetas Neu

Rolle
Software Architektur und Entwicklung
Kunde
TÜV Süd
Einsatzort
München
Projektinhalte
  • Neben einigen Client Erweiterungen waren in diesem Auftrag Anpassungen an bestehende Backend Anwendungen, als auch Neuimplementierungen, Integration und Re-Designs gefordert.

Exemplarisch sei hier die Umgestaltung des Reporting Systems angedeutet:

  • Das Ergebnis einer Gutachtenerstellung ist ein physisch einmaliger Bericht, der durch einen beglaubigten
    Gutachter verifiziert worden ist. Die Aufgabe des Report Systems ist die Verifizierung des Gutachters, wie auch
    die Validierung und Verifizierung des Gutachtens, einschließlich seiner einmalig gedruckten Version.
  • Um diese Anforderungen technisch zu realisieren, wird das Report System, einschließlich des Druck Systems in
    die Systemabläufe integriert. Der verifizierte Druck erfolgt ausschließlich über ein dediziertes Backend System,
    das allerdings nach 25 Jahren veraltet war.
  • Die ursprüngliche Technologie, basierend auf Oracle-Reports, Post-Script und PDF-Generatoren wurde auf ein
  • einheitliches externes System namens Fast Reports umgebaut.
  • Zudem mussten aus Gründen der Rückwärtskompatibilität mit bestehenden Gutachten die Backendsysteme
    nach der Migration auf Oracle 12c neu konzipiert werden, um weiterhin die alte Middleware benutzen zu
    können.
  • Die letzte Aufgabe war die Integration in das Authentifizierungssystem der VETAS Client Anwendung.
  • Einer der technischen Aspekte hierbei war die Integration unterschiedlicher Plattformen und Sprachen, wie C und C++, die durch die Entwicklung passender Middleware (Bridges) erreicht wurde.
Kenntnisse

.NET 4.5

WPF

WCF

XAML

MVVM

Oracle 11g Datenbank

Oracle Express

Oracle Reports

Entity Framework

Unity / Prism

C#

C++

C

C++/CLI

Produkte

.Net 4.5

Oracle

Oracle Reports

Visual Studio 2013

Oracle SQL Developer

07/2015 - 09/2015

3 Monate

Avira System Speedup

Rolle
Coach, Architekt, Entwickler
Kunde
Avira
Einsatzort
Tettnang
Projektinhalte

Neuentwicklung einer Windows Betriebssystem Optimierungs Software.

  • Migration der Entwicklungsplattform von Delphi (O-Pascal) nach MS Visual Studio.
  • Integration nativer Module der Vorgängerversion.
  • Neuentwicklung unter .NET mit C# und WPF.
  • Planung und Implementierung von Windows Diensten in einer verteilten Architektur.
  • Coaching des Teams in WPF, MVVM, .NET Design und Domänen Design.
    • Anwendungsdesign, Schichten Modelle.
    • WPF mit MVVM.
    • XAML
    • Best Practices / Clean Code.
    • Unity/Prism, Dependency Injection mit IOC, Entity Framework.
    • Entwicklung unter Verwendung präzise definierter Unit- und Integrationstests (TDD).
  • Entity Framework gemappter Zugriff auf SQLite Datenbanken.
  • Erstellung und Definition einer Kommunikationsschicht (Named Pipes) unter Berücksichtigung einer zukünftigen Migrationsperspektive nach WCF.

Kenntnisse

.NET 4.0

Parallel Processing

WPF

MVVM

Remote Management

Scrum

Coaching

Unity/Prism

Entity Framework 6.0

Sqlite DB

Unit Testing

Produkte

.NET 4.0

Delphi

Windows XP

Windows 7

Windows 8

MVVM Design Pattern

agile Softwareentwicklung

Visual Studio 2013

SQLite

Unittest

Windows Server 2008 R2

TFS 2013

01/2015 - 05/2015

5 Monate

Vetas Pilot

Rolle
Software Architektur und Entwicklung
Kunde
TÜV Süd
Einsatzort
München
Projektinhalte

Nachdem das Vorgängerprojekt mit der formalen Abnahme durch den Kunden (TÜV Autoservice) beendet war,
wurde das VETAS Pilotierungsprojekt gestartet. Mit einem Volumen von 50 - 100 Pilot Testern, wurde das
produktive Rollout der Anwendung für Juni 2015 angesetzt.
Während der Pilotphase fielen zahlreiche Aufgaben an: u.a. Anpassung der Serverlandschaften und
Datenbanken, Einführung des Supports (Level 1-3), Change Requests, Software Erweiterungen, Anpassungen
und Optimierungen, Bugfixing.

  • Design und Implementierung von Change Requests
  • Bugfixing und Performanz Optimierung während der Pilotierung
  • Fachliche und technische Unterstützung des QS-Teams
  • Formale Dokumentation des Frameworks
  • Übergabe und Coaching des Level3 Support Teams
  • Aufwandsabschätzungen begleitender Projekte:
  • TIS/IP Datenbank: Anwendung zur Verwaltung der Server und Domänenlandschaften des Konzerns (IT)
  • Zentrale Dienste: 5 Server Anwendungen für das VETAS System - Erweiterung, Migration, Integration.
Kenntnisse

.NET 4.5

WPF

XAML

PRISM

UNITY

Oracle11g

Oracle Express

Entity Framework

Produkte

C#

C

.NET 4.5

Visual Studio 2013

Oracle SQL Developer

08/2013 - 12/2014

1 Jahr 5 Monate

Vetas Migration

Rolle
Software Architektur und Entwicklung
Kunde
TÜV Süd
Einsatzort
München
Projektinhalte

Migration einer Oracle-Forms Anwendung zur Gutachtenerstellung und -Verwaltung auf .Net (C#, WPF) unter
Verwendung von Unity/Prism und Entity Framework.
Basis des Projekts ist eine Anwendung (VETAS), die seit 20 Jahren von TÜV Autoservices zur Gutachtenerstellung und Stammdatenverwaltung eingesetzt wird. Die Alt-Anwendung wurde durch einen Oracle Application Server verteilt. Einer der Gründe für die Migration war die fehlende Unterstützung von OAS für Windows 7, wie auch die Einstellung des Supports für Windows XP ab 2014.

  • Entwicklung eines generischen Frameworks auf Basis von Unity/Prism
  • Schichtenarchitektur mit MS Entity Framework als O/R Mapper und WPF (XAML, MVVM) in der Präsentationsschicht
  • C# Code Generatoren für die Domänen- (POCOs) und Business Schichten
  • XAML Code Generatoren zur Unterstützung der initialen View Erstellung (ca. 200 Views)
  • Bootstrapping, Modulverteilung, generischer Schichtenaufbau und System Initialisierung
  • Detail (Feature) Implementierungen auf Basis der Anforderungen.
  • WPF/XAML Komponenten, Steuerelement, Ressourcen
  • Integration der Validierung, Regeln, Rollen und Rechte, Konfiguration und gesicherte Authentifizierung
  • Automatisierte Tests (Unit, Integration, Funktional)
Kenntnisse

.NET Framework

WPF

XAML

Entity Framework

Unity

TFS

Prism

Produkte

c#

.net 3.5

.NET 4.0

.Net 4.5

Oracle 11g

Oracle SQL Developer

PL/SQL

Oracle 10g

Visual Studio 2012

Visual Studio 2013

04/2012 - 10/2013

1 Jahr 7 Monate

KONGSBERG MARITIME

Rolle
Software Architekt, Coach, Entwickler
Kunde
M&M Software
Einsatzort
Sankt Georgen
Projektinhalte

Neuentwicklung eines Alarm Informations-Systems für Handelsschiffe

Das System verteilt sich auf 2 Servereinheiten (Master, Backup) mit je zwei Kommunikationskanälen (Redundanz) zu jedem individuellen Client (Touchscreen Panels mit Windows CE Betriebssystem, sowie Kontrollstationen auf Windows XP, Windows 7). Über das Schiff werden 30 oder mehr Geräte verteilt, die im Netzwerk mit den Kontrollstationen, der Bridge
und der Server Steuerungssoftware kommunizieren.
Zur Kommunikation der Server mit den Schiffseinheiten (Prozessstationen) dient eine, von „Kongsberg Maritime“ entwickelte Software, die sich der von den Servern bereitgestellten externen Schnittstellen bedient. Mit Ausnahme der IP-Adressen wird die Konfiguration der Einheiten dynamisch geladen, um größtmögliche Flexibilität und Anpassungsfähigkeit zu gewährleisen. Während einer 2-jährigen Softwareentwicklungspause wurde eine neue Geräte Hardware entwickelt, die nun im 1. Rollout des Systems zum Einsatz kommt.

  • Fehlerbehebung und Anpassung sowohl der Server- wie auch der Clientsoftware.
  • Überarbeitung der technischen Architektur.
  • Erstellung von System- und Unit Tests, speziellen Applikationen zur Simulation der Testfälle und zur
    Ansteuerung des Systems.

ABLAUF

  • Das ursprüngliche System arbeitete mit performanten, aber kostspieligen Geräten, die in einer
    Neuentwicklung ersetzt wurden.
  • Die Performanz der Software musste deutlich gesteigert werden, um die geforderte Reaktionszeit, vor
    allem bezüglich der Alarminformationen, zu gewährleisten.
  • In der ersten Entwicklungsphase hatte man sich, bedingt durch Probleme des CE Betriebssystem mit
    Webservices und WCF Technologien entschieden, die Kommunikationsebene ausschließlich auf Basis
    von TCP/IP Sockets zu implementieren.
  • Asynchrone Kontrollflüsse in Verbindung mit 5 parallelen, auf expliziter, Low-Level Socket-
    Implementierung gründenden Kommunikationsebenen erzeugten in diesem System eine erhebliche
    Komplexität.
  • Zeitweise auftretende Fehler im Laufzeitverhalten und der Geschäftslogik waren die Folge fehlender+Synchronisation, Deadlocks und Socket-Blockaden.
  • Behoben wurden diese Probleme einerseits durch Bugfixes in der Synchronisation, wie auch durch Re-Design der Kommunikationsschichten.
  • Eine neue Anforderung betrachtete die Möglichkeit, dass während eines Alarmvorgangs in einer, oder mehreren Prozessstationen durch Unterbrechungsfehler auftreten könnten.
  • Dieser Tatsache wurde durch Einführung einer Schicht Rechnung getragen, in der die extern entwickelte Software die Daten während der Ausfallzeit persistiert und die Server- und Clientsoftware um die entsprechende Logik erweitert wurde.
  • Test der technischen Qualität und Behebung von Memory-Leaks zur Gewährleistung
  • eines unterbrechungsfreien Langzeiteinsatzes.
  • Das Entwicklungsteam verteilte sich auf mehrere Länder: Deutschland, Norwegen, Indien, China und Taiwan.

Kenntnisse

Anwendungsarchitektur und Implementierung

.NET 3.5

.NET Compact Framework

WPF

MVVM

XAML

Windows Forms

Multithreading

Multitasking

Parallel Processing

XML

XSD

Socket Entwicklung

TCP-IP

UDP

Unit Test

Test Automatisierung

Device Test

Produkte

Visual Studio 2008

Visual Studio 2010

.NET 3.5

SVN

Cruise Control

Bugzilla

Log4Net

Windows 7

Windows CE 6.0

Windows XP

SCRUM

03/2013 - 07/2013

5 Monate

DD-TOOLBOX

Rolle
Software Architekt, Coach, Entwickler
Kunde
TÜV-Süd Informatik und Consulting Services
Einsatzort
München
Projektinhalte

Migration einer VB.NET Forms Anwendung nach C# / WPF

  • Neue 4-Schichten Architektur mit Validierungsframework.
  • Basis des Projekts war eine Produktivanwendung zur Verwaltung und Bearbeitungen spezialisierter Gutachten für Gasbehälter.
  • Ziel war die Migration und Integration dieser VB Applikation in die existierende Applikations-
    Landschaft der TÜV Industrie Service GmbH.
  • Migration VB.Net nach C#.Net
  • Entwicklung der Basis Architektur
  • Implementierung der Applikation.

Projektverlauf:

  • Migration der existierenden Codebasis von VB.Net nach C#.Net.
  • Sicherstellung der funktionalen Abläufe.
  • Migration der Datenschicht.
  • Ursprünglich wurde die Kommunikation mit dem SQL-Server Backend durch ADO.Net generierte Data-Sets realisiert.
  • Die neue Schicht benutzt Microsoft Entity Framework.
  • Trennung von Datenschicht und Businessschicht.


Das anwendungsspezifische Domänenmodell wurde neu konzipiert. Ein neu entwickelter Generator adaptiert
die Entitäten (POCOs) des DAL (Data-Access-Layer) und realisiert eine entkoppelte Verbindung zu den
Anforderungen der MVVM View-Model-Schicht.

  • Paradigmenwechsel von Windows Forms nach WPF.
    Modernisierung der Oberflächen.
  • Validierung und Plausibilisierung.
  • Unit Tests
Kenntnisse

Anwendungsdesign und Implementierung

.NET 4.0

.NET 4.5

WPF

MVVM

XAML

Unity / Prism (IOC)

Entity Framework

Microsoft SQL-Server

Unit Test

Coded-UI Test

Produkte

Visual Studio 2010

Visual Studio 2012

.NET 4.5

.NET 4.5.2

TFS (Source Control Management)

Microsoft SQL-Server

Windows 7

Windows 8

02/2013 - 04/2013

3 Monate

KONGSBERG MARITIME

Rolle
Software Architekt, Coach, Entwickler
Kunde
M&M Software
Einsatzort
Sankt Georgen
Projektinhalte
  • Alarm Informations-System für die Schifffahrt Erweiterungen und Change Requests

Kenntnisse

Anwendungsarchitektur und Implementierung

.NET 3.5

.NET Compact Framework

WPF

MVVM

XAML

Windows Forms

XML

XSD

Socket Entwicklung

TCP-IP

UDP

Unit Test

Test Automatisierung

Device Test

Produkte

Visual Studio 2008

Visual Studio 2010

.NET 3.5

SVN

Cruise Control

Bugzilla

Log4Net

Windows 7

Windows CE 6.0

Windows XP

12/2012 - 02/2013

3 Monate

CODE REVIEW GLOBAL COMPLIANCE

Rolle
Code Review
Kunde
Daimler AG
Einsatzort
Möhringen, München
Projektinhalte

Code Review für eine ASP.NET Anwendung für die Global Compliance der Daimler AG

  • Eine Konzern-interne ASP.Net Web Applikation (Integrated Compliance Risk Assessment) sollte hinsichtlich
    ihrer Qualität geprüft werden.
  • Mit der Anwendung lassen sich die Inhalte einer SQL-Server Datenbank bearbeiten, die ihrerseits als Backend
    für die Logik einer Survey Web-Anwendung dient.
    Neben allgemeinen Standard-Qualitätsmerkmalen wurde besonderen Wert auf die Evaluierung der Wartbarkeits- und Erweiterbarkeits-Kriterien der Anwendung gelegt, da deren Pflege und Weiterentwicklung von einem externen Dienstleister übernommen werden sollte.
  • Die Prüfung umfasste den C# Code, den HTML (ASPX) Code der Serverseiten, den JScript Code, das SQL-Server
    Datenbank-Schema und die verwendeten Stored Procedures.
  • Die Prüfungskriterien umfassten die Architektur (Schichten, Modularisierung), das Modul-Design (Schnittstellen, Scope, Redundanz, Kapselung), das Micro-Design (Komplexität, Objektorientierung, Pattern, Namenskonvention) und den Normalisierungsgrad des Datenbankschemas.
  • Ein abschließender Bericht fasste die Ergebnisse der statischen Analyse zusammen und zeigte verschiedene
    Ansätze auf, um die Wartbarkeit und Erweiterbarkeit der Anwendung zeitnah zu verbessern.

Kenntnisse

Code Review

Dokumentation

Code Qualität

ASP.NET

IIS

Architektur

.NET 3.5

.NET 4.0

C#

Java-Script

JScript

HTML

Ext.Net Bibliothek

SQL-Server

Relationale Datenbanken

Produkte

Visual Studio 2008

Visual Studio 2010

SQL-Server Management Studio

.NET 4.5

SQL-Server 2008 R2

SQL Developer

IIS (Internet Information Server)

Windows XP

Windows 7

Windows Server

Projekthistorie

2013 Softwarehersteller (M&M Software)
 
Alarm Informations-System für die Schifffahrt.

2 monatiges Folgeprojekt für Kongsberg-Maritime.
Einige Erweiterungen und Change-Requests.
 
Technologie: C#, .Net 3.5, .Net Compact Framework, WPF, MVVM, XML, XSD
Tools:       Visual Studio 2008 und 2010, Unit test Framework, 
             Log4Net, SVN, Cruise Control, Bugzilla
Geräte:      DFI Alarm Panels
OS:          Windows 7, Windows CE 6.0, Windows XP

2012 Softwarehersteller (M&M Software)
 
 
Erweitertes Alarm Informations-System für die Schifffahrt.
 
Das System verteilt sich auf 2 Servereinheiten (Master, Backup) mit je zwei Kommunikationskanälen (Redundanz) zu jedem individuellen Client (Touchscreen Panels mit Windows CE Betriebssystem, sowie Kontrollstationen auf Windows XP, Windows 7).
 
Über das Schiff werden 30 oder mehr Geräte verteilt, die im Netzwerk mit den Kontrollstationen, der Bridge und der Server Steuerungssoftware kommunizieren.
 
Zur Kommunikation der Server mit den Schiffseinheiten (Process-Stations) dient eine, von „Kongsberg Maritime“ entwickelte Software, die sich der von den Servern bereitgestellten externen 

Schnittstellen bedient.
 
Mit Ausnahme der IP Adressen wird die Konfiguration der Einheiten dynamisch geladen, um größtmögliche Flexibilität und Anpassungsfähigkeit zu gewährleisen.
 
Während einer 2 jährigen Softwareentwicklungspause wurde eine neue Geräte Hardware entwickelt, die nun im 1. Rollout des Systems zum Einsatz kommt.
 
 
Aufgaben:
 
Fehlerbehebung und Anpassung sowohl der Server-, wie auch der Clientsoftware.
Überarbeitung der technischen Architektur.
Erstellung von System- und Unit Tests, speziellen Applikationen zur Simulation der Testfälle und zur Ansteuerung des Systems.
 

  • Das ursprüngliche System arbeitete mit performanten, aber kostspieligen Geräten, die in einer Neuentwicklung ersetzt wurden.
    Die Performanz der Software musste deutlich gesteigert werden, um die geforderte Reaktionszeit, vor allem bezüglich der Alarminformationen, zu gewährleisten.
  • In der ersten Entwicklungsphase hatte man sich, bedingt durch Probleme des CE Betriebssystem mit Webservices und WCF Technologien entschieden, die Kommunikationsebene ausschließlich auf Basis von TCP/IP Sockets zu implementieren.
  • Asynchrone Kontollflüsse (multithreading) in Verbindung mit 5 parallelen, auf expliziter, low-level Socket-Implementierung gründenden Kommunikationsebenen erzeugten in diesem System eine erhebliche Komplexität.
    Zeitweise auftretende Fehler im Laufzeitverhalten und der Geschäftslogik waren die Folge fehlender Synchronisation, Deadlocks und Socketblockaden.
    Behoben wurden diese Probleme einerseits durch Bugfixes in der Synchronisation, wie auch durch Re-Design der Kommunikationsschichten.
  • Eine neue Anforderung betrachtete die Möglichkeit, dass während eines Alarmvorgangs in einer, oder mehreren Prozessstationen durch Unterbrechungfehler auftreten könnten.
    Dieser Tatsache wurde durch Einführung einer Schicht Rechnung getragen, in der die extern entwickelte Software die Daten während der Ausfallzeit persisiert und die Server- und Clientsoftware um die entsprechende Logik erweitert wurde.
  • Test der technischen Qualität und Behebung von Memoryleaks zur Gewährleistung
    eines unterbrechungsfreien Langzeiteinsatzes.
  • Das Entwicklungsteam verteilte sich auf mehrere Länder: Deutschland, Norwegen, Indien, China und Taiwan.
     
     
     

Technologie:   C#, .Net 3.5, .Net Compact Framework, WPF, MVVM, XML, XSD
Tools:         Visual Studio 2008 und 2010, Unit test Framework, 
Log4Net, SVN, Cruise Control, Bugzilla
 
 
 
 
 
2011 - 2012 Führender Hersteller medizinischer Patientenmonitore (Philips Medical)

 
Software zur Durchführung der automatisierten Software Tests für den Systemtest, als Teil der Verifizierung und Validierung der Monitor Software Releases.
 
Aufgaben:
Beratung und Umsetzung einer verbesserten Architektur der Testsoftware mit dem Fokus auf Wartbarkeit, Wiederverwendung und Erweiterbarkeit.
Fehlerbehebung, Anpassung und Test der bestehenden Testsoftware.
Durchführung der automatisierten Tests und Erzeugung der Testberichte.
Ausbau und Dokumentation der Teststationen mit Geräten, Simulatoren, Infrastruktur und Netzwerkverbindungen.
 
    •  Alle Monitortypen werden nach formalen Vorgaben (SRS) getestet.
Die arbeitsintensiven und durch zahlreiche Eingangsparameter gekennzeichneten Tests werden nicht mehr manuell, sondern automatisiert durchgeführt.
    •  Die Testsoftware kommuniziert in mehreren Testnetzwerken mit Simulatorgeräten, Simulatorsoftware und den Testmonitoren.
Die technische Softwarearchitektur unterteilt sich in eine Integrationsplatform, WCF Servermodule, Simulationsapplikationen sowie die Steuerungssoftware für die Durchführung der Tests, implementiert in C# und Python.
Reports werden automatisch im Log4View Format generiert und durch eine Applikation in ein formales XML Dokument transformiert, das als Basis für formale Reports dient.

  • Da die Laufzeit eines einzigen Tests zwischen 8 Stunden und 4 Tagen beträgt und, durch die komplexe Hardwaretopologie bedingt, ein hohes Auftreten von Fehlern und Ausnahmen berücksichtigen muss,  benötigt die Testsoftware eine angemessene Stabilität.
  • Design und Ausnahmebehandlung aller Module tragen dem Rechnung.
  • Der Zeitraum zwischen 2 Freigaben der Monitorsoftware beträgt durchschnittlich eine Woche.
    Um der hohen Testdichte entsprechen und simultan die Testsoftware erweitern und pflegen zu können wurde als Entwicklungsmethode SCRUM gewählt.
     

Technologie:     C#, .Net 3.5 und 4.0,  Python 2.6, C++, WCF,  XML, XSD, XSLT, HTML
Tools:           Visual Studio 2008 und 2010, Unittest Framework, Iron Python 2.71,
                 TFS, Log4View, Philips Tools, Snapshot CM
Geräte:          Monitore und Measurementserver der Antares Familie, CISCO VLan,
                 Moxa Portmapper, Simulatoren von HP, Agilent, Philips,
                 Respironics, u.v.a.
OS:              Windows 7, XP

2011 Hersteller von Hardware und Software zum Datenmanagement klinischer Studien

 
Software zur Konfiguration und zum Deployment medizinischer Studien.

Aufgaben:
Konzept, Design und Entwicklung einer modular aufgebauten Client-Applikation.
3 Hauptmodule realisieren Aufgaben der Produkt Administration, der Systemkonfiguration (Released Systems) sowie die technische Konfiguration der Serverlandschaft mit dem abschließenden Deployment der Devicesoftware und deren Plugins.
Weitere Module geben Informationen über vorhandene Installationen und deren Historie, zeigen Management relevante Informationen und erlauben spezielle Backend Tests.

  • Als Basis für das UI wurde die Windows Presentation Foundation gewählt. Um flexibles UI-Design zu unterstützen wurden WPF Templates, Defaults und Styles in themenbezogene Plugins ausgelagert.
  • Der Business Layer wurde durch das Microsoft Model-View-View-Model Design (MVVM) realisiert und gewährleistet somit die von Microsoft als WPF Standard empfohlene, qualitativ hochwertige Trennung von Businesslogik und Presentation.
  • Datenübertragung und Authentifizierung wurden unter Verwendung der Windows Communication Foundation (WCF) realisiert. Zur Datenübertragung und Steuerung wurden 3 neue Service-Contracts mit den entsprechenden Operations und Data-Contracts entwickelt. Authentifizierung erfolgt über einen bereits vorhandenen, konzernweiten Service.
  • Zur Implementierung der Server Businesslogik wurde, wie auch für den Client, .Net mit C# verwendet. Die Datenzugriffsschicht auf die SQL-Server Datenbanken wurde durch LLBLGEN generiertes O/R Mapping realisiert.
  • Funktionale und Nicht-funktionale Spezifikationen wurden unter Verwendung des UML Tools Enterprise Architect dokumentiert.
  • Erwähnenswert ist die hohe Qualität der Kommunikation in einem internationalen Team, die in einem sehr dynamischen Entwicklungsprozeß auch kurzfristige Anpassungen und Änderungen möglich machte.

Technologie:
C#, .Net 3.5 und 4.0, WPF, MVVM, MVP, WCF.
Tools: Visual Studio 2010, Team Foundation Server, Sparx Enterprise Architect, SQL Server.
OS: Windows 7, XP

2008 - 2011 Versicherungskonzern
 
Clientsoftware zur Erstellung und Verwaltung von Versicherungsangeboten und
Bestandsdaten mit CRM Anteilen. Die Kernfunktionalität der Applikation besteht in der Erstellung und Bearbeitung von Angeboten und Anträgen durch den Außendienst, der den Hauptumsatz dieses Konzerns bestreitet.
 
Aufgaben:
Konzept, Design und Entwicklung
Framework und zentrale Bibliotheken
AAV (Angebots-, Antrags-, Vertragssystem)
Integration bestehender Komponenten
 
Framework

  • Der Kunde wünschte ein Framework auf Basis der Microsoft Enterprise Library (Entlib) v.4.1 in der C# Ausprägung.
  • Ausgangspunkt für die Framework Architektur und das technische Design der Fachmodule waren die SCSF (Smart Client Software Factory) und CAB.
  • Es wurde eine Integrations platform entwickelt, die ein einheitliches Moduldesign gewährleistet.
  • Zentrale Steuerung durch Services, Object Builder sowie den Einsatz zentraler Vorgehensweisen und Standardpatterns (MVP, Commands, Dependency-Injection, etc.).
  • Enkapsulierung der CAB Komplexitäten und der HOST-seitigen Anforderungen durch eine Schichten Architektur ermöglichte ein hohes Maß an Transparenz und robuste, einfache Modulentwicklung, insbesondere
    • Transparente Anbindung an das HOST-gesteuerte Rechtesystem.
    • Transparente Umschaltung des Organisations-Modus (unterschiedliche Tochterunternehmen mit verschiedenen Layouts, Styles und fachlichen Subsystemen)
    • Transparente Auswahl der Anwender (Multi-User Betrieb).
    • Transparente Anbindung der Persistenzschicht.
    • Codegeneratoren erzeugen alle wesentlichen Aspekte eines Modul Microdesigns.
  • Unterstützung des Entwicklungsprozesses
    • Codegeneratoren erzeugen alle wesentlichen Aspekte eines Modul Microdesigns.
    • Zahlreiche Tools zur Debug Unterstützung.
    • Gezielte und sichere Realisierung fachlicher Anforderungen durch standardisierte Workflows.
  • Vollständige Testbarkeit des Clientsystems, der Subsysteme und  Module Test-Plugins.
     

Angebots- und Bestandssystem

  • Erstellung und Bearbeitung von Aussendienstangeboten, Anträgen und Versicherungsbestätigungen.
  • Übernahme der existierenden Tarifrechner (über 40 Produkte in 8 Hauptsparten).
  • Nahtlose Integration der bestehenden Tarifierungssoftware (Rechner, UI, Druck, etc).
  • Integration der Möglichkeiten der Alt-Applikation durch eine Produkt Engine (Migration der Tarife, Übertragung der VB-Daten, Antragsdatenübertragung, etc.).
  • Exchange Aufgaben- und Terminverwaltung durch OWA Integration.
  • Dokumentenerstellung mit serverseitiger Verwaltung und Synchronisation.
  • Serienbrieferstellung, Notizsystem, etc.

Unterstützung von On- und Offline Betrieb:

  • Online-Kommunikation mit den Konzern - Backendservern durch Webservices via WCF sowie diverser integrierter Webapplikationen.
  • Offlinebetrieb mit Datenspeicherung auf SQL-Server und XML im Dateisystem.
  • Datenübertragung und automatische Synchronisation zwischen Offline/Online Betrieb durch VPN-Tunnel.
  • Gesicherte Datenspeicherung und -übertragung durch Authentifizierung und/oder Verschlüsselung via Zertifikat (Zertifikatverwaltungssystem: eToken).
     

Entwicklungsprozess

  • Agile Entwicklung mit kontinuierlicher Anpassung eines evolvierenden Fachkonzepts in enger Zusammenarbeit mit den Businessanalytikern.
  • Modellierung mit RSM und Innovator, Anforderungsmanagement mit IRQA.
     

C#, .NET 4.0, 3.5, 2.0, C++, C++/CLI, Java (JNI)

Visual Studio 2008 Team Edition, Visual Studio 2005,
MS Enterprise Library, CAB, SCSF, Infragistics,
WCF, SQL Server, RSM, Innovator, IRQA, XML, CVS, Webservices

2006 - 2008 Lübecker Softwareunternehmen
Multigas Detektor System
 
Software zur Steuerung eines Gaschromatographen für bis zu 40, individuell kalibrierbaren Substanzen. Präzision im Millionstel Bereich / Anteil (ppb).
Das Messgerät ist eine Stand-Alone Maschine, die sowohl entfernt, als auch über einen Touch-Screen gesteuert und bedient werden kann. Neben der eingebetteten Controller Software läuft die Hauptapplikation auf Windows CE 4.2 und 5.0 unter dem .NET Compact Framework 1.0. Das Gerät wird beispielsweise in sterilen Produktionsstätten zum Schutz vor Verunreinigungen und sicheren Umgebungen zum Schutz vor schädlichen chemischen Substanzen eingesetzt.
 
Aufgaben:
Codereview, Qualitätsmaßnahmen
Konzept, Design und Neuentwicklung
 
Codereview und Maßnahmen

  • Das Gerät stürzte nach 10-14 Tagen kontinuierlichen Betriebs ab.
  • Die Analyse ergab, dass ein Memoryleak den Absturz verursachte.
  • Als Auslöser wurde die threadübergreifende Anbindung an eine Controllersoftware ermittelt.
  • Nach einer Anpassung des Threadings war das Memoryleak behoben.
  • Die naive Verwendung einer zentralen Windows-Forms Applikation ohne formales Design hatte, durch das Wachstum der Applikation zu einer schlechten Wartbarkeit geführt.
  • Hierdurch bedingt konnten Fehler nicht mehr zeitnah behoben werden.
  • Die Möglichkeiten der Weiterentwicklung und Pflege waren stark eingeschränkt.
  • Es wurde ein neues Design eingeführt, das in der Lage war, die bestehenden Funktionalitäten aufzunehmen und zu stabilisieren, wie auch neue Funktionalität zu gewährleisten.
  • Die Teile der Ursprungsapplikation, die fehlerfrei arbeiteten, wie z.B. mathematische Algorithmen und Auswertungen wurden integriert.
     

Adixen Projekt

  • Umsetzung einer Custom-Spezifikation einer Spezialversion für einen internationalen Großkunden, einschließlich der dazugehörenden Tools
  • Erstellung einer Emulator/Simulationssoftware zum PC-seitigen Testen der Devicesoftware.
  • Kommunikation zwischen CE Device und PC über TCP/IP (ActiveSync) sowie einem proprietären, FS basierenden Protokoll.

 

Kalibrierungssystem

  • Bevor dasGerät die Umwelt auf Substanzen analysieren kann, ist es notwendig durch ein aufwendiges Kalibrierungsverfahren, bei dem genau definierte Mengen einer Substanz in einer kontrollierten Umgebung zugeführt werden, die, dem individuellen Gerät entsprechende Kalibrierungskurve zu bestimmen.
  • Neben der einfacheren Möglichkeit, im Testlabor durch direkte Eingaben das Gerät zu kalibrieren wurde ein Konzept entworfen, bei dem eine PC Software die Resultate der Geräteanalyse automatisch aufzeichnet und auswertet. Die Versorgung mit der Substanz wurde von einem eigenen Server übernommen.
  • Es wurde eine Client PC Software entwickelt, die während der Kalibrierungsdauer von mehreren Tagen in ständigem Kontakt mit dem Device und dem Substanzserver steht.
  • Der Anwender hat im Rahmen des Fachkonzepts die Möglichkeit in die aktiven Vorgänge einzugreifen.
  • Die Daten (Resultate der Chromatographie) werden binär persisiert. Alle Kalibriervorgänge können nachträglich abgerufen und in verschiedenen Graphen und Tabellen analysiert werden.
  • Ausgewertete Daten können mit einem einfachen, flexiblen UI direkt auf das Device übertragen werden.
     

Entwicklungsprozess

  • Vom Review bis zur Neuentwicklung wurden Design und Implementierung in enger Abstimmung mit dem Leading Engeneer des Projekts und der Projektleitung und dem Projektmanagement durchgeführt.
  • Als fachliche Vorlagen dienten Einzelne UML-Diagramme, Excel Tabellen und Anwender Beschreibungen(Portfolio Management).
     
     

C#, .Net 1.1, .Net 2.0, .Net Compact Framework 1.0, C++, C,
Visual Studio 2003, Visual Studio 2005, MS Embedded C++ 4.0,
XML, Windows XP, Windows CE 4.2, 5.0, MS Active Sync, AES, OpenNETCF (eigener Built mit Erweiterungen), MKS, CVS

2006     Münchener Softwareunternehmen


Vertriebsdemo "Individual Card Design"


Web-Frontend Applet mit verschiedenen graphischen Möglichkeiten zur Individualisierung von Kreditkarten.
Administrations-Applet und Servlet zur betriebsinternen Weiterverarbeitung.
Design, Implementierung und Dokumentation

Java, JDK 1.5, JRE 1.5, Ant 1.65, Swing, Netbeans 5.0, XML, CSS, HTML

2006     Münchener Softwareunternehmen

 
Authentifizierung des SW Repositories eines Münchener Softwareunternehmens


Repository - Checkout, Build und Runtime-Tests aller Hauptversionen.
Dokumentation der Konfigurationen und der Problemstellen für alle Release und Debug Versionen.
Dokumentation und Test der notwendigen Konfigurationen zum Aufbau einer Entwicklungsumgebung mit MSVC++ 6.0.
Dokumentation des CVS Repositories mit allen Branches.
Authentifizierung des Repositories mit SHA1.

C++, XML, CVS, SHA1

2006     Münchener Softwareunternehmen


Kunden / Terminmanagement eines Autozubehörhauses


Applikationserweiterung auf firmeneigenem Enterprise Framework
Analyse/Test der Individual Applikation  und des Frameworks Schwerpunkte: Effektivität und Sicherheit im Entwicklungsprozess, Time-to-market, Skalierbarkeit
 
Java, j2re 1.4.2, JRE 1.5.0, JDK 1.5, Swing, JDBC, Netbeans 4.1 + 5.0, PostgreSQL

2004/05 Capeware Technologies, München/Mannheim

Position: /> Aufgaben:         Projektmanagement und technische Leitung

               Softwareentwicklung
Spezifikationen, Konzepte, Pflichtenhefte
Präsentationen
 
Kunden:  Alle deutschen Automobil OEMs,

zahlreiche Automotive - Zulieferer,
International: PSA, TNI, Verkehrsbetriebe Nantes, John Deere

2004/05  Kompatibilitätsmanagement und Funktionale Modellierung


BMW


Reengineering der Software des 7er Sicherheitsbusses
Automatische Transformation der Software von 12 Steuergeräten (C) in ein funktionales Modell (CAPE/C)
Generierung der Bibliotheken und eines Hybrid-Daten-Kontrollflusses mit diskreter Controller Schnittstellenbeschreibung
Konfigurierbares Reengineering mit frei wählbarer Granularität
Manuelles Reengineering der HW-Partitionierung auf Basis der Steuergeräte Spezifikationen und Lastenhefte
Analyse des Sourcecodes auf ANSI-C Konformität
Entwicklung separater, modellunabhängiger Tools und Backendbibliotheken zur Weiterverarbeitung und allgemein-verständlichen  Visualisierung der reengineerten Daten, Call-Tree, static Allocation für Basistypen, Structs, Unions etc,
Dynamische Call-Stack Reduktion, Symbol Tabelle und Variable Flow
Stand Alone Tool zur Generierung einer PDF Dokumentation aus XML Export Daten
 
C++, MFC, STL, UML, C#, Windows, CAPE/C (Interpretations- und Transformationslogik), CodeWright,
XML, XSLT, XSL-FO(Apache) zur PDF-Generierung
AntLR BNF Parsergenerator(Java, JNI)
 
Projektleitung, Spezifikation (ANSI-C -> Funktionales Modell), Analyse, Systemdesign,
Implementierung der Transformations- Dlls, und der Applikationslogik, Präsentation.



2005     Qualitätskontrolle von embedded Controller - Software


Bayerischer Automobil OEM und verschiedene Zulieferer
Spezifikation eines Kontrollflusses, basierend auf C Reengineering.


Automatisierter Delta Vergleich verschiedener Softwarestände mit Schwerpunkten
Schnittstellenintegrität, Speicherbedarf und Komplexität.
Erweiterte Abhängigkeitsmatrizen zur Analyse konditionaler Zustände der Automaten und Fault-Tracking
Partielles, konfigurierbares Blackbox - Prinzip zur Realisierung von Information-hiding.
Einsatz von ANTLR Parser und CAPE/C Transformations- und Interpretationslogik


Projektleitung, Spezifikation, SW-Konzept, Angebot, Prototypen, Präsentation
C++, C#, .NET, MFC, Java, JNI, AntLR, CAPE/C

2004     Klimasystem Modellierung


Norddeutscher Automobil Zulieferer
Konzept und Präsentation der modellbasierten, funktionalen Architektur einer Automobil Klimasteuerung.
Lastenheftanalyse
Modellierung des Systems
Präsentation


2004/05 Offene Schnittstelle und API für CAPE/C


Rework des Applikationsframeworks auf ein DCOM basierendes System
CAPE/C Applikation als Server, Interfaces mit managed Code
 
Konzept, Spezifikation,
Implementierung der Framework Erweiterung und der Client-Prototypen
C++, C#, .NET, DCOM, ATL, UML, CAPE/C
 

2005     FIBEX 2 CAPE/C


Spezifikation der Realisierung von FIBEX in CAPE/C Funktionsmodellen
Konzept des Mappings aller FIBEX Elemente auf vorhandene CAPE/C Modellelemente
(Hardware Partitionierung, Bussysteme, Libraries, Instanziierung)


Formale Beschreibung der notwendigen Erweiterungen des CAPE/C Objektmodells


2004     CAPE/C Code Analyse


CAPE/C hatte durch neue Funktionalität eine Komplexität erreicht, die ein Rework sinnvoll erscheinen ließ.
Die Einarbeitungsphase im Bereich Basisentwicklung sah zu diesem Zeitpunkt ½ Jahr vor produktivem Einsatz
vor. Ziel war eine größere Flexibilität im Entwicklungsprozess und höhere Platformflexibilität.

Der Analyseansatz war die Modularisierung der Basisapplikation im Hinblick auf Abhängigkeitsminimierung,
Konzept einer echten, frei skalierbaren 3-tier Architektur,
Migration des Persistenz-Layers von dem objektorientierten Datenbanksystem zu einem relationalen Datenbanksystem.


Team Leader mit externen Mitarbeitern




2004     BMW "Magic Tool"


Adaption zur Transformation von Message Sequence Charts der MOST BNDB Daten in CAPE/C Abhängigkeitsmatrizen


Mitarbeit an der Spezifikation
Aufsetzen des Test DB-Servers
Anpassung der Datenbankschnittstelle
Funktionale Tests
Entwicklung der für den Import benötigten speziellen Updatealgorithmen und eines Autolayouters
Oracle 8.i, CAPE/C, MSC, C++, MFC 




2002-2004 Capeware GmbH, Mannheim


Position: Senior Softwareentwickler

Aufgaben: Weiterentwicklung, Pflege und Optimierung der firmeneigenen Software "CAPE/C",

  Tests und Bug Fixing


CAPE/C ist eine Applikation zur funktionalen Modellierung komplexer Bordnetze,
wie sie in heutigen Automobilen eingesetzt werden.
Plugin Zusatzmodule bieten die Option, CAPE/C als Integrationsplatform für zahlreiche gängige Tools
(MATLAB, ASCET-SD, u.a.) einzusetzen.
Die Applikation wurde seit Mitte der 90er Jahre entwickelt und zur Codegenerierung für Steuergeräte in
Schienenfahrzeugen eingesetzt. Im Jahr 2001 wurde die Software neu konzipiert, um zeitgemäßen,
höheren Anforderungen gerecht zu werden und den Automobilmarkt zu erschließen.
Die Software realer Bordnetzwerke besteht aus umfangreichen, teils Steuergeräte-übergreifend eingesetzten
Funktionsbibliotheken, RT Betriebssystemen und Applikationslogik, die in CAPE/C durch feingranulare
Funktionsbibliotheken modelliert werden. Die hieraus abgeleitete netzwerkorientierte, funktionale Strukturierung
mit implizitem Mapping der Typen auf funktionale Instanzen bildet die Grundlage des CAPE/C Systems.
Der Umfang  der Basisapplikation und der Core-Dlls umfasste Mitte 2004 mehr als 800000 Zeilen Sourcecode.
Das Team bestand aus bis zu 23 Entwicklern.
 
 
Zusammenfassung der, von CAPE/C verwendeten Technologien


Sprachen:         C++, Java, C#
Bibliotheken:     MFC, STL, ATL, COM, ActiveX, Rogue Wave Stingray, Objective Toolkit, Objective Views, Objective Grid, Softel SFT Tree, .NET, Boost
Persistenz:       XML, Object Store, Oracle 8i
Scripting:        Python
Reporting:        XSLT, FOP
OS:               Windows NT, 2000, XP
UML:              Rational Rose
VersionMgmt:      CVS, Visual Source Safe
QA:               PC Lint C++, Nu Mega Toolsuite
Adaptionen:       Matlab, Simulink, ASCET-SD, CaliberRM, CANalyzer, CodeWright, OSEK, VxWorks, JDos, RoseRT, SourceSafe, CAN, ByteFlight,

BMW BNDB(Sulzer)
Parser:           Xerces DOM, YACC, ANT-LR, MSC         



 
 
2002     Komplexer Routing Algorithmus


Um einen komplexen Datenfluss graphisch überzeugend darzustellen, ist es notwendig die Flusselemente übersichtlich
anzuordnen. Ein Modell von 10 Steuergeräten enthält zwischen 400.000 und 1 Million Verbindungen über das Gesamtsystem verteilt.
Ich entwickelte eine Bibliothek generischer Routing Algorithmen mit minimaler Clientschnittstelle, die sich in das bestehende
System nahtlos integrieren ließ.
Anders als bei einem Leiterplatinen- oder Schaltplan Layouter müssen hier keine physikalischen Optimierungen vorgenommen,
doch der Router muss hochperformant sein und User Interaktion muss berücksichtigt werden .       Das Konzept besteht darin, dass der User die Hauptelemente willkürlich platziert und der Router den verbleibenden Raum benutzt, um das Linienlayout  zu berechnen.
Im reinen Import Modus, wie auch  bei der Übersetzung von externen Datenbankinformationen wird ein vorgeschalteter Element Autoplacer benutzt, um ein initiales Elementlayout zu optimieren.
Neben einem Default Routing existieren verschiedene Konfigurationen, die untergeordnete Algorithmen ein- bzw. ausschalten, um nach Bedarf das Layout zu individualisieren, oder Performance und Qualität zu balancieren.


Konzept, Design, Implementierung
C++, STL, MFC
 

2002/03  CAPE/C Graphisches Framework


Das graphische Framework baut auf den Component Bibliotheken von Rogue Wave "Stingray" auf und war in ein MFC DV Framework als MVC Adapter integriert.Die Stingray Bibliotheken förderten in der Anfangsphase eine zügige Entwicklung, jedoch traten bereits bei den ersten realen Modellen ernstzunehmende Performance Probleme auf. Da Rogue Waves MVC und Command Architektur die eigenen graphischen Component Bibliotheken starr einbindet, musste das gesamte graphische Framework entschlackt, das Objektmodell überarbeitet und zum Teil die Bibliothek neu kompiliert werden. Eine Performance Steigerung um einen Faktor >100 ließ sich erzielen.


Rework Konzept, Implementierung
C++, Stringray, MFC, Object Store, XML


2003     Element Gruppen


Ein einzelner Graph(eine CAPE/C Node) mit z.b. 200 Terminalen und 1000 Liniensegmenten kann auch auf einem 19'' Bildschirm unübersichtlich werden. Der User hat deshalb die Option, terminale Elemente mit den dazugehörigen Verbindungen in logische Gruppen zusammenzufassen.
Ein Element-Group-Subsystem analysiert das Buisness Modell und ermöglicht dem User über eine interaktive Selektion Elementgruppen zur Laufzeit zu aktivieren, deaktivieren oder zu verändern. Alle Gruppierungen sind persistent.
Konzept, Design,
Graphik, Buisnesslogik, Persistenz, UI
C++, MFC, Stringray, Objective Views, Object Store, XML



2003/04 Rechteverwaltungssubsystem: Konfigurationstool, Codegenerator


CAPE/C kann als Standalone oder Multiuser betrieben werden.
Der Multiuser Betrieb stellt sowohl Online, wie auch Offline Modus bereit. Ein User kann in Abhängigkeit von seinen Zugriffsrechten einzelne Elemente bis hin zu Teilsystemen exklusiv auschecken, offline bearbeiten und anschließend online synchronisieren.
Um den Offline Betrieb zu ermöglichen und spätere, sichere Synchronisation zu gewährleisten ist es notwendig den Online Betrieb im Offline-Modus
zu simulieren.
Rechte von Gruppen und Individualusern werden durch ein diskretes Rechte Framework im UI-Layer realisiert. Die systemweiten Ressourcen werden durch ein Standalone Tool  geparst, analysiert und der User Zugriff ressourcenabhängig, feingranular definiert. Alle Definitionen werden als XML serialisiert, übersetzt und entsprechender Applikationscode wird generiert.
Ein zweites, dynamisches Subsystem realisiert die Zugriffsoptionen zur Laufzeit auf Basis lokaler Datenbankinformationen.


Konzept, Design und Implementierung
C++, MFC, XML, Object Store, Stingray

2004     Adaption der UML 2.0


Einige Automobil Hersteller hatten begonnen, die neue UML 2.0 Spezifikation für das Bordnetz Design zu nutzen
Ziel war es, ein partielles Roundtrip Engineering mit CAPE/C als UML Platform zu realisieren. Starke proprietäre Individualisierungen seitens der Kunden machten es unmöglich einen einheitlichen Übersetzungsstandard zu spezifizieren.
Die Implementierungsphase wurde nicht eingeleitet.


Mitarbeit am Grobkonzept, Prototyp eines erweiterten Objektmodells, Übersetzung, UI
UML(Rational Rose), C++, C#, XML, MFC, .NET


2002/04 CAPE/C Graphic


Ein Teil meiner Aufgabe war die Entwicklung und Pflege aller graphischen Komponenten und des UI.
Das Framework hostete beliebig viele Projekte, wobei ein einzelnes Projekt bis zu 20 verschiedene View Typen haben konnte.
Das graphische Komponenten Objekt Modell bestand aus etwa 300, zum Teil parameterisierten Klassen die vom MVC Framework getrieben wurden. Die Views bestanden aus Graphen, Strukturbäumen, Listen und Messaging Fenstern mit loser Kopplung an das Buisness Modell und 

feingranularer Update Logik, da ein klassisches MVC Design (View basierte Observer) den Performance und Speichermöglichkeiten nicht gerecht werden konnte.
Das Objektmodell war zum Teil auf das Stringray Component Object Model aufgebaut, zum Teil auf GDI Komponenten basierend.
Alle Komponenten waren Drag & Drop enabled. Komplexe, zum Teil verschachtelte Property Dialoge ermöglichten dem Benutzer intuitives Property Handling der referenzierten Buisness Objekte. Über eine Command Prozessor Architektur wurden alle Änderungen implizit in die Object Store Datenbank serialisiert. Transaktionssicherheit im Multiuser Online Betrieb wurde durch Rollback und Exception Handling garantiert.
Über XML Konfigurationen konnte der Benutzer sowohl das Aussehen, wie auch das Mapping proprietärer Elemente auf alle Graphiken beeinflussen.
Um die aufwendigen Diagramme fachgerecht im Stil eines technischen Layouts zu präsentieren, entwickelte ich einen komplexen Autorouter.
Alle Graphiken konnten in verschiedene Bildformate exportiert werden.
 
Konzepte, Design, Implementierung
C++, XML, Stringray, GDI+, O-Views, O-Grid, MFC, Windows-API


2000 - 2001 Itera Consulting Group, Grosch & Link AG, Frankfurt a.M.


Position:         Software Entwickler, Consultant,

Durchführung interner Schulungen
(C++, OOP, Design Pattern)


Externe Projekte:

2001     Softwarehaus


Kjaer-Vibro
System zur Zustandsüberwachung und Diagnose von Anlagen und Maschinen
Erstellen eines serverseitigen ATL-Connection-Point Frameworks.
Erweiterung der Delphi-Client Applikationen um COM Event Sources.
Entwurf eines Reporting Systems
 
Konzept, Implementierung, Dokumentation
ATL, C++, O-Pascal (Delphi), COM, SQL, Interbase


2001     Softwarehaus


SAP
Ersatzteilbestellungssystem für die Erdölindustrie
Modul zur clientseitigen Verarbeitung von CEP Packages außerhalb des SAP R3.
Erstellung eines graphischen ActiveX Controls zur Verwendung im Webbrowser.
Dynamische Generierung der CEP Packagestrukturen aus XML Schema.
Up- und Download Funktionalität via HTTPS zwischen Client und SAP Webserver.
Lokaler Excel Export der CEP Packagedaten.
 
      GUI, Find Algorithmen, XML Schema Interpreter
       Implementierung, Dokumentation
      C++, JS, HTML, STL, ATL, ActiveX, MFC, XML, SAP R3


2000/01 Softwarehaus


Anbieter von Systemen für die Automobilfertigung
Migration einer Touchscreen Werkhallen Diagnosesoftware von OS/2 nach Windows NT
Überarbeitung der Kommunikationsschicht und der Benutzeroberfläche einer prozeduralen Software in C.
Rework zu einem objektorientierten Fachkonzept in C++ und Aktualisierung des GUIs.
Umstellung des Kommunikationslayers von named Pipes nach COM.
 
       Analyse, Pflichtenheft, Entwurf und Prototyping
       C++, C, COM, Named Pipes, MFC, TCP IP




Bibliotheken und Frameworks



Hier ist eine Auswahl von Projekten zusammengefasst, die keinem Kunden unmittelbar zugeordnet werden können. In Projekten wurden Teilkonzepte und ausgewählte Anteile der Implementierung eingesetzt.
Alle Bibliotheken sind sorgfältig getestet, vollständig objektorientiert und exportieren Interfaces durch parameteriesierte Class Factories (mit Ausnahme einiger, zur Ableitung bestimmten, exportierten Basisklassen)
Diese Systeme dienen der sicheren und/oder zeitnahen Entwicklung von Applikationen und der Erstellung von Prototypen.
Der Focus liegt auf Modularisierung, objektorientiertem Design, Entkopplung und Wiederverwendbarkeit.

2007/2008 Fundamentals

Zahlreiche Erweiterungen der .Net System Module, insbesondere für Collections, Reflection und Resource Management.
Enthält u.a. ein Framework für eine steuerbare Serialisierung(read/write) von Objekten und Containern(Listen und Tabellen)
in ein Standard XML Format. Die Objekte können vollautomatisiert eingelesen und upgedated werden und erzeugen im Default
eine XML formattierte, objektorientierte Datenbank. Das Schema wird aus den Objekteigenschaften erzeugt, explizite
Schemadefinition bzw. Schemaanpassung bei Objektevolution sind nicht notwendig.
C#, .Net 1.1, .Net 2.0
 
2007 Event basiertes Actionsystem

Entkoppeltes Nachrichtenübertragunssystem.
Basierend auf .Net Delegaten und objektorientiertem Mapping bietet dieses System die größtmögliche Entkopplung einer
intermodularen Kommunikation.
Eine zentrale Controller Einheit erkennt automatisch alle Nachrichten und sorgt, wenn gewünscht, für korrekte Registrierung,
Enfernung und Verteilung(Dispatching) von Events, während Standard Listener den Empfang ermöglichen.
Steuerung und Ablaufverfolgung durch verschiedene Konventionen(single-, multithreaded, direct, delayed, priority, etc).
Die Integration in bestehende Applikationen ist sehr einfach und erzeugt keine weiteren Abhängigkeiten.
C#, .Net 1.1, .Net 2.0

2007/2008 Graph und Diagramm Bibliotheken

Sammlung von .Net Controls und diversen Erweiterungen, Plugins und Adaptern zum Einbetten von 

Graphen in Applikationen.
Die Graphen bieten ein hohes Maß an Flexibilität, sowohl im visuellen Bereich, wie auch in der adaptergesteuerten Auswertung
und Übertragung ihrer Eingangsdaten.
C#, .Net 1.1, .Net 2.0

2004/05 Plugin Bibliotheken

Generisches System zur automatischen, laufzeit-gesteuerten Verbindung und Kommunikation eines Prozesses  mit externen Modulen.
Einfache Schnittstelle zur problemlosen Integration in bestehende Applikationen.
Vollständige applikationsseitige Konfigurationsmöglichkeit.
Meta-System zum Datenaustausch.
Im Default, automatisches Laden und applikationsseitige Generierung der notwendigen Menus.
Generisches bidirektionales Eventmapping
C++, UML
 
2004/06 Generische Tabelle

Strukturierter Speicher für beliebige C++ Objekte mit einfach zu benutzendem Interface und flexibler Garbage Collection
Ziel war die Entwicklung eines Containers, der vergleichbar flexible und einfache Benutzung bereitstellt, wie bei den, in C++ nicht existierenden Basis Objekttypen einer managed Runtime in .NET oder Java.
Benutzt keine void* als Speichertyp; kann daher auch für polymorphe Objekte typsicher eingesetzt werden.
Automatische oder explizite Kontrolle des Lebenszyklus der Elemente.
2 Proxy Interfaces zum Handling von Rows und Columns
Strict Type Checking auch bei Queries mit bis zu 32 ( VC Compiler Maximum für Template Verschachtelung ) verschiedenen, beliebigen Objekten. Einfache Möglichkeit, Adapter zum Einsatz in beliebigen Frameworks zu erstellen.
Effektive Tabellen Standard Funktionalitäten. Binding von DB Tabellen an UI Elemente (Listen, Gridviews, u.a. )
C++, UML, Templates, STL

2003     XML Adapter

Auf Xerces DOM aufbauender Adapter zur problemlosen Einbindung generischer Objekte in standardisierte XML Serialisierung.
Von XML Validierung unabhängiges Objektmodell  zur transienten Verarbeitung
Extract und Merge Funktionialität von Unterbäumen
Standard Interfaces mit Default Implementierungen
C++, STL, Xerces


2001/04  Adapter und Erweiterte Funktionen für die STL

Generische Funktionalität und Algorithmen für STL Containerklassen. Erweiterungen hauptsächlich von std::functional und std::algorithm
effektive Sort- und Find-Algorithmen
Parallele Synchronisierung für komplexe Container Gruppen
C++, Templates, STL


1998/05  Toolkit für MFC DV Architekur

Bibliothek zur vereinfachten Anwendung komplexer DV Funktionalität.
Umfasst einige Funktionalität, wie z.B. automatisches Generieren von Imagelists mit automatisiertem Mapping zur Systemregistierung,
Einfache Einbindung von Controlbars mit erweiterten Möglichkeiten, z.T. multithreaded,
Adaptierung von generischen Objekten, wie String-bäumen aus STL Vector Interfaces, 

dynamische Bearbeitung von Imageressourcen wie Icons und Bitmaps u.a.
MFC Views(insbes. Tree und List),Framewnd, Controls
C++, MFC, Templates, STL, Explorer Shell

1998/02 Bibliotheken für Windows Applikationen

Zahlreiche Dlls zur Adaptierung der Windows API
Explorer Shell, Registry, File System, Controls, OLE Drag & Drop, Parser, graphische System Komponenten,
und weitere Windows API Funktionalitäten. Einige C# Wrapper zur Adaptierung von Windows nativen Dlls
C++, Windows API, Templates, COM, STL
 
2001     MS WindowsExplorer Kontextmenus

C++ API und graphisches Tool zur Erstellung und Bearbeitung von Explorer Kontextmenus
Verwaltung, beliebige Anordnung und Verschachtelung
Frei definierbarer Kontext  für Pfad, Filetype und File
Freie Parameterdefinition
C++, Explorer-Shell, COM

2001     Junctions

C++ und C# API, Graphische Tools zum Erstellen und Verwalten von NTFS Reparse Points
NTFS stellt die Möglichkeit bereit, Reparse Points  in Form von Junctions zu erstellen, jedoch stellt Windows für diese Funktionalität
kein sicheres UI zur Verfügung. In Verbindung mit anderen Tools lassen sich hiermit Pfade unabhängig von der Partitionierung verteilen
und z.b. verschiedene Installationen einer Software aktivieren und deaktivieren. Nachteilig ist, dass Manipulation von SubLinks u.U.
das Filesystem korrumpiert und dass die "delete" Funktionalität im WindowsExplorer unvorhersehbare Folgen haben kann
Vollständige Validierung des Filesystem und sichere Verwaltung von NTFS Mountpoints
API Adapter
C++, Explorer-Shell, COM



 




1990 - 2000 Freiberuflicher Softwareentwickler in den USA (Auswahl)


1999     Dienstleistung, Handel

GUI Entwicklung für Handelsunternehmen
Tabellarische Darstellungen und Charts in Kombination mit neuen Auswahlmasken für Personalwesen und Sales Provision
Graphische Bibliothek und Übersetzungsalgorithmen, MySQL Backend, erweiterte Komponenten für Reporting
C++, MFC, MySQL

1998     Handel

Abrechnungs- und CRM Software, spezialisiert für Direktvertrieb
Warendurchsatz, Endkunden- und Mitgliederverwaltung, Umsätze(Gesamt, Einzel, Gruppen), Punktwert- und Bonusberechnung,Termine, Erinnerungen, Aufgaben, kundenspezifische Preislisten, Warenkatalog, Sales Tax, Umlagen, etc.

C++, MFC, STL, MySQL

1997/98 Softwarehaus

Code Anal">Code Analyzer für Visual Studio 5.0
Tool Sammlung zur Unterstützung der Teamentwicklung mit C++
C++, IDL, rc und Project-Script Parser und Analyzer, Smart Merger und konfigurierbarer Backup(Submitsafety,local Version), Konfigurierbares Renaming komplexer Abhängigkeiten, Spezialtools für Workspace und Projektmanagement in Visual C++ 5.0,User Defined Wizard Creator
Entwurf und Realisierung
C++, MFC, STL
 
1997     Softwarehaus

Kompositions Software "Partitur"
Applikation zur computergestützten Komposition von Musik
Standard Notation mit Anastasia Fonts, User definierte Notation über integrierten Editor, 16 Channel Midi Sequencer, Erweiterungsfähige Template Library für Standard Harmoniesequenzen für vierstimmigen Satz, An Tonalität gebundene Harmonieanalyse
C++, MFC, STL, Midi

1996/97 Handel

Verteilte Anwendung für Einkauf, Verkauf und Inventur
Konvertierung proprietärer Datenformate in konfigurierbare, einheitliche Reports und Datasheets
XML als Backend Format, Implementierung der Parser/Translator, GUIs und eines COM Client-Server Systems
XML, Windows SDK, MFC, DCOM, STL, MSXML
 
1996     Immobilien

CRM System Erweiterung
Systemanbindung zur Verwaltung vertraulicher Kundendaten, Use-Cases auf der Basis von Kunden User-Stories, Applikation, GUI, Verschlüsselung
Windows SDK, MFC, DDE, STL, MSAccess, UML
 
 
1996     Industrie

Ersatzteilverwaltung und Bestellung Flugzeugbau
Funktionserweiterung einer Clientapplikation durch Multithreading
Design und Implementierung der Thread Funktionalitäten und der damit verbundenen Synchronisation
C++, MFC

1996     Dienstleistungen

Handelsunternehmen Intranet
Konzept und Entwicklung einer Sicherheitssoftware für FAT-Filesystem  für Windows 95
Benutzerdefinierte Sicherheit auf Applikationsebene, als Ersatz für fehlende User-Sicherheitseinstellungen im Windows 95 Betriebssystem
C++, MFC, Windows API
 
1996     Dienstleistungen

Softwareentwicklungsprozess Beratung Logistik Software
Beratung OOD, OOP
Überarbeitung der Use-Cases, Sequenzdiagramme und des Objektmodells, Konzepterstellung, Dokumentation, Roundtrip-engineering mit UML, Reduzierung der Abhängigkeiten, Ressourcenplanung
C++, UML, MS Project, Oracle

 
1995/96 Bau

Rework/Dokumentation einer Software zur Berechnung von Klimaanlagen
QA, Erstellung eines Frameworks für kontext-sensitive Hilfe, Profiling und Anpassung. Partielles Redesign des Fachkonzeptes
C++, Doxygen, HTML Help Workshop
 
1996     Shareware         

Konfigurationstool für Windows 95 und Windows NT
Zahlreiche Systemeinstellungen über Registry und Systemfiles, Analyse von COM-Komponenten bzgl. aktiver Links, Undo-Fähigkeit sämtlicher Änderungen
Konzept und Implementierung
C++, MFC, COM
 
1995/96 Softwarehaus

Computergestütztes Erlernen von Fremdsprachen
Fachkonzept, Implementierung und graphisches Interface, User Einstellungen, Dictionnary, Tutor, Schwierigkeitsgrade, Automatisiertes Lernen der Stärken und Schwächen des Benutzers
C++, MFC, UML, MS Word, ODBC, MS-Access

1995     Softwarehaus

Word processor für Farsi (persisch)
Rich-Text Applikation mit Spezialisierung für persische Schrift
Keyboard Konfiguration und Eingabe über On-Screen Keyboard, Mitarbeit an Konzept und Implementierung, Graphic Import Library, GUI
C++, MFC, STL, Irna-Fonts


1994     Dienstleistungen

Road-Service Dispatch System
Event getriebenes System zur Optimierung von Außendienst Serviceleistungen, Zentrale Zeiterfassung und Verteilung von Serviceaufträgen, Zeiten und Wegstrecken, Implementierung Eingabemasken und Eventhandling
C, MS-DOS, Windows 3.11


 
1985 - 1990 Olivetti Systems & Networks, Berlin


Administrative Software


Verwaltung von Endbenutzern, Serviceleistungen, elektronischen Bauelementen und deren Historie
Ein-,Ausgang von Elektronikelementen, Kosten, Anfälligkeit und Standards
Registrierung von Modifizierungen und externen Reparaturen
Einfaches Reporting und Statistiken
       Testsoftware zur Diagnose von Elektronikperipherien
C, MS-C, x86 Assembler, GWBasic
MS-DOS, UNIX, HAI, PCOS

Referenzen

Projekt Migration einer Anwendung, 08/13 - 11/14
Referenz durch Bereichsleiterin Anwendungsentwicklung, Münchener Dienstleistungsunternehmen, vom 16.11.14

"Die Arbeit des Consultants hat entscheidend zum Erfolg einer unserer kritischen Produktionssysteme beigetragen. Im Rahmen eines Migrationsprojektes wurde eine bewährte Anwendung auf eine modern, zeitgerechte Technologie umgestellt. Der Consultant hat dafür die Architektur entworfen und war massgeblich an der Umsetzung beteiligt. Durch den hohen Arbeitseinsatz des Consultants konnte die Produktionsanwendung zeitgerecht fertiggestellt werden."

Projekt Senior Consultant, 04/04 - 08/05
Referenz durch Geschäftsführer, Softwarehaus (20 MA), vom 30.09.05
Projekt im Rahmen einer Festanstellung durchgeführt

"[...] Der Consultant erwies sich als stets hoch motivierter und engagierter Mitarbeiter, der auch in Situationen mit extrem hohem Arbeitsanfall stets ruhig, überlegt und zielorientiert mit nicht nachlassendem Eifer sowie Qualitätsbewusstsein alle Aufgaben eigeninitiativ durchführte. Mit Kreativität, geschärftem Analysevermögen und sehr schneller Auffassungsgabe entwickelte er sehr gute Lösungen, die er effektiv und gewinnbringend umsetzte. Durch seinen kollegialen Führungsstil hat er seine Mitarbeiter zu hohen Leistungen und sehr guten Ergebnissen führen können. Kooperativität, Kollegialität und Teamorientierung prägen das Verhalten des Consultants. Er ist in allen Situationen kommunikativ, verantwortungsbewusst und kann sich gegen Widerstand zum Wohle des Unternehmens durchsetzen. Die ihm übertragenen Aufgaben erfüllte er in jeder Hinsicht stets zu unserer vollsten Zufriedenheit. Sein persönliches Verhalten gegenüber Vorgesetzten, Kollegen und jeglichen dritten Personen war  stets vorbildlich. Wir haben den Consultant als einen Mitarbeiter kennen gelernt, der durch klare Zielsetzungen und einen hohen loyalen, kooperativen Arbeitsstil das Vertrauen der Geschäftsführung besaß. [...] Wir danken ihm für die hervorragende geleistete Arbeit und wünschen ihm für die berufliche und persönliche Zukunft alle Gute."

Projekt Senior Developer, 03/02 - 03/04
Referenz durch Geschäftsführer, Unternehmen für Engineering-Technologie, vom 31.03.04
Projekt im Rahmen einer Festanstellung durchgeführt

"[...] Mit seinem Fachwissen und seiner Berufserfahrung übertraf er die Anforderungen seines Arbeitsplatzes erheblich. Im Team arbeitete der Consultant aktiv mit. Er zeigte sich den Ideen der anderen aufgeschlossen und brachte eigene Vorschläge ein. Der Consultant hatte hervorragende Ideen, entwickelte Konzepte und setzte diese auch um. Er hat die Fähigkeit auch komplexe Sachverhalte präzise darzustellen und anschaulich zu vermitteln. Der Consultant hatte eine positive Einstellung zu seiner Arbeit, war Veränderungen aufgeschlossen und stellte sich schnell auf neue Situationen ein. Er hatte ein sicheres Auftreten, eine natürliche Autorität und besaß gute Umgangsformen. Er war stets freundlich und hilfsbereit. Wir haben den Consultant als loyalen, ehrgeizigen  und zuverlässigen Mitarbeiter sehr geschätzt. Sein Verhalten gegenüber Vorgesetzten, Kollegen und Mitarbeitern war stets vorbildlich. [...]"

Projekt Lead-Entwickler (Fachbereich OOP, C++ und für die MS Windows Betriebssysteme), 11/00 - 12/01
Referenz durch Vorstand, Unternehmen im Bereich E-Business, vom 17.12.01
Projekt im Rahmen einer Festanstellung durchgeführt

"[...] Seine umfassenden Fachkenntnisse erstreckten sich auch auf andere Systeme und Sprachen und wurden auch hier eingesetzt. Mit seiner langjährigen Berufserfahrung bewältigte er anspruchsvolle Projekte auch unter hohem Zeitdruck sauber und professionell. Die Reaktion unserer Kunden war ausnahmslos sehr positiv. Technisch hielt er sich stets auf dem neuesten Stand. Spezifische Anforderungen erarbeitete er konsequent und zeitnah. Die Disziplin und das Auftreten des Consultants waren vorbildlich. Er war ein wichtiger Bestandteil unseres Teams, der es verstand, seine Mitarbeiter zu motivieren und stets bereit war, seine Fachkenntnis zum Support Anderer einzusetzen. [...] Wir bedauern diese Entscheidung sehr, da wir einen wertvollen Mitarbeiter verlieren. Wir danken ihm für seine Mitwirkung und wünschen ihm weiterhin viel Erfolg und persönlich alles Gute."

Branchen

  • Research & Development
  • Versicherung
  • Klinische Studien
  • Software Hersteller,
  • Automotive, Schienenfahrzeuge
  • Dienstleistung
  • Handel

Kompetenzen

Programmiersprachen
.NET
Experte
.NET 4.0
Experte
.NET 4.5
Experte
.NET 4.6
Experte
.NET 4.7
Experte
ADO.NET
C
seit 1986
C#
Experte (seit 2002)
C++
Experte (seit 1991)
Delphi
Grundkenntnisse
Java
seit 1998
JavaScript
seit 1998
Oracle SQL
Gute Kenntnisse
Oracle/SQL
Gute Kenntnisse
Python
durchschnittliche Kenntnisse (Projektbedingt)
SQL
Gute Kenntnisse
T-SQL
Gute Kenntnisse
VB.NET
VB6
aktuelle Kompetenz
  • C#
  • C++
  • SQL
  • Java
  • übrige

Betriebssysteme
Windows
alle Versionen
Windows 7
Windows 8
Windows CE
alle Versionen
Windows Server 2008 R2
Windows XP

Datenbanken
Access
DAO
Interbase
1 Projekt
JDBC
Microsoft Access
MS SQL Server
Gute Kenntnisse
MySQL
Object Store
2002-2005
ODBC
Oracle
Gute Kenntnisse
Oracle 12c
Gute Kenntnisse
Oracle SQL Developer
Gute Kenntnisse
Postgres
seit 2004
SQL
Gute Kenntnisse
SQLite
Gute Kenntnisse
Sqlite DB
Gute Kenntnisse

Sprachkenntnisse
Deutsch
Muttersprache
Englisch
verhandlungssicher, 10 Jahre Aufenthalt in den USA
Französisch
Grundkenntnisse

Datenkommunikation
Internet, Intranet
PC-Anywhere
RPC
TCP/IP
Winsock

Produkte / Standards / Erfahrungen
.NET 4.0
Experte
.NET 6.2
Experte
.NET 7.0
Experte
Access DB
agile Softwareentwicklung
ALM
Anforderungsmanagement
Anwendungsarchitektur
Experte
Atlassian Confluence
Atlassian JIRA
Clean Code
Component One
Continuous Integration
DevOps
Domain Modelling
DOORS
Entity Framework
Entity Framework 6.0
Git
Hyper-V
Jenkins
MEF
Microsoft Azure
Microsoft IIS
Microsoft Visual Studio
Experte
Moq
MVVM
Experte
MVVM Design Pattern
Experte
NDepend
Parallel Processing
Experte
Remote Management
ReSharper
Scrum
Software Architektur
Experte
SonarQube
Structure101
SVN
Test Driven Development
Testmanagement
TFS
TFS 2013
Unit Testing
Unittest
Unity
Unity / Prism
Unity IOC
Unity/Prism
Visual Studio 2013
Experte
Visual Studio 2015
Experte
Visual Studio 2017
Experte
Visual Studio 2019
Experte
Visual Studio Unit Tests
Experte
Visual Studio.NET
Experte
WCF
WebServices
WPF
Experte
XAML
Experte

Erfahrungen

  • Anwendungsarchitektur
  • Anwendungsentwicklung
  • Frameworkentwicklung
  • Testautomatisierung
  • GUI- und Graphik
  • Algorithmen
  • Analyse, Spezifikation, Test
  • Konzept und Spezifikation
  • Dokumentation
  • Präsentation

Entwicklungstools

  • MS Visual Studio 2017, 2015, 2013, 2012, 2010 Team Foundation Server(TFS), 2008, 2005, 2003
  • Netbeans 3.6, 4.1 und 5.0
  • SQL Server Management Studio
  • Oracle SQL Developer

Methoden und Technologien

  • Objektorientierte Entwicklung ( OOP )
    Objektorientiertes Design, Analyse ( OOA, OOD )
  • SOLID, Clean Code
  • Design Pattern
  • Test Driven Development (TDD)
  • n-tier Architektur
  • Windows Presentation Foundation(WPF)
  • Windows Communication Foundation (WCF)
  • Model View View Model Pattern (MVVM)
  • ADO.NET, ODBC
  • UML 1.0, 2.0
  • ASP.NET 1.1, 2.0
  • COM, OLE, DCOM, ActiveX, ATL, WTL

Bibliotheken

  • .NET 4.7, 4.6.2, 4.6, 4.5.2, 4.5.1, 4.5, 4.0, 3.5, 3.0, 2.0, 1.1
  • WCF, WPF, LINQ Extensions (alle)
  • MFC, ATL, WTL
  • Windows API
  • zahlreiche graphische Bibliotheken

Internet Technologie

  • WCF, Webservices
  • ASP.NET
  • Apache Web Server, IIS, SUN Application Server
  • XML, XSD, DTD, XSL
  • HTML

Unit Testing

  • NUnit und NCover(.net)
  • JUnit(Java)

Modellierung mit UML

  • RSM
  • Rational Rose
  • Sparx Enterprise Architect
  • Poseidon
  • Micro Tool

QA

  • WinDbg
  • Rational Quantify
  • Rational Purify
  • NuMega Tools
  • IBM VTune
  • PC-Lint

Aufgabenbereiche
Architekt
Coaching
Entwicklung

Ausbildungshistorie

Ausbildung Fernsehtechnik

Studium Informatik