PERA Software Solutions GmbH

Projekte

Hier finden Sie eine Aufstellung aller meiner Projekte:



Kundenprojekte

Projekt:
"Sourcetrail"

Kunde:
PERA Software Solutions

Laufzeit:
03.2022 – heute
Beschreibung:
Weiterentwicklung von "Sourcetrail", eine C++/Qt/Java Cross-Platform Applikation zum Visualisieren von Klassen- bzw. Funktionshierarchien.

Aufgaben:
  • Migration der Codebasis von Qt 5 auf Qt 6
  • Ablösung plattformspezifischen Codes durch Cross-Platform Boost-Libraries
  • Umstellung der Zeichenkodierung von wchar_t (UTF-16/32) auf UTF-8 („UTF-8 Everywhere“)
  • Optimierung der UX/UI (Lesezeichen-Dialoge, Fortschrittsanzeigen, Tooltips und Placeholder)
  • Behebung komplexer Fokus- und Dialoghandling-Fehler
  • Modernisierung der Thread-Synchronisationen
  • Implementierung der Indexierung neuerer C++ Features (Structured Bindings, Concepts, Auto-Variablen/Rückgabetypen, User Defined Conversions, Non-Trivial Destructor Calls)
  • Implementierung der Indexierung neuerer Java Features (Record-Klassen)
  • Integration der Unterstützung für Visual Studio (2017–2026)
  • Integration der Unterstützung für Java (Standard 16 - 23)
  • Migration von Catch2 V2 auf Catch V3
  • Migration von libclang 18 auf libclang 20
  • Zentralisierung des Dependency-Managements via Vcpkg (C++) und Maven (Java)
  • Vereinfachung der CMake-Build-Skripte
  • Aktualisierung des Qt Creator und Visual Studio Plugins

Technologien:
  • C++23, CMake, Vcpkg
  • Qt 6, Boost, Libclang/LibTooling
  • Multithreading: thread, mutex, atomic<>, synchronized_value<>
  • SQLite, TinyXml
  • Catch2, GoogleTest
  • Clang-Tidy, Clang-Format, Clazy
  • Java SE 24, Maven
  • Eclipse JDT, JNI
  • JUnit 6, JUnit Jupiter
  • Visual Studio 2026, Qt Creator, Eclipse
  • Git, Visual Studio Code
  • Linux / Windows

Homepage:
http://Sourcetrail.de
Projekt:
"Rechnungswesenkern"

Kunde:
Diamant Software

Laufzeit:
06.2024 – 11.2024
Beschreibung:
Modernisierung des Rechnungswesensoftwarekerns, eine C++/CLI Bibliothek für eine Rechnungswesen- und Controllingsoftware.

Aufgaben:
  • Migration der "Dialog Manager" GUI auf eine Windows Forms GUI
  • Modernisierung von C++98 Sprachkonstrukten auf C++20
  • Vermeidung von Memory-Leaks mit Smart-Pointern

Technologien:
  • C++20 (C++/CLI), MSBuild
  • STL
  • Visual Studio 2022, Sourcetrail
  • Git, Visual Studio Code
  • Windows 11
Projekt:
"GUARDUS" (Engine)

Kunde:
Carl Zeiss MES Solutions

Laufzeit:
09.2020 – 12.2023
Beschreibung:
Modernisierung der "Guardus-Engine", eine C++ Software zur Analyse und Steuerung in der Produktion.

Aufgaben:
  • Umstellung des Buildsystems von MSBuild auf CMake
  • Modernisierung von C++98 Sprachkonstrukten auf C++17
  • Restrukturierung der Libraries zur einfacheren Wiederverwendung
  • Umstellung auf typensichere STL Standard Container
  • Konsolidierung von 'Copy & Paste' Sourcedateien
  • Behebung von Memory-Leaks mit Smart-Pointern
  • Qualitätssicherung durch die erstmalige Einführung von Unit-Tests
  • Überprüfung der Testabdeckung mit Code-Coverage
  • Visualisierung der Unit-Test Ergebnisse in Visual Studio

Technologien:
  • C++17, CMake
  • Boost, STL
  • Google Test, OpenCppCoverage
  • Git, Azure DevOps, Visual Studio Code
  • Visual Studio 2019/2022, Sourcetrail
  • Windows 10
Projekt:
"GUARDUS" (GuiTests)

Kunde:
Carl Zeiss MES Solutions

Laufzeit:
09.2020 – 12.2023
Beschreibung:
Design und Entwicklung der "GuiTests", ein Java Testframework zum Ausführen von GUI-Tests.

