Modernisierung von Embedded Software

Gewachsene Software analysieren und erneuern

Embedded Software muss neben den funktionalen Erfordernissen eine Vielzahl von Rahmenbedingungen erfüllen. So bauen oftmals Produktfamilien auf einer zentralen Softwarebasis auf, vielfältige Kundenanforderungen erhöhen die Komplexität weiter – die Variantenvielfalt steigt und steigt. Keine Technologie oder Architektur kann alle zukünftigen Entwicklungen voraussehen. Früher oder später entsteht der Wunsch, die Embedded Software zu modernisieren. Ziel ist eine neue, belastbare Softwareplattform, die besser für die Zukunft gewappnet ist.

Relevant für

Produktentwicklung

Fachbereiche

IT

Ihr zentraler Nutzen:
Sie profitieren von unserer Methodenkompetenz und entlasten Ihre Know-how-Träger.

"Software ist meiner Erfahrung nach selten schlecht programmiert. Meist fehlt eher das Verständnis für die Wichtigkeit von Anforderungen, Architektur und Dokumentation."

Dr. Jörg-Volker Müller
Geschäftsführer von Systemum und Dozent für Softwaretechnik

Diese Herausforderungen meistern wir für Sie

1

Gewachsene Software

Oft finden wir „historisch gewachsene“ Software vor: Änderungen werden ohne Berücksichtigung der Architektur eingearbeitet und beeinträchtigen so die Wart- und Erweiterbarkeit. Die Architektur erodiert. Es fehlt an Dokumentation. In einer Bestandsaufnahme muss also zunächst die Qualität der Ausgangsbasis analysiert werden.

2

Modernisierungsstrategie

Ausgehend von der erfolgten Analyse muss nun die richtige Strategie für die Modernisierung der Software erarbeitet werden: Neuentwicklung auf Basis der Analyse, Umbau des Vorhandenen, eine Mischung aus beidem? Neues Team oder bestehendes Team? Das richtige Vorgehen sichert den Projekterfolg.

3

Nachhaltigkeit

Das beste Modernisierungsprojekt schlägt fehl, wenn nicht aus den Fehlern der Vergangenheit gelernt wurde: Das System muss nach erfolgter Modernisierung mit dem richtigen Maß an Dokumentation, einer stets aktuellen Architektur und einem adäquaten Change-Prozess weiterentwickelt werden.

Es gibt unterschiedliche Herangehensweisen

Abhängig von der Zielsetzung und der bestehenden Software gibt es verschiedene mögliche Herangehensweisen. Im individuellen Projekt wird im Regelfall eine – genau geplante – Mischform aus Neuentwicklung (Reengineering) und Anpassung (Refactoring) gewählt.  

Neuentwicklung

Eine mögliche Herangehensweise an die Modernisierung von Software ist die Neuentwicklung des Systems. Einzelne Module aus dem Altcode können dennoch übernommen werden.

Vorteilhaft ist, dass die Architektur des Zielsystems komplett unabhängig vom bestehenden System entworfen und implementiert wird. Die Software wird von Anfang an sauber strukturiert und aufgebaut. 

Ein Nachteil bei diesem Vorgehen ist der hohe Aufwand. Es muss ein komplett neues System realisiert werden. Außerdem bestehen Projektrisiken, da der Integrationstest erst zu einem späten Zeitpunkt erfolgen kann.

Reengineering/Refactoring

Die Modernisierung eines Systems von innen heraus setzt nach der vorgeschalteten Analyse auf dem bestehenden Softwarecode auf: Schrittweise werden in den bestehenden Code Schnittstellen eingezogen, Modulverantwortlichkeiten verschoben, Module durch Neuimplementierungen ersetzt oder angepasst und so das System schrittweise in Richtung Ziel umgebaut.

Der Vorteil dieser Vorgehensweise ist es, dass man früh auf einem bereits funktionierenden System aufsetzt und nach jedem Schritt ein Integrationstest erfolgen kann. Auch kann ein solches Vorgehen zu jeder Zeit abgebrochen werden, wenn sich Prioritäten verändern.

Hierin liegt zugleich aber die größte Gefahr: Eine hohe Disziplin in Entwicklungsteam und Management ist gefordert. Wenn zuvor als notwendig erkannte Modernisierungsschritte der Bequemlichkeit („Läuft doch, warum ändern?“) oder anderen Zielen geopfert werden, besteht die Gefahr des Scheiterns.

