Entwicklung für das zentrale Backend des Personalwirtschaftsverfahren der AKDB.
Fachgebiete Steuer und Sozialversicherungen.
Gesetzliche Anpassungen, Erweiterungen, Entwicklung mehrerer komplexer Dev-Ops-Tools.
Methode: SCRUM (Neueinführung beim Kunden)
MES: Verwaltung und Automatisierung
Allgemein
Das europäische Projekt ?Single-Digital-Gateway? (jur. SDGVO), als auch das innerstaatliche deutsche Projekt zur Umsetzung der Maßgaben des Online-Zugangs-Gesetzes (OZG) haben, in vergleichbarer Weise, das Ziel, die Erstellung und Verarbeitung behördlicher Anträge für die Bürger der Europäischen Union und die Unternehmen des europäischen Binnenmarktes durch vollständige Digitalisierung zu erleichtern.
Abstrakt wird das zugrundeliegende Konzept unter der Bezeichnung OOP (Once-Only-Principle) zusammengefasst. Die technischen System des OOP sollen die Fähigkeit besitzen, die, zur Antragsstellung notwendigen Nachweise, weitgehend automatisiert erfassen, verifizieren und von Behörde zu Behörde übertragen zu können.
Digitalisierung im öffentlich-behördlichen Raum bedeutet Transformation bereits existierender als auch neu erstellter oder übertragener Verwaltungspapiere, Dokumente, Anträge, usw. unter Einhaltung evolvierender Gesetzgebungen in standardisierte als auch proprietäre digitale, d.h. binäre, maschinen-verarbeitbare Formate.
Unter
den OO-Prinzipien betrifft das alle, an der Digitalisierung beteiligten nationalen
Register (Behörden und Institutionen verschiedener Fachbereiche, wie staatliche
Behörden, Hochschulen, wissenschaftliche Institute, usw., die behördlich
relevante und beglaubigte Dokumente in digitaler Form verwalten), die leistungsbezogene
Anträge und die hierzu benötigten Nachweise verwalten. Alle national
verfügbaren digitalisierten Verwaltungswege müssen unter der SDGVO auch für
alle anderen Mitgliedsstaaten europaweit eröffnet werden.
Zukünftig sollen Antragsstellung, Nachweisübertragung und Antragsverarbeitung vollständig
digital, für die Nutzer transparent und, wo möglich, automatisiert werden. Die
Anwendungsfälle konzentrieren sich auf die Verwaltungswege zwischen Behörden
und einer Auswahl an Fachbereichen, beide unter dem Begriff ?Competent-Authoritiy?
zusammengefasst.
Alle
Prozesse des OOP müssen sowohl die europäischen als auch die, vom jeweiligen
Prozess betroffenen, nationalen Datenschutz-Vorgaben durch technische Systeme vollständig
erfüllen. Unterschiede in den nationalen Datenschutzgesetzen und die daraus
entstehende Problematik blieben ein dauerhaft strittiges Thema in den Verhandlungen
um die Umsetzung der Datensicherheit, deren Prüfbarkeit und der rechtzeitigen
Identifizierung möglicher, der nationalen Gesetzgebung nicht entsprechenden,
Vorgänge.
Aufgabenbeschreibung
Die EU-Verordnung 2018/1724 zum Single Digital Gateway (SDG)
richtet an die EU-Mitgliedstaaten die Anforderung, die national online bereitgestellten
Verwaltungsverfahren und Hilfsdienste auch EU-weit grenzüberschreitend
diskriminierungsfrei zugänglich und abwickelbar zu machen.
Als kooperative
Plattform für die Umsetzung des Technischen-Systems (OOTS) wurde ein JIRA-Portal
eingerichtet, auf das alle registrierten Mitglieder der nationalen SDG-Gruppen
Zugriff erhielten.
Initial wurden 7 Arbeitspakete definiert (ECommission).
Das Bayerische Staatsministerium für Digitales (StMD) war im Arbeitspaket
7, ?Technical Design für die SDG-OOP High-Level-Architecture" im nationalen Arbeitsgremium
(BMI) vertreten.
Meine Aufgabe wurde wie folgt vom StMD definiert (Zitat): "Die Hauptaufgabe des Software-Architekten ist die Beratung des StMD hinsichtlich der High Level Architecture des SDG OOP unter Berücksichtigung des bayerischen eGovernments, wie z.B. einer zukünftigen Unternehmensplattform Deutschland auf Basis des Elster Unternehmenskontos."
Agilität und Gesetzgebung
Der äußere Rahmen beider Großprojekte wird auf europäischer Seite durch die SDGVO und auf nationaler Ebene durch das OZG definiert. Wie üblich beziehen sich die Gesetzestexte inhaltlich auf weitere, bereits in Kraft getretene Gesetzgebungen, beispielsweise die der europäischen und bundesdeutschen Datenschutz- und digitalen Sicherheitsgesetzgebungen, Verordnungen und Empfehlungen (DSGVO, eIDAS, usw.)
Die Verabschiedung eines juristischen Rahmenwerks ist ein
komplexer Prozess mit zahlreichen beteiligten Parteien. (Mitgliedsstaaten und
Bundesländer) Nachträgliche Veränderungen wären äußerst aufwendig, so dass die
besprochenen Projekte auf dieser Ebene de facto keinen Raum für agile
Vorgehensweisen lassen.
Um dennoch eine gewisse Flexibilität erreichen zu können, werden Systeme
benötigt, die einerseits in der Lage sind, die starren Anforderungen der Gesetzgebung
zu erfüllen und gleichzeitig, auf technischer Seite, weitgehende Anpassungen
erlauben, die auch die nationalen Besonderheiten implementieren können.
Als geeigneter Lösungsweg wurde deshalb eine weitgehende Standardisierung der Datenformate
und der Schnittstellen der Dienste des europäischen Gateways angestrebt.
In Deutschland werden zwar seit einiger Zeit Datenstandards verwendet, die im
Zuge der Registermodernisierung weiter angepasst werden, doch von einer, alle Behörden
und Fachbereiche einschließenden Standardisierung kann auch hier zurzeit nicht gesprochen
werden.
Die deutsche Unternehmensplattform
Die Unternehmensplattform geht auf eine Initiative des StMD
zurück und hat das Ziel, bürgernahe Dienste von unternehmensspezifischen Leistungen
zu trennen. Zum Zeitpunkt dieses Schreibens wurde das Unternehmensportal in
einer grundlegenden Version veröffentlicht, benötigt allerdings weitere konzeptionelle
Ausarbeitung und beobachtet gleichzeitig den Fortschritt der Registermodernisierung als auch die Entwicklung des SDG.
Am Projekt ?Unternehmensplattform? nahm ich auf Anfrage des Referats B1 als beratender Architekt teil. Die Tätigkeit umfasste neben der direkten Beratung der Beteiligten, die Präsentation verschiedener Aspekte der allgemeinen Architektur und der Sicherheits-Anforderungen an das Basis-System (ELSTER), wie auch diverse Meetings mit weiteren, am Projekt beteiligten, Unternehmen und behördlichen Instanzen.
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:
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.
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
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.
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.
Details weiter unten in den Projekten VETAS Migration, VETAS Pilot und VETAS Neu
Anpassungen an neue Technologien und Platformen.
Feature Erweiterungen.
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. Zukü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 Client-seitigem Multitasking reduziert. Client-seitig werden die Dateninhalte 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.
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.
Sonstiges:
Exemplarisch sei hier die Umgestaltung des Reporting Systems angedeutet:
Neuentwicklung einer Windows Betriebssystem Optimierungs Software.
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.
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.
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.
ABLAUF
Migration einer VB.NET Forms Anwendung nach C# / WPF
Projektverlauf:
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.
Code Review für eine ASP.NET Anwendung für die Global Compliance der Daimler AG
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.
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.
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.
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
Angebots- und Bestandssystem
Unterstützung von On- und Offline Betrieb:
Entwicklungsprozess
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
Adixen Projekt
Kalibrierungssystem
Entwicklungsprozess
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
Ausbildung Fernsehtechnik
Studium Informatik
Erfahrungen
Entwicklungstools
Methoden und Technologien
Bibliotheken
Internet Technologie
Unit Testing
Modellierung mit UML
QA
Entwicklung für das zentrale Backend des Personalwirtschaftsverfahren der AKDB.
Fachgebiete Steuer und Sozialversicherungen.
Gesetzliche Anpassungen, Erweiterungen, Entwicklung mehrerer komplexer Dev-Ops-Tools.
Methode: SCRUM (Neueinführung beim Kunden)
MES: Verwaltung und Automatisierung
Allgemein
Das europäische Projekt ?Single-Digital-Gateway? (jur. SDGVO), als auch das innerstaatliche deutsche Projekt zur Umsetzung der Maßgaben des Online-Zugangs-Gesetzes (OZG) haben, in vergleichbarer Weise, das Ziel, die Erstellung und Verarbeitung behördlicher Anträge für die Bürger der Europäischen Union und die Unternehmen des europäischen Binnenmarktes durch vollständige Digitalisierung zu erleichtern.
Abstrakt wird das zugrundeliegende Konzept unter der Bezeichnung OOP (Once-Only-Principle) zusammengefasst. Die technischen System des OOP sollen die Fähigkeit besitzen, die, zur Antragsstellung notwendigen Nachweise, weitgehend automatisiert erfassen, verifizieren und von Behörde zu Behörde übertragen zu können.
Digitalisierung im öffentlich-behördlichen Raum bedeutet Transformation bereits existierender als auch neu erstellter oder übertragener Verwaltungspapiere, Dokumente, Anträge, usw. unter Einhaltung evolvierender Gesetzgebungen in standardisierte als auch proprietäre digitale, d.h. binäre, maschinen-verarbeitbare Formate.
Unter
den OO-Prinzipien betrifft das alle, an der Digitalisierung beteiligten nationalen
Register (Behörden und Institutionen verschiedener Fachbereiche, wie staatliche
Behörden, Hochschulen, wissenschaftliche Institute, usw., die behördlich
relevante und beglaubigte Dokumente in digitaler Form verwalten), die leistungsbezogene
Anträge und die hierzu benötigten Nachweise verwalten. Alle national
verfügbaren digitalisierten Verwaltungswege müssen unter der SDGVO auch für
alle anderen Mitgliedsstaaten europaweit eröffnet werden.
Zukünftig sollen Antragsstellung, Nachweisübertragung und Antragsverarbeitung vollständig
digital, für die Nutzer transparent und, wo möglich, automatisiert werden. Die
Anwendungsfälle konzentrieren sich auf die Verwaltungswege zwischen Behörden
und einer Auswahl an Fachbereichen, beide unter dem Begriff ?Competent-Authoritiy?
zusammengefasst.
Alle
Prozesse des OOP müssen sowohl die europäischen als auch die, vom jeweiligen
Prozess betroffenen, nationalen Datenschutz-Vorgaben durch technische Systeme vollständig
erfüllen. Unterschiede in den nationalen Datenschutzgesetzen und die daraus
entstehende Problematik blieben ein dauerhaft strittiges Thema in den Verhandlungen
um die Umsetzung der Datensicherheit, deren Prüfbarkeit und der rechtzeitigen
Identifizierung möglicher, der nationalen Gesetzgebung nicht entsprechenden,
Vorgänge.
Aufgabenbeschreibung
Die EU-Verordnung 2018/1724 zum Single Digital Gateway (SDG)
richtet an die EU-Mitgliedstaaten die Anforderung, die national online bereitgestellten
Verwaltungsverfahren und Hilfsdienste auch EU-weit grenzüberschreitend
diskriminierungsfrei zugänglich und abwickelbar zu machen.
Als kooperative
Plattform für die Umsetzung des Technischen-Systems (OOTS) wurde ein JIRA-Portal
eingerichtet, auf das alle registrierten Mitglieder der nationalen SDG-Gruppen
Zugriff erhielten.
Initial wurden 7 Arbeitspakete definiert (ECommission).
Das Bayerische Staatsministerium für Digitales (StMD) war im Arbeitspaket
7, ?Technical Design für die SDG-OOP High-Level-Architecture" im nationalen Arbeitsgremium
(BMI) vertreten.
Meine Aufgabe wurde wie folgt vom StMD definiert (Zitat): "Die Hauptaufgabe des Software-Architekten ist die Beratung des StMD hinsichtlich der High Level Architecture des SDG OOP unter Berücksichtigung des bayerischen eGovernments, wie z.B. einer zukünftigen Unternehmensplattform Deutschland auf Basis des Elster Unternehmenskontos."
Agilität und Gesetzgebung
Der äußere Rahmen beider Großprojekte wird auf europäischer Seite durch die SDGVO und auf nationaler Ebene durch das OZG definiert. Wie üblich beziehen sich die Gesetzestexte inhaltlich auf weitere, bereits in Kraft getretene Gesetzgebungen, beispielsweise die der europäischen und bundesdeutschen Datenschutz- und digitalen Sicherheitsgesetzgebungen, Verordnungen und Empfehlungen (DSGVO, eIDAS, usw.)
Die Verabschiedung eines juristischen Rahmenwerks ist ein
komplexer Prozess mit zahlreichen beteiligten Parteien. (Mitgliedsstaaten und
Bundesländer) Nachträgliche Veränderungen wären äußerst aufwendig, so dass die
besprochenen Projekte auf dieser Ebene de facto keinen Raum für agile
Vorgehensweisen lassen.
Um dennoch eine gewisse Flexibilität erreichen zu können, werden Systeme
benötigt, die einerseits in der Lage sind, die starren Anforderungen der Gesetzgebung
zu erfüllen und gleichzeitig, auf technischer Seite, weitgehende Anpassungen
erlauben, die auch die nationalen Besonderheiten implementieren können.
Als geeigneter Lösungsweg wurde deshalb eine weitgehende Standardisierung der Datenformate
und der Schnittstellen der Dienste des europäischen Gateways angestrebt.
In Deutschland werden zwar seit einiger Zeit Datenstandards verwendet, die im
Zuge der Registermodernisierung weiter angepasst werden, doch von einer, alle Behörden
und Fachbereiche einschließenden Standardisierung kann auch hier zurzeit nicht gesprochen
werden.
Die deutsche Unternehmensplattform
Die Unternehmensplattform geht auf eine Initiative des StMD
zurück und hat das Ziel, bürgernahe Dienste von unternehmensspezifischen Leistungen
zu trennen. Zum Zeitpunkt dieses Schreibens wurde das Unternehmensportal in
einer grundlegenden Version veröffentlicht, benötigt allerdings weitere konzeptionelle
Ausarbeitung und beobachtet gleichzeitig den Fortschritt der Registermodernisierung als auch die Entwicklung des SDG.
Am Projekt ?Unternehmensplattform? nahm ich auf Anfrage des Referats B1 als beratender Architekt teil. Die Tätigkeit umfasste neben der direkten Beratung der Beteiligten, die Präsentation verschiedener Aspekte der allgemeinen Architektur und der Sicherheits-Anforderungen an das Basis-System (ELSTER), wie auch diverse Meetings mit weiteren, am Projekt beteiligten, Unternehmen und behördlichen Instanzen.
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:
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.
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
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.
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.
Details weiter unten in den Projekten VETAS Migration, VETAS Pilot und VETAS Neu
Anpassungen an neue Technologien und Platformen.
Feature Erweiterungen.
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. Zukü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 Client-seitigem Multitasking reduziert. Client-seitig werden die Dateninhalte 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.
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.
Sonstiges:
Exemplarisch sei hier die Umgestaltung des Reporting Systems angedeutet:
Neuentwicklung einer Windows Betriebssystem Optimierungs Software.
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.
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.
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.
ABLAUF
Migration einer VB.NET Forms Anwendung nach C# / WPF
Projektverlauf:
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.
Code Review für eine ASP.NET Anwendung für die Global Compliance der Daimler AG
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.
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.
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.
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
Angebots- und Bestandssystem
Unterstützung von On- und Offline Betrieb:
Entwicklungsprozess
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
Adixen Projekt
Kalibrierungssystem
Entwicklungsprozess
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
Ausbildung Fernsehtechnik
Studium Informatik
Erfahrungen
Entwicklungstools
Methoden und Technologien
Bibliotheken
Internet Technologie
Unit Testing
Modellierung mit UML
QA
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.
"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 Migration einer Anwendung, 08/13 - 11/14 Referenz durch Bereichsleiterin Anwendungsentwicklung, Münchener Dienstleistungsunternehmen, vom 16.11.14
"[...] 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 Consultant, 04/04 - 08/05
Referenz durch Geschäftsführer, Softwarehaus (20 MA), vom 30.09.05
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 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
"[...] 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."
— 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