Aufgaben:
  • Entwicklung eines GUI-Test-Frameworks basierend auf SikuliX
  • Implementierung von Tests anhand existierender Testszenarien
  • Erstellung eines "Executable-JARs" zur Vereinfachung des Deployments
  • Ausführung der Tests mittels der JUnit 5 Platform Launcher API

Technologien:
  • Java SE 21, Maven
  • SikuliX, JUnit 5, Picocli, Log4j2, JNA, ClassGraph, JDBC
  • Apache Shade Plugin, Apache Commons
  • Git, Visual Studio Code
  • Eclipse, Sourcetrail
  • Windows 10
Projekt:
"Common Sequencer"

Kunde:
Rohde & Schwarz

Laufzeit:
10.2019 – 05.2020
Beschreibung:
Weiterentwicklung des "ExecutionEnvironments", ein C++ Programm zur Automatisierung von Produktionstests.

Aufgaben:
  • Ausführung von C# Assemblies mittels des C++ .NET Core Hosting
  • Generierung von C# Code mittels T4 Templates

Technologien:
  • C++17, CMake, Conan
  • Boost, Google Test/Mock
  • C# 7.0, NuGet
  • .NET Core 2.2, xUnit
  • Visual Studio 2017, Sourcetrail
  • Git, Jira
  • Windows 10, Linux
Projekt:
"Server Based Testing" (Data Acquisition Service)

Kunde:
Rohde & Schwarz

Laufzeit:
04.2019 – 09.2019
Beschreibung:
Design und Entwicklung des "Data Acquisition Service", ein C++ Dienst zum Empfangen und Weiterleiten von Binärdateien.

Aufgaben:
  • Implementierung eines Empfängers/Parsers von JSON-basierten "JobTickets"
  • Implementierung eines Senders zum Versenden der zuvor gecachten Binärdaten mit ZeroMQ

Technologien:
  • C++17, CMake
  • Boost, Google Test/Mock, RabbitMQ, AMQP-CPP, ZeroMQ, libcurl
  • Qt Creator, Sourcetrail
  • Git, Jira, Docker
  • Linux
Projekt:
"QuickStep" (TestConsoleRunner)

Kunde:
Rohde & Schwarz

Laufzeit:
03.2019
Beschreibung:
Design und Entwicklung des "TestConsoleRunners", ein C# Programm zum Ausführen von Google- bzw. NUnit-Tests.

Aufgaben:
  • Implementierung einer Google-Test bzw. NUnit-Test Erkennung
  • Testausführung über die NUnit-API
  • Generierung von XML-Ergebnisberichten zur automatisierten Weiterverarbeitung in Jenkins

Technologien:
  • C# 7.0, .NET Core 2.2, NUnit
  • Visual Studio 2017
  • Git, Jira, Jenkins
  • Windows 10, Linux
Projekt:
"QuickStep" (Linuxportierung)

Kunde:
Rohde & Schwarz

Laufzeit:
09.2018 – 02.2019
Beschreibung:
Analyse des Portierungsaufwands nach Linux für eine Windows C++ Applikation.

Aufgaben:
  • Analyse und Katalogisierung der Windows-API-Aufrufe
  • Aufwandsevaluation für die Portierung der Windows-spezifischen Schnittstellen

Technologien:
  • C++14, CMake
  • Boost, Google Test/Mock
  • Visual Studio 2017, Qt Creator, Sourcetrail
  • Git, ClearCase, Jira
  • Windows 10, Linux
Projekt:
"TeDiSPlus"

Kunde:
BWI

Laufzeit:
04.2017 – 08.2018
Beschreibung:
Weiterentwicklung von "TeDiSPlus", eine Java EE Anwendung zur Disponierung von Technikern.

Aufgaben:
  • Erweiterung und Neuerstellung von Unit-Tests
  • Implementierung von SQL-Abfragen mittels JPA
  • Realisierung des JSON-Datenaustauschs zwischen Frontend und Backend

Technologien:
  • Java 8, Java EE 7, Maven
  • JUnit 4/5, Mockito
  • GlassFish (Payara), Derby- bzw. Oracle-Datenbank
  • Eclipse, IntelliJ, NetBeans, Sourcetrail
  • Mercurial, Jira
  • Windows 7
Projekt:
"CMWmars" (PCAP Dekodierung)

Kunde:
Rohde & Schwarz

Laufzeit:
01.2016 – 08.2016
Beschreibung:
Design und Entwicklung der "PCAP-Dekodierung", ein C++/C# Programm zum Empfangen und Dekodieren von PCAP-Daten.

