Sichere Hinweise auf drohende Software-Erosion und was Sie dagegen tun können

Erfolgreiche Embedded-Software wird meist über einen langen Zeitraum hinweg entwickelt. Dabei kann es passieren, dass hin und wieder Beziehungen in den Code eingebaut werden, die dort nichts zu suchen haben. Mit der Zeit weicht die Software immer stärker von der geplanten Architektur ab – die Software-Erosion befindet sich in vollem Gange.

Gerade bei langen Entwicklungszeiträumen ist es wichtig, die zugrundeliegenden Architekturvorgaben konsequent einzuhalten. Denn Verstöße wirken sich zwar erst später, dafür aber umso stärker aus.

Es gibt einige sichere Indikatoren für eine drohende oder bereits stattfindende Software-Erosion. Dazu gehört in den meisten Fällen folgendes:

  1. Wartungen, Erweiterungen und Änderungen der Software erfordern immer mehr Zeit.
    Es ist zunehmend schwieriger, Updates in die Software zu implementieren, da der Überblick über und das Verständnis für die innere Qualität der Software verlorengegangen ist.
  2. Die Software ist immer schwieriger testbar.
    Wenn ich die innere Qualität meiner Software nicht mehr kenne und überblicken kann, fallen auch Tests immer schwerer.
  3. Software-Ausfälle häufen sich.
    Eine steigende Fehlerrate und ein zunehmender Rückgang der Performance, deren Ursache nicht gleich erkennbar ist, bringen oft Fehleinschätzungen für den Änderungs- und Anpassungsaufwand mit. Die Folge: Immer öfter werden Abgabetermine nicht eingehalten.

Der schleichende und schwer aufzuhaltende Prozess der Software-Erosion hat seinen Preis, der dazu noch sukzessive ansteigt. Die Anpassbarkeit wird immer schwieriger, die Programmfehler häufen sich, und die Software zeigt zunehmend Inkompatibilitäten mit neuen und zukünftigen Softwareumgebungen. Mit der Zeit wird Ihre Softwarelösung zu einem Altsystem und damit unbrauchbar.

Wie stoppt oder verhindert man Software-Erosion?

Ihre Kunden nehmen häufig nur die äußere Software-Qualität wahr, die im klassischen Software-Test sichergestellt wird. Zur Sicherung der inneren Qualität existiert in den meisten Projekten kein spezielles Rollenbild im Entwicklungsprozess. Kleine Verstöße gegen die Architektur in der lokalen Entwicklung bleiben häufig unbemerkt.

Erst mithilfe von statischer Programmanalyse lassen sie sich sichtbar machen. Mit dieser erkennen Sie genau die Indikatoren für eine schleichende Software-Erosion in der Architektur und im Applikationscode, und sie liefert Ihnen Auswertungen und Analysen der Software-Qualitätskriterien im laufenden Software-Entwicklungszyklus.

Erfahren Sie mehr über Techniken, Methoden und Werkzeuge der Software-Analyse zur Schadensbegrenzung von Software-Erosion im MicroConsult Training “Software-Erosion: Ursachen, Wirkungen und Maßnahmen”.

Unter anderem beantworten wir Ihre Fragen zum Thema „Wie mache ich meine Software fit für die Zukunft?“:

  • Was ist Software-Erosion und welche Auswirkung hat sie auf mein Embedded-Projekt?
  • Welche Hinweise auf eine Software-Erosion lassen sich mithilfe statischer Analyse aufspüren?
  • Was sind zuverlässige Indikatoren für den Reifegrad eines Qualitätsprozesses?
  • Wie kann eine schleichende Software-Erosion über die Zeit verfolgt werden?
  • Welche weiteren verwertbaren Daten fallen im Entwicklungsprozess an, mit denen man auf eine Software-Erosion schließen kann?
  • Auf welche Weise können diese zusätzlichen Daten erhoben werden?
  • Wie genau funktioniert Software-Analytics?
  • Mit welchen Data-Mining-Techniken lassen sich die Daten zuverlässig auswerten?
  • Welche Werkzeuge gibt es für das Data-Mining?
  • Wie können Daten sinnvoll visualisiert werden?

Weiterführende Informationen

Training: Software-Erosion – Ursachen, Wirkungen und Maßnahmen

MicroConsult Training & Coaching zum Thema Software-Qualität

MicroConsult Fachwissen zum Thema Software-Qualität

Zum gesamten Trainings- und Coaching-Programm

Veröffentlicht von

Ingo Pohle

Ingo Pohle

Ingo Pohle ist Mitgründer und Geschäftsführer der MicroConsult GmbH und international anerkannter Spezialist für Embedded-Lösungen, mit einem reichen Erfahrungsschatz rund um den Einsatz von Embedded-Mikrocontrollern, Bussystemen und RTOS.