Fachgutachten zur Softwarequalität
Die Qualität von Software ist entscheidend für Zuverlässigkeit, Sicherheit und Wartbarkeit. Ein technisches Softwaregutachten liefert eine nachvollziehbare Einschätzung des Aufbaus, der Struktur und der Entwicklung eines Systems.
Als unabhängiger IT-Sachverständiger analysiere ich bestehende Anwendungen hinsichtlich Architektur, Dokumentation, Codequalität, Wartbarkeit und technischer Risiken.
Analyse- und Bewertungsfelder
- Architektur- und Designbewertung hinsichtlich Modularität, Kopplung und Skalierbarkeit
- Bewertung von Codequalität und Wartbarkeit hinsichtlich Lesbarkeit, Testbarkeit, Struktur und Dokumentation
- Analyse von Softwaremetriken und Qualitätskennzahlen, beispielsweise Komplexität, Testabdeckung und Redundanzen
- Identifikation technischer Schulden und Bewertung daraus entstehender Risiken
- Analyse von Versionshistorien, Build-Prozessen und Continuous-Integration-Systemen
Methodisches Vorgehen
Die Beurteilung erfolgt anhand fachlich begründeter und nachvollziehbarer Kriterien. Abhängig vom Prüfauftrag können Softwaremetriken, statische Analysen, Code-Reviews und strukturierte Architekturprüfungen eingesetzt werden.
Die angewendeten Prüfverfahren richten sich nach der vorhandenen Codebasis, der Systemarchitektur, dem vereinbarten Untersuchungsumfang und den verfügbaren Unterlagen.
Jede Bewertung erfolgt unabhängig und nachvollziehbar. Das Gutachten dokumentiert technische Befunde, Bewertungsgrundlagen und Grenzen der Untersuchung in einer Form, die auch für Projektverantwortliche, Fachabteilungen und juristische Beteiligte verständlich ist.
Typische Einsatzbereiche
- Analyse von Softwareprojekten bei Streitfällen, Qualitätsmängeln oder ungeklärten technischen Problemen
- Bewertung von Software im Rahmen von Projektabnahmen, Audits oder technischen Prüfungen
- Begutachtung von Fremdcode im Rahmen von Due-Diligence-Prüfungen
- Technische Qualitätssicherung und Prozessanalyse in der Softwareentwicklung
- Einschätzung von Wartbarkeit, Erweiterbarkeit und bestehendem Modernisierungsbedarf
Zielsetzung
Ziel eines Software- und Quellcode-Gutachtens ist es, technische Eigenschaften, Qualitätsprobleme und mögliche Risiken eines Softwaresystems nachvollziehbar zu untersuchen und fachlich einzuordnen.
Das Gutachten kann als Grundlage für technische, wirtschaftliche oder juristische Entscheidungen dienen. Die konkrete Aussagekraft richtet sich nach dem Prüfauftrag, der verfügbaren Codebasis und der Qualität der bereitgestellten Unterlagen.
Fallstudie: Methodischer Ablauf eines Software- und Quellcode-Gutachtens
Anwendung des ingenieurmäßigen Problemlösungszyklus nach Nicolai Andler auf Softwareanalysen
1. Diagnose – Technische Ausgangslage erfassen
- Codequalität (z. B. Redundanzen, Lesbarkeit, Stilkonformität)
- Build-Prozesse (Automatisierung, Stabilität, Portierbarkeit)
- Dokumentation (Vollständigkeit, Verständlichkeit, Aktualität)
2. Zielformulierung – Prüfkriterien und Bewertungsziele festlegen
- Lesbarkeit und Klarheit des Codes
- Wartbarkeit und Änderbarkeit
- Testbarkeit und Testabdeckung
- Regel- und Normkonformität (z. B. Clean Code, ISO-Normen)
3. Analyse – Technische Untersuchung und Nachvollziehbarkeit
- Statische Codeanalysen (Linting, Style Checks, Sicherheitsprüfungen)
- Architektur-Reviews (Layering, Modularität, Kopplung)
- Metriken-Auswertung (z. B. Komplexität, Abhängigkeitstiefe)
4. Entscheidungsfindung – Bewertung und Handlungsempfehlungen
- eine strukturierte Bewertung technischer Risiken und Potenziale,
- die Identifikation von Handlungsbedarfen (z. B. Refactoring, Redesign),
- konkrete Empfehlungen zur Verbesserung von Qualität und Wartbarkeit,
- eine belastbare Entscheidungsgrundlage für Entwicklung, Management oder Compliance.
Nicolai Andler: Tools für Projektmanagement, Workshops und Consulting – Kompendium der wichtigsten Techniken und Methoden, Volume 6, Publicis, Erlangen, 2015.
Praxisnahe Fallstudien
Die folgenden Fallstudien zeigen praxisnahe Beispiele aus der Gutachtenpraxis. Sie verdeutlichen, wie ein IT-Sachverständiger typische technische und organisatorische Herausforderungen strukturiert analysiert, bewertet und nachvollziehbar dokumentiert.
Ein mittelständisches Industrieunternehmen steht vor massiven Wartungsproblemen mit seiner zentralen Unternehmenssoftware. Das System ist über mehr als zehn Jahre gewachsen, technisch überholt und kaum noch erweiterbar. Der IT-Sachverständige wird beauftragt, den technologischen Zustand objektiv zu bewerten und eine belastbare Entscheidungsgrundlage für Management und Investoren zu schaffen.
Ausgangssituation
Die eingesetzte Unternehmenssoftware bildete den Kern aller administrativen und produktionsnahen Prozesse. Ursprünglich als Inhouse-Projekt gestartet, wurde sie im Laufe der Jahre von wechselnden Teams ohne durchgängige Architekturstrategie erweitert. Es existierten weder aktuelle technische Dokumentationen noch systematische Tests. Fehlerbehebungen führten häufig zu neuen Problemen, da Quellcode und Datenstrukturen stark miteinander verwoben waren. Fachabteilungen beklagten lange Reaktionszeiten und hohe Ausfallrisiken. Die IT-Abteilung war überlastet und konnte keine verlässlichen Aussagen zur Zukunftsfähigkeit des Systems mehr treffen.
Problemstellung
Das Management stand vor einer strategischen Entscheidung: Sollte das System refaktoriert, also technisch modernisiert werden, oder war eine vollständige Neuentwicklung wirtschaftlich sinnvoller? Zugleich sollte eine mögliche Migration in eine Cloud-Architektur geprüft werden. Interne Einschätzungen waren widersprüchlich, weshalb eine unabhängige sachverständige Analyse erforderlich wurde. Ziel war eine objektive Bewertung der technologischen Substanz, der Architekturqualität und der wirtschaftlichen Perspektive.
Vorgehen des IT-Sachverständigen
Der IT-Sachverständige führte eine strukturierte Untersuchung nach ingenieurmäßigen Prinzipien durch.
- Technische Bestandsaufnahme: Erfassung der Systemarchitektur, verwendeten Technologien, Abhängigkeiten und Deployment-Prozesse.
- Codeanalyse: Statische Auswertung von rund 600.000 Codezeilen hinsichtlich Komplexität, Redundanz und Testabdeckung.
- Architektur-Review: Identifikation zentraler Engpässe, zirkulärer Abhängigkeiten und Verletzungen des Schichtenmodells.
- Risikoanalyse: Bewertung technischer Schulden, Sicherheitslücken und Integrationsrisiken bei Drittsoftware.
- Dokumentationsprüfung: Analyse der Entwicklungsprozesse, Versionshistorie und Build-Pipelines.
Analyseergebnisse
Die Untersuchung zeigte ein stark monolithisches, technologisch veraltetes System mit hoher Kopplung zwischen Geschäftslogik und Benutzeroberfläche. Über 40 % des Codes wiesen zyklische Abhängigkeiten auf. Nur etwa 8 % der Funktionen waren automatisiert getestet. Ein vollständiges Refactoring wäre zwar technisch möglich, hätte aber einen hohen personellen und zeitlichen Aufwand erfordert. Positiv bewertet wurden die Stabilität des Datenmodells und die klar definierten Geschäftsregeln, die für eine zukünftige Modularisierung genutzt werden konnten.
Erkenntnisse & Empfehlungen
Das Gutachten kam zu dem Schluss, dass eine schrittweise Modernisierung – beginnend mit der Modularisierung kritischer Kernkomponenten – wirtschaftlich sinnvoller war als eine komplette Neuentwicklung. Der Sachverständige empfahl:
- Einführung einer serviceorientierten Architektur (Microservices-Ansatz)
- Refactoring der Hauptmodule mit Fokus auf Entkopplung und Testbarkeit
- Schrittweise Migration in eine containerbasierte Cloud-Umgebung
- Aufbau einer automatisierten Test- und Deployment-Pipeline (CI/CD)
- Begleitende Dokumentation und Code-Reviews zur Qualitätssicherung
Reflexion
Diese Fallstudie verdeutlicht, wie sachverständige IT-Begutachtung hilft, technologische Komplexität in fundierte Entscheidungsgrundlagen zu übersetzen. Die Kombination aus technischer Analyse, methodischer Nachvollziehbarkeit und ökonomischer Bewertung ermöglicht es Unternehmen, Risiken zu reduzieren und technologische Weichen langfristig richtig zu stellen.
Ein internationaler Softwarehersteller stand unter enormem Druck: Ein sicherheitskritisches Modul seines Produktionssystems verursachte Instabilitäten im laufenden Betrieb. Ein Abschalten war ausgeschlossen – das System musste rund um die Uhr verfügbar bleiben. Der IT-Sachverständige wurde beauftragt, die Risiken des Refactorings zu bewerten, die technische Strategie zu validieren und die Qualitätssicherung methodisch zu begleiten.
Ausgangssituation
Das betroffene System steuerte in Echtzeit den Datenaustausch zwischen Kundenplattform, ERP-System und externen Partnern. Nach einer Reihe von Updates traten unerwartete Fehlverhalten auf: sporadische Abstürze, Dateninkonsistenzen und unklare Speicherlecks. Die Software lief auf einer verteilten Architektur mit über 20 Services, die stark voneinander abhingen. Ein Abschalten der Plattform war nicht möglich – jede Unterbrechung hätte direkte Auswirkungen auf den Geschäftsbetrieb gehabt. Die Entwickler standen unter erheblichem Druck, fehlerhafte Komponenten im laufenden System zu korrigieren.
Problemstellung
Das Entwicklungsteam verfügte weder über eine vollständige Testabdeckung noch über eine aktuelle Architekturübersicht. Änderungen wurden ad hoc umgesetzt, um den laufenden Betrieb zu sichern – mit der Folge, dass unvorhersehbare Seiteneffekte entstanden. Die Verantwortlichen waren sich bewusst, dass ein ungeprüftes Refactoring das Gesamtsystem gefährden konnte. Deshalb sollte ein externer IT-Sachverständiger eine unabhängige technische Bewertung durchführen und eine methodische Vorgehensweise empfehlen, die Stabilität und Sicherheit auch während des Refactorings gewährleistet.
Vorgehen des IT-Sachverständigen
Der IT-Sachverständige gliederte das Projekt in drei Phasen:
- 1. Risikoanalyse: Untersuchung der Abhängigkeitsstruktur mittels statischer Codeanalyse und Dependency-Graphen. Identifikation kritischer Komponenten, die Sicherheits- oder Stabilitätsrisiken verursachen konnten.
- 2. Refactoring-Strategie: Entwicklung eines kontrollierten Vorgehens nach dem Prinzip „Strangler Pattern“. Alte Module wurden schrittweise durch neue, getestete Services ersetzt, ohne das Gesamtsystem abzuschalten.
- 3. Qualitätssicherung: Einführung von automatisierten Unit-, Integration- und Smoke-Tests, begleitet durch eine Testumgebung, die Live-Daten simulierte. Parallel erfolgte eine kontinuierliche Überwachung von Performance- und Logging-Metriken.
Analyseergebnisse
Die Analyse zeigte, dass rund 15 % des Codes kritisch für die Systemstabilität war. Besonders riskant waren enge Kopplungen zwischen dem Datenzugriff und der Kommunikationsschicht. Zudem wurden in mehreren Modulen veraltete Bibliotheken mit Sicherheitslücken identifiziert. Durch gezielte Entkopplung und den Einsatz moderner Frameworks konnte die Stabilität signifikant erhöht werden. Parallel wurde die Build-Pipeline angepasst, um automatisierte Regressionstests in den Deployment-Prozess zu integrieren.
Erkenntnisse & Empfehlungen
Der Gutachtenbericht empfahl ein phasenorientiertes Refactoring mit kontinuierlicher Risikobewertung:
- Priorisierung sicherheitskritischer Module und Überwachung über Metriken (z. B. Fehlerrate, Antwortzeit, Speicherverbrauch)
- Etablierung eines stabilen Staging-Systems zur Vorabvalidierung von Änderungen
- Aufbau einer automatisierten Testumgebung mit nightly builds
- Einführung von Code-Reviews durch Senior-Entwickler zur Qualitätssicherung
- Regelmäßige Fortschrittsberichte an das Management zur Dokumentation der technischen Risikoreduktion
Reflexion
Diese Fallstudie verdeutlicht, dass technische Qualitätssicherung auch unter hohem Zeitdruck möglich ist – vorausgesetzt, es erfolgt ein methodisch fundiertes Vorgehen. Der IT-Sachverständige fungiert hierbei als neutrale Instanz, die komplexe Risiken strukturiert analysiert und nachvollziehbare Entscheidungsgrundlagen schafft. In kritischen Projektsituationen trägt dies wesentlich zur Vermeidung von Folgeschäden und zur Sicherung des laufenden Geschäftsbetriebs bei.
Ein Technologieunternehmen entwickelte eine Plattformlösung mit über 100 Open-Source-Bibliotheken. Im Zuge einer Kundenprüfung wurde die Lizenzkonformität hinterfragt. Der IT-Sachverständige wurde beauftragt, die gesamte Abhängigkeitsstruktur zu analysieren, die Lizenzsituation zu bewerten und ein belastbares Compliance-Konzept zu entwickeln.
Ausgangssituation
Das Unternehmen setzte in seiner Softwarelösung eine Vielzahl externer Open-Source-Komponenten ein – von Frontend-Frameworks über Datenbank-Treiber bis hin zu KI-Bibliotheken. Eine zentrale Lizenzverwaltung oder ein Open-Source-Managementsystem existierten nicht. Mit zunehmender Projektgröße verloren die Entwickler den Überblick über verwendete Versionen, Lizenzen und Abhängigkeiten. Bei einer Ausschreibung forderte ein Großkunde detaillierte Nachweise über Lizenzkonformität und eventuelle Copyleft-Verpflichtungen. Interne Teams konnten diese Nachweise nicht vollständig erbringen, was zu Projektverzögerungen und Reputationsrisiken führte.
Problemstellung
Die Geschäftsleitung erkannte, dass fehlende Transparenz über Lizenzen ein erhebliches rechtliches und wirtschaftliches Risiko darstellte. Es bestand die Gefahr, dass Lizenzverstöße gegen GPL-, AGPL- oder LGPL-Bestimmungen zu Offenlegungspflichten oder Schadensersatzforderungen führen könnten. Darüber hinaus drohte der Verlust von Vertrauenswürdigkeit bei Geschäftspartnern und Investoren. Der IT-Sachverständige sollte klären:
- Welche Open-Source-Komponenten konkret eingesetzt wurden,
- welche Lizenzbedingungen dafür galten,
- ob bestehende Nutzung, Distribution oder Integration Lizenzverstöße verursachen konnte,
- und wie ein nachhaltiges Compliance-System etabliert werden konnte.
Vorgehen des IT-Sachverständigen
Die Untersuchung folgte einem strukturierten, mehrstufigen Ansatz:
- 1. Software-Inventarisierung: Automatisierte Erfassung sämtlicher Dritt- und Open-Source-Komponenten mittels Software Composition Analysis (SCA-Tools) und Abhängigkeits-Scanning (u. a. Dependency-Check, CycloneDX).
- 2. Lizenzprüfung: Zuordnung der gefundenen Komponenten zu spezifischen Lizenztypen (z. B. MIT, Apache 2.0, GPL v3, AGPL v3, BSD) und Identifikation der daraus resultierenden Verpflichtungen.
- 3. Risiko- und Konfliktanalyse: Bewertung der Kompatibilität der Lizenzen untereinander sowie mit den Unternehmensrichtlinien und dem Vertriebsmodell (z. B. SaaS-Betrieb, On-Premises-Distribution).
- 4. Dokumentation und Nachvollziehbarkeit: Aufbau einer „Compliance-Matrix“, in der jede Komponente mit Herkunft, Lizenztext, Version und Nutzungsart hinterlegt wurde. Diese Matrix bildete die Basis für künftige Audits und Kundenanforderungen.
Analyseergebnisse
Die Analyse ergab mehrere kritische Punkte:
- 15 % der eingesetzten Bibliotheken standen unter Copyleft-Lizenzen (u. a. GPL v3, AGPL v3) ohne entsprechende Offenlegungspflichten erfüllt zu haben.
- In mehreren Modulen waren unklare Lizenzketten vorhanden, da indirekte Abhängigkeiten (transitive Dependencies) nicht dokumentiert worden waren.
- Einige Komponenten nutzten veraltete Lizenzen mit unklarer Rechteübertragung (z. B. BSD 4-Clause).
- Einige Fremdmodule enthielten Lizenztexte, die in den Distributionspaketen unvollständig eingebunden waren.
Erkenntnisse & Empfehlungen
Der IT-Sachverständige empfahl den Aufbau eines strukturierten Open-Source-Compliance-Managementsystems mit folgenden Kernmaßnahmen:
- Einführung eines automatisierten Lizenz-Scans im Build-Prozess (CI/CD-Pipeline)
- Benennung eines internen „Open-Source-Compliance-Beauftragten“
- Pflege einer zentralen Komponenten-Datenbank (Software Bill of Materials – SBOM)
- Verwendung ausschließlich lizenzkompatibler Bibliotheken bei künftigen Entwicklungen
- Regelmäßige Compliance-Audits und Mitarbeiterschulungen zu Lizenzrecht und Open-Source-Policies
Reflexion
Diese Fallstudie zeigt exemplarisch, dass Lizenz- und Compliance-Themen integraler Bestandteil technischer Qualitätssicherung sind. Der IT-Sachverständige trägt hierbei zur rechtlichen Absicherung und Risikominimierung bei, indem er technische Fakten mit juristischen Anforderungen verbindet. Open-Source-Transparenz wird so nicht nur zur Compliance-Pflicht, sondern zu einem Wettbewerbsvorteil.
Beispiel für ein Gutachtenangebot
Ein typisches Gutachtenangebot zur Software- und Quellcode-Analyse kann folgende Leistungen umfassen:
- Analyse einer vereinbarten Quellcodebasis, beispielsweise in Java, C#, Python oder JavaScript
- Bewertung der Softwarearchitektur, Codequalität, Testbarkeit und Dokumentation
- Prüfung von Schnittstellen, Datenstrukturen und technischen Abhängigkeiten
- Analyse technischer Schulden, Wartbarkeitsrisiken und möglicher Qualitätsprobleme
- Bericht mit Befunden, fachlichen Bewertungen, Aussagegrenzen und Handlungsempfehlungen
Der Leistungsumfang und die Kosten richten sich nach Projektgröße, Codebasis, Systemkomplexität und gewünschtem Detailgrad. Nach Sichtung der verfügbaren Unterlagen erhalten Sie ein individuelles und unverbindliches Angebot.
Typischer Kostenrahmen:
ca. 1.200 € bis 3.500 € netto
Abhängig von Systemkomplexität, Umfang der Codebasis,
Unterlagenlage und gewünschter Berichtstiefe.
Hinweis: Die Angaben dienen ausschließlich der Orientierung und stellen kein verbindliches Angebot dar.
Kontakt zu IT-Sachverständigen Mathias Ellmann
Benötigen Sie ein unabhängiges Software- oder Quellcode-Gutachten zur Bewertung von Architektur, Codequalität und technischer Dokumentation?
Kontakt aufnehmenHäufige Fragen zum Softwaregutachten
Was beinhaltet ein Software- und Quellcode-Gutachten?
Das Gutachten umfasst die technische Bewertung der Softwarearchitektur, der Codequalität und der Dokumentation, um den Entwicklungsstand objektiv zu beurteilen.
Wann ist ein Software-Gutachten erforderlich?
Bei Softwaremängeln, Streitfällen oder zur Qualitätssicherung dient ein Gutachten als objektive Entscheidungsgrundlage über den technischen Zustand des Systems.
Welche Methoden werden bei der Quellcode-Analyse eingesetzt?
Es kommen statische Analysen, Architekturprüfungen und Softwaremetriken zum Einsatz. Diese ermöglichen eine reproduzierbare Bewertung auf technischer Grundlage.
Ist ein Software-Gutachten rechtlich verwertbar?
Das Gutachten dient der technischen Beweissicherung und außergerichtlichen Bewertung. Es ersetzt kein gerichtliches Gutachten, kann jedoch als fachlich fundierte Entscheidungsgrundlage herangezogen werden.