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.
Anbieter zum Thema

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:
- 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.
- 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.
- 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.
Dieser Beitrag ist eine Übernahme aus dem Unternehmens-Blog von Microconsult mit freundlicher Genehmigung des Urhebers.
:quality(80)/images.vogel.de/vogelonline/bdb/1509900/1509975/original.jpg)
Automatischer Einklang von Architektur und Implementierung
:quality(80)/images.vogel.de/vogelonline/bdb/955100/955146/original.jpg)
Qualitätssicherung
Die Problematik bei der Qualitätsmessung von Legacy Code
* 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.
(ID:45884344)