Eine Auswahl von Unternehmen, die dank uns nun erfolgreicher agieren

Unsere Architekturkompetenz und Projekterfahrung zu Ihrem Nutzen

Reverse Engineering

Aus den vorhandenen Anforderungen, dem Programmcode und im Rahmen von Interviews ermitteln wir die Anforderungen an die neue Software. 

Architekturbewertung

Wir bewerten die vorhandene Architektur und erstellen die Zielarchitektur sowie die Plattformstrategie als Grundlage für die Modernisierung.

Modernisierung

Wir entwerfen eine detaillierte Modernisierungsstrategie, planen die Arbeitspakete und steuern die Umsetzung des Projekts.

Methodenberatung Softwareengineering

Damit die Qualität des neuentwickelten Systems lange Zeit stabil bleibt, definieren und dokumentieren wir das passende Entwicklungsvorgehen. 

Wir passen unser Vorgehen Ihren Rahmenbedingungen an

1

Produkt und Prozess analysieren

Bestandsaufnahme: Produktvision, Anforderungen, Produktroadmap, Architektur, Entwicklungsprozesse

In der Analysephase wird der Modernisierungsbedarf detailliert ermittelt und die Qualität von Software und Prozess bewertet.

2

Modernisierungsstrategie definieren

In der Definitionsphase wird die Modernisierungsstrategie entwickelt: Welche Module werden übernommen, welche neu implementiert? Verbesserungen an Konzept, Architektur und Entwicklungsprozess werden formuliert, um die Langlebigkeit des modernisierten Produkts sicherzustellen.

Artefakte: Produktkonzept/-varianten, Plattformstrategie, Modernisierungsstrategie, Entwicklungsvorgehen, Sicherheitsstrategie, Teststrategie, Dokumentationskonzept, Projektmanagement-Handbuch   

3

Modernisierung planen

In der Designphase werden die einzelnen Elemente des modernisierten Systems im Detail entworfen und beschrieben.

Artefakte: Produkt-/Plattformspezifikation, Variantenkonzept, Zielarchitektur, Testfallspezifikation, Modernisierungsplan 

4

Modernisierung durchführen

Im Rahmen der Entwicklung gilt es nun, den aufgestellten Modernisierungsplan abzuarbeiten und das System schrittweise zu modernisieren.

Artefakte: Software, Deployment-Artefakte, Architekturdokumentation, Systemdokumentation, Testdokumentation

5

Nachhaltigkeit sichern

Um die Fehler der Vergangenheit nicht zu wiederholen, wird ein verbesserter Softwareengineeringprozess etabliert und fortwährend optimiert.

Artefakte: Prozesshandbuch, Funktionskatalog, Architekturdokumentation

Datenschutz Information und Einstellungen

Unsere Website verwendet Matomo, dabei handelt es sich um einen sogenannten Webanalysedienst. Matomo verwendet sog. „Cookies“, das sind Browservariablen, die auf Ihrem Computer gespeichert werden und die unsererseits eine Analyse der Benutzung der Webseite ermöglichen. Zu diesem Zweck werden die durch den Cookie erzeugten Nutzungsinformationen (einschließlich Ihrer gekürzten IP-Adresse) an unseren Server übertragen und zu Nutzungsanalysezwecken gespeichert, was der Webseitenoptimierung unsererseits dient. Ihre IP-Adresse wird bei diesem Vorgang umgehend anonymisiert, so dass Sie als Nutzer für uns anonym bleiben. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Webseite werden nicht an Dritte weitergegeben. Mehr erfahren Sie in unseren Datenschutzbedingungen

Cookies

Sie können sich entscheiden, ob die Website eigene Cookies definieren darf. Diese speichern z.B. Ihre Entscheidung, ob Sie der Verwendung von Analysediensten zugestimmt haben.

Analysedienste

Sie können sich entscheiden, ob in Ihrem Browser ein eindeutiger Webanalyse-Cookie abgelegt werden darf, um uns die Erfassung und Analyse verschiedener statistischer Daten zu ermöglichen. Wenn Sie sich dagegen entscheiden möchten, deaktivieren Sie die entsprechende Checkbox.