Aufgaben:
  • Integration von TShark (Wireshark) zur Dekodierung von PCAP-Daten
  • Implementierung der Interprozesskommunikation (IPC) via QProcess
  • Realisierung des bidirektionalen Datentransfers (PCAP-Streaming und PDML-Empfang)
  • Effizientes Parsing komplexer PDML-Daten mittels QXmlStreamReader

Technologien:
  • C++11, C++/CLI, Qt 5, Qt Core, Qt XML, Boost, STL
  • C# 4.0, NUnit
  • Visual Studio 2013
  • Jazz
Projekt:
"CMWmars" (LoggingServer)

Kunde:
Rohde & Schwarz

Laufzeit:
01.2011 – 12.2015
Beschreibung:
Design und Entwicklung des "LoggingServers", ein C++ Programm zum Empfangen und Weiterleiten von Socketdaten an eine C#/WPF Applikation.

Aufgaben:
  • Entwicklung einer Dynamic Link Library (DLL) mit plattformübergreifenden Schnittstellen (C#/Java-kompatible APIs)
  • Implementierung asynchroner Socketkommunikation auf Basis von Boost.Asio und Boost.Thread
  • Realisierung der Daten-Serialisierung und -Übertragung mittels TLV-Protokoll und Boost.Serialization
  • Architektur einer internen Modulentkopplung durch den Einsatz von Signal-Slot-Mechanismen
  • Implementierung des Daten-Marshallings für den Interop-Datenaustausch zwischen C++ und C#

Technologien:
  • C++11, C++/CLI (Bridge), Boost.Asio. Boost.Thread, Boost.Serialization, Boost.Signals2
  • C# 4.0, NLog, NUnit, Moq, P/Invoke, Mixed Mode Assembly
  • Java SE 7, JNA
  • Visual Studio 2010, 2013, Eclipse Mars
  • Jazz, ClearCase
Projekt:
"CMWmars" (LegacyFileImporter)

Kunde:
Rohde & Schwarz

Laufzeit:
01.2011 – 12.2015
Beschreibung:
Design und Entwicklung des "LegacyFileImporters", ein C++ Programm zum Importieren einer Binärdatei in eine SQLite Datenbank.

Aufgaben:
  • Implementierung einer performanten Parsing-Logik für binäre Logdateien
  • Persistierung der Datensätze in einer SQLite-Datenbank
  • Performance-Optimierung durch Parallelisierung der Verarbeitung mittels Parallel Patterns Library (PPL)
  • Realisierung einer thread-sicheren Kommunikation zwischen PPL-Tasks über Lock-free-Queues

Technologien:
  • C++11, C++/CLI, PPL, SQLite, Boost.Variant
  • C# 4.0, NLog, NUnit, Moq
  • VTune
  • Visual Studio 2010, 2013
  • Jazz, ClearCase
Projekt:
"CMWmars"

Kunde:
Rohde & Schwarz

Laufzeit:
01.2011 – 12.2015
Beschreibung:
Design und Entwicklung von "CMWmars", eine C#/WPF-Applikation zur Visualisierung von Mobilfunktestdaten.

Aufgaben:
Weiterentwicklung der GUI-Tests zur Steigerung der Testabdeckung

Technologien:
  • C# 4.0, System.Data.SQLite, WPF, NLog, NUnit, Moq, SQLite
  • Java SE 8, SikuliX
  • Visual Studio 2010, 2013, Eclipse
  • Jazz, ClearCase



Alte Projekte

Projekte:
  • "HardwareService"
  • "LoggingServer"
  • "MCT-Tools"

Kunde:
Rohde & Schwarz

Laufzeit:
02.2007 – 12.2010
Beschreibung:
  • Design und Entwicklung eines Java Wrappers um eine COM-Schnittstelle.
  • Design und Entwicklung eines Java LoggingServers zum Aufzeichnen von Socketdaten in eine proprietäre Logdatei.
  • Weiterentwicklung einer Java/Swing Applikation zur Visualisierung, Verwaltung und Ausführung von Mobilfunktests.

Technologien:
  • Java SE 5, Launch4j, Ant
  • Swing, CORBA, Log4j, FEST, ComfyJ, NIO
  • JUnit 4, PowerMock, EasyMock
  • Jython, Python
  • Eclipse
  • Bugzilla, ClearQuest, ClearCase
  • Windows
Projekt:
"FIA"

Kunde:
Vossloh IT

Laufzeit:
05.2006 – 01.2007
Beschreibung:
Weiterentwicklung der "FIA" Prozesse und Einführung von C++ Unittests.

Technologien:
  • C, C++, make, Boost.Jam
  • SQL, PostgreSQL, Boost.Test
  • Java SE, Ant
  • Log4j, JUnit, HTTP-Unit, HTML-Unit, XML-Unit, Apache Tomcat
  • KDevelop, gVim
  • Eclipse
  • Windows, Linux
Projekt:
"Auslandsauskunft"

Kunde:
SoftMethod

Laufzeit:
12.2005 – 04.2006
Beschreibung:
Design und Entwicklung eines Java/Swing Prototypen für die WSDL-Serviceschnittstelle.

Technologien:
  • Java SE, Ant
  • Swing, Log4j, TableLayout, E115, SOAP, ASN.1, Apache Tomcat, Apache Axis, WSDL
  • Eclipse
  • Sun Solaris
Projekte:
  • "Mediation Device"
  • "Remote Player"
  • "LIRC"

Kunde:
Siemens

Laufzeit:
06.2001 – 11.2005
Beschreibung:
  • Design und Entwicklung des "Mediation Device", ein C++ Programm zum Aufzeichnen und Weiterleiten von IP-Daten.
  • Design und Entwicklung des "Remote Player", eine C++/MFC Applikation zur Ansteuerung eines Java Media-Players.
  • Design und Weiterentwicklung des "LIRC", eine C++/MFC Applikation zum Extrahieren von gesprächsbegleitenden Meta-Daten.

Technologien:
  • C++, SCons
  • MFC, wxWidgets
  • STL, Boost, BSD Sockets, Pipes, POSIX Threads, PCRE Library
  • TLV, XML, ASN.1, Reguläre Ausdrücke
  • "Global Windows Hook", COM
  • KDevelop, GDB
  • Windows, Linux (SuSE, FreeBSD)
Projekt:
"VR-Networld"

Kunde:
E & M Software Solutions

Laufzeit:
04.2001 – 05.2001
Beschreibung:
Erstellung eines Gutachtens zur Wartbarkeit einer C++ Codebasis.

Technologien:
Visual C++ 6.0
Projekt:
"Clicktionary, Clevertrainer"

Kunde:
Cleverlearn

Laufzeit:
04.2000 – 03.2001
Beschreibung:
Design und Weiterentwicklung des "Clicktionary" bzw. "Clevertrainer", eine C++/MFC Applikation zum Übersetzen von Wörtern und Rede­wendungen.

Technologien:
Visual C++ 6.0, MFC
Projekt:
"RCC"

Kunde:
Siemens

Laufzeit:
02.1998 – 03.2000
Beschreibung:
Design und Entwicklung des "RCC", eine C++/MFC Applikation zum Überwachen und Aufzeichnen von Telefongesprächen.

Technologien:
Visual C++ 5.0, MFC, Named Pipes, Sockets, Threads
Projekt:
"RAIS GUI"

Kunde:
Softlab

Laufzeit:
07.1997 – 01.1998
Beschreibung:
Weiterentwicklung der "RAIS GUI", eine C++/StarView Applikation zur Verwaltung von Rückversicherungsgeschäften.

Technologien:
Visual C++ 5.0, StarView
Projekt:
"Playout-Center"

Kunde:
BETA-Research

Laufzeit:
02.1997 – 06.1997
Beschreibung:
Design und Entwicklung eines C++ Kommandozeilenprogramms zum Ansteuern eines Archivroboters.

Technologien:
C++, DBTools++
Projekte:
  • "BodyCare"
  • "Card-DLL"
  • "Lieferschein"
  • "UNIKA"
  • "EC-Kartenverwaltung"
  • "Konvertierungen"

Kunde:
Oldenbourg Datensysteme

Laufzeit:
08.1990 – 01.1997
Beschreibung:
  • Design und Entwicklung von "BodyCare", eine C++/MFC Applikation zum Visualisieren von Patientendaten die von Mikroprozessorkarten gelesen werden.
  • Design und Entwicklung von "Card-DLL", eine C++ Library zur Kommunikation mit einem Kartenterminal.
  • Design und Entwicklung von "Lieferschein", eine C++/TurboVision Applikation zum Ausfüllen und Drucken von Lieferscheinen.
  • Design und Entwicklung von "UNIKA", eine Embedded C Applikation zum Anzeigen von Krankenkassenkartendaten.
  • Design und Entwicklung von "EC-Kartenverwaltung", eine Clipper Applikation zur EC-Kartenverwaltung.
  • Design und Entwicklung von C/C++ Kommandozeilentools zur Konvertierung von Personalisierungsdaten.

Technologien:
  • C/C++, Clipper 5.0 (DBase-Kompiler)
  • MFC, TurboVision
  • Serielle Schnittstelle (RS-232), ASN.1, T1-Protokoll (ISO 7816-3/4)