Individuelle Software: Weiterentwicklung und Wartung

individuelle softwareentwicklung

Mit der Inbetriebnahme ist die Entwicklung einer individuellen Software nicht abgeschlossen. Anforderungen verändern sich, Betriebssysteme und Schnittstellen werden aktualisiert, neue Sicherheitslücken entstehen und bisher eingesetzte Komponenten können aus dem Support laufen.

Damit eine Software langfristig zuverlässig funktioniert, muss sie kontinuierlich gepflegt und gezielt weiterentwickelt werden. Dabei geht es nicht nur um die Behebung akuter Fehler. Auch Sicherheit, Dokumentation, Abhängigkeiten und Update-Prozesse gehören heute zu einer nachhaltigen Softwarestrategie.

Der Cyber Resilience Act verstärkt diese Entwicklung. Er rückt die Cybersicherheit von Softwareprodukten über ihren gesamten Lebenszyklus in den Fokus und macht deutlich: Software muss nicht nur bei der Veröffentlichung sicher sein, sondern auch danach sicher betrieben und aktualisiert werden können.

Warum individuelle Software regelmäßig gewartet werden muss

Individualsoftware wird speziell für die Prozesse und Anforderungen eines Unternehmens entwickelt. Genau darin liegt ihr Vorteil. Gleichzeitig ist sie häufig eng mit anderen Systemen, Datenbanken, Geräten oder externen Diensten verbunden.

Verändert sich ein Bestandteil dieser Umgebung, kann sich das unmittelbar auf die Anwendung auswirken. Typische Auslöser für eine Anpassung sind:

  • neue Versionen von Betriebssystemen und Frameworks
  • Änderungen an Schnittstellen oder Drittsystemen
  • bekannte Sicherheitslücken in eingesetzten Komponenten
  • veränderte gesetzliche oder organisatorische Anforderungen
  • neue Funktionen und Geschäftsprozesse
  • steigende Anforderungen an Performance und Verfügbarkeit

Ohne regelmäßige Wartung wächst das Risiko, dass die Software technisch veraltet, Sicherheitslücken entstehen oder notwendige Änderungen nur noch mit hohem Aufwand umgesetzt werden können.

Vier Formen der Softwarewartung

Je nach Anlass und Zielsetzung lässt sich Softwarewartung in vier Bereiche unterteilen. In der Praxis greifen diese häufig ineinander.

Korrigierende Softwarewartung

Die korrigierende Wartung behebt Fehler, die während des Betriebs auftreten. Dazu gehören beispielsweise fehlerhafte Berechnungen, nicht erreichbare Schnittstellen, Darstellungsprobleme oder unerwartete Systemabbrüche.

Entscheidend ist dabei nicht nur die kurzfristige Fehlerbehebung. Die Ursache sollte analysiert und nachvollziehbar dokumentiert werden, damit vergleichbare Probleme nicht erneut auftreten.

Hände tippen auf einen Laptop; der Bildschirm zeigt farbig formatierten Quellcode im Editor, im Hintergrund ein unscharfer Büroarbeitsplatz.

Präventive Softwarewartung

Präventive Wartung setzt an, bevor es zu einer Störung kommt. Der Quellcode, die Architektur und die verwendeten Komponenten werden regelmäßig geprüft, um technische und sicherheitsrelevante Risiken frühzeitig zu erkennen.

Dazu können unter anderem gehören:

  • Aktualisierung von Bibliotheken und Frameworks
  • Austausch nicht mehr unterstützter Komponenten
  • Optimierung der Codequalität
  • Überprüfung von Berechtigungen
  • Verbesserung von Protokollierung und Monitoring
  • Überarbeitung unzureichend dokumentierter Bereiche

Präventive Maßnahmen senken das Risiko ungeplanter Ausfälle und verhindern, dass sich kleinere technische Schwächen zu schwerwiegenden Problemen entwickeln.

Adaptive Softwarewartung

Bei der adaptiven Wartung wird die Software an eine veränderte technische oder organisatorische Umgebung angepasst. Das kann beispielsweise notwendig werden, wenn ein Betriebssystem aktualisiert, eine Schnittstelle geändert oder eine neue Sicherheitsrichtlinie eingeführt wird.

Auch Veränderungen in der Infrastruktur, etwa der Wechsel eines Hosting-Anbieters oder die Einführung neuer Authentifizierungsverfahren, können eine Anpassung der Anwendung erfordern.

Weiterentwickelnde Softwarewartung

Unternehmen und ihre Prozesse entwickeln sich weiter. Deshalb entstehen im laufenden Betrieb häufig neue Anforderungen an eine Software.

Bestehende Funktionen werden erweitert, Abläufe vereinfacht oder neue Fachbereiche angebunden. Gleichzeitig können Funktionen entfernt werden, die nicht mehr benötigt werden. Die Anwendung bleibt dadurch auf den tatsächlichen Bedarf ausgerichtet und entwickelt sich gemeinsam mit dem Unternehmen weiter.

Softwareentwicklung auf hohem Niveau

Sie möchten Ihre individuelle Software weiterentwickeln, technisch bewerten oder auf zukünftige Sicherheitsanforderungen vorbereiten? Sprechen Sie mit uns über Ihre Anwendung und die nächsten sinnvollen Schritte.

Cyber Resilience: Sicherheit über den gesamten Lebenszyklus

Cyber Resilience, auf Deutsch Cyberresilienz, beschreibt die Fähigkeit einer Software und ihrer Betriebsumgebung, Cyberrisiken zu vermeiden, Angriffe und Schwachstellen frühzeitig zu erkennen, darauf zu reagieren und den sicheren Betrieb auch nach einem Vorfall wiederherzustellen. Der Fokus liegt dabei nicht nur auf Prävention, sondern ausdrücklich auch auf Erkennung, Reaktion und Wiederherstellung.

Für individuelle Software bedeutet das, dass Sicherheit nicht als einmaliger Prüfschritt vor dem Go-live verstanden werden darf. Sie muss über den gesamten Lebenszyklus hinweg berücksichtigt werden – also bereits in der Entwicklung, ebenso im laufenden Betrieb und in der kontinuierlichen Wartung.

Dazu gehören insbesondere Maßnahmen, die auch im Kontext des Cyber Resilience Act (CRA) und der Empfehlungen des BSI eine zentrale Rolle spielen:

  • sichere Authentifizierungs- und Berechtigungskonzepte (z. B. nach dem Prinzip der minimalen Rechtevergabe)
  • regelmäßige Prüfung und Aktualisierung eingesetzter Softwarekomponenten und Abhängigkeiten
  • sichere und nachvollziehbare Update- und Patch-Prozesse
  • Verschlüsselung sensibler Daten sowohl bei Speicherung als auch bei Übertragung
  • sichere Konfiguration von Systemen, Schnittstellen und Kommunikationswegen
  • Protokollierung und Überwachung sicherheitsrelevanter Ereignisse zur frühzeitigen Angriffserkennung
  • etablierte Prozesse zum Umgang mit Schwachstellen und Sicherheitsvorfällen, einschließlich Bewertung und Behebung
  • Backup- und Wiederherstellungskonzepte zur Sicherstellung der Verfügbarkeit nach Sicherheitsvorfällen
  • nachvollziehbare technische Dokumentation als Grundlage für Betrieb, Wartung und Sicherheitsanalysen

Cyberresiliente Software ist damit nicht im Sinne einer absoluten Sicherheit zu verstehen. Sie ist jedoch so gestaltet, dass Risiken systematisch reduziert werden und Organisationen in der Lage sind, Sicherheitsvorfälle strukturiert zu bewältigen und den Betrieb kontrolliert wiederherzustellen.

Was der Cyber Resilience Act für Software verändert

Der Cyber Resilience Act (CRA), Verordnung (EU) 2024/2847, ist ein zentraler Baustein der EU-Cybersicherheitsstrategie. Er legt erstmals horizontale, verbindliche Cybersicherheitsanforderungen für Produkte mit digitalen Elementen fest, die auf dem EU-Binnenmarkt bereitgestellt werden. Damit werden Hersteller stärker in die Verantwortung genommen, Sicherheit über den gesamten Lebenszyklus eines Produkts sicherzustellen.

Im Mittelpunkt des CRA steht der sogenannte „Security-by-Design- und Security-by-Default“-Ansatz. Produkte sollen bereits in der Entwicklung so gestaltet werden, dass sie ein angemessenes Sicherheitsniveau aufweisen und standardmäßig sicher konfiguriert sind.

Zu den zentralen Anforderungen gehören insbesondere:

  • eine systematische und dokumentierte Bewertung von Cybersicherheitsrisiken
  • sichere Entwicklung und Gestaltung nach dem Stand der Technik („Security by Design“)
  • Identifikation, Dokumentation und Behebung von Schwachstellen
  • Bereitstellung von Sicherheitsupdates während des definierten Supportzeitraums
  • Festlegung und transparente Kommunikation eines Supportzeitraums
  • umfassende technische Dokumentations- und Informationspflichten
  • Meldepflichten für aktiv ausgenutzte Schwachstellen und schwerwiegende Sicherheitsvorfälle

Hersteller sind verpflichtet, Schwachstellen während des angegebenen Supportzeitraums zu adressieren und Sicherheitsupdates bereitzustellen. Der Supportzeitraum muss dabei in Abhängigkeit von Art, Zweck und erwarteter Nutzungsdauer des Produkts festgelegt und offengelegt werden.

Ob eine konkrete Individualsoftware unter den Anwendungsbereich des Cyber Resilience Act fällt, ist im Einzelfall zu prüfen. Entscheidend sind insbesondere, ob die Software als Produkt mit digitalen Elementen auf dem Markt bereitgestellt wird, welche Rolle der Anbieter einnimmt und wie das Geschäfts- bzw. Bereitstellungsmodell ausgestaltet ist. Eine rein intern genutzte Anwendung ist daher anders zu bewerten als eine Software, die als Produkt an mehrere Kunden vertrieben wird.

Unabhängig von der rechtlichen Einordnung greifen die im CRA verankerten Grundprinzipien viele bewährte Sicherheitspraktiken auf, die auch für individuelle Softwareprojekte relevant sind. Dazu zählen insbesondere ein strukturiertes Schwachstellenmanagement, klar definierte Verantwortlichkeiten, sichere Update- und Patch-Prozesse sowie die konsequente Berücksichtigung von Sicherheit über den gesamten Lebenszyklus hinweg. Diese Maßnahmen tragen wesentlich dazu bei, technische Risiken zu reduzieren und die langfristige Betriebssicherheit von Software zu erhöhen.

Blaues digitales Schild mit Fingerabdruck- und Schloss-Symbolen vor einem verschwommenen Büro mit arbeitender Person

Wie läuft die Wartung einer individuellen Software ab?

Ein professioneller Wartungsprozess beginnt mit einem Überblick über den aktuellen Zustand der Anwendung. Dabei werden nicht nur bekannte Fehler betrachtet. Auch Architektur, Quellcode, Abhängigkeiten, Dokumentation, Infrastruktur und Sicherheitsmechanismen sollten einbezogen werden.

1. Bestand und Risiken analysieren

Zunächst wird geprüft, welche Systeme, Komponenten und Schnittstellen zur Anwendung gehören. Bekannte Probleme, veraltete Abhängigkeiten und fehlende Dokumentationen werden erfasst.

2. Maßnahmen priorisieren

Nicht jede technische Auffälligkeit muss sofort behoben werden. Entscheidend ist eine Priorisierung nach Sicherheitsrisiko, Auswirkung auf den Betrieb, Dringlichkeit und technischem Aufwand.

Kritische Sicherheitslücken und betriebsgefährdende Fehler haben dabei Vorrang vor funktionalen Erweiterungen.

3. Änderungen planen und umsetzen

Die geplanten Anpassungen werden fachlich und technisch spezifiziert. Abhängig vom Umfang können sie als einzelnes Update oder innerhalb einer kontinuierlichen Weiterentwicklungsplanung umgesetzt werden.

4. Software testen

Vor der Veröffentlichung werden die Änderungen systematisch geprüft. Dazu gehören je nach Anwendung Funktions-, Integrations-, Sicherheits- und Akzeptanztests.

Besondere Aufmerksamkeit gilt den Bereichen, die von einer Änderung indirekt betroffen sein können. Gerade bei älteren oder eng vernetzten Anwendungen können Anpassungen unerwartete Wechselwirkungen auslösen.

5. Updates kontrolliert bereitstellen

Die Veröffentlichung sollte über einen nachvollziehbaren und möglichst reproduzierbaren Prozess erfolgen. Dazu gehören klare Versionen, dokumentierte Änderungen und eine Möglichkeit, bei Problemen auf einen stabilen Stand zurückzukehren.

6. Betrieb beobachten und dokumentieren

Nach dem Update wird geprüft, ob die Anwendung wie vorgesehen arbeitet. Monitoring, Protokollierung und Rückmeldungen der Anwender helfen dabei, neue Auffälligkeiten frühzeitig zu erkennen.

Gleichzeitig müssen technische Dokumentationen und Informationen zu Änderungen aktualisiert werden. Das erleichtert spätere Wartungsarbeiten und reduziert die Abhängigkeit von einzelnen Personen.

Welche Faktoren beeinflussen die Wartungskosten?

Die Kosten der Softwarewartung lassen sich nicht pauschal beziffern. Sie hängen wesentlich vom technischen Zustand, der Komplexität und der Qualität der vorhandenen Dokumentation ab.

Besonders relevant sind:

  • Umfang und Alter der Anwendung
  • Qualität und Struktur des Quellcodes
  • Anzahl der Schnittstellen und Drittsysteme
  • Aktualität der eingesetzten Technologien
  • vorhandene Testautomatisierung
  • Anforderungen an Verfügbarkeit und Reaktionszeiten
  • Qualität der technischen Dokumentation
  • Sicherheits- und Compliance-Anforderungen

Eine vermeintlich günstige Lösung ohne regelmäßige Wartung kann langfristig hohe Folgekosten verursachen. Je länger notwendige Aktualisierungen aufgeschoben werden, desto schwieriger wird es häufig, Komponenten zu ersetzen oder die Software auf einen aktuellen technischen Stand zu bringen.

Regelmäßige, planbare Wartungsintervalle sind daher meist wirtschaftlicher als ausschließlich auf akute Fehler und Ausfälle zu reagieren.

Übernahme und Weiterentwicklung bestehender Software

Vor einer solchen Übernahme sollte eine technische Bestandsaufnahme erfolgen, bei der der gesamte Zustand der Anwendung systematisch geprüft wird. Dabei wird unter anderem analysiert, ob der Quellcode vollständig und nachvollziehbar ist, ob sich die Anwendung reproduzierbar erstellen und bereitstellen lässt und welche Komponenten sowie Lizenzen im Einsatz sind. Ebenso wird untersucht, ob bekannte Sicherheitslücken oder veraltete Abhängigkeiten vorhanden sind, wie Betrieb, Zugänge und Verantwortlichkeiten organisiert wurden und welche Dokumentationen sowie automatisierten Tests existieren. Darüber hinaus wird bewertet, welche Maßnahmen kurzfristig erforderlich sind, um einen stabilen Weiterbetrieb sicherzustellen.

Auf dieser Grundlage lässt sich entscheiden, ob die bestehende Software weitergeführt, schrittweise modernisiert oder in einzelnen Bereichen neu entwickelt werden sollte.

Wartung und Cyber Resilience von Anfang an mitdenken

Eine langfristig tragfähige Individualsoftware entsteht nicht allein durch funktionierenden Quellcode. Sie benötigt eine wartbare Architektur, transparente Abhängigkeiten, sichere Entwicklungs- und Update-Prozesse sowie eine Dokumentation, die auch nach mehreren Jahren noch nutzbar ist.

Diese Anforderungen sollten möglichst früh im Projekt berücksichtigt werden. Wer Wartung und Cyber Resilience bereits bei der Planung einbezieht, reduziert spätere Risiken und schafft eine verlässliche Grundlage für den Betrieb und die Weiterentwicklung.

Was können wir tun?

bellmatec unterstützt Unternehmen bei der Entwicklung neuer individueller Softwarelösungen sowie bei der technischen Übernahme, Modernisierung und laufenden Betreuung bestehender Anwendungen.

Armin Lungwitz

Author: Mathias Pröhl

Als Ingenieur für Informationstechnik, ist Mathias Pröhl langjähriger erfolgreicher Softwareentwickler und Spezialist für Microsoft Technologien. Zudem ist Mathias Pröhl Geschäftsführer und Gründer von bellmatec.

Das könnte Sie auch interessieren