Für viele der heute eingesetzten Softwaresysteme besteht aufgrund ihrer schlechten Wartbarkeit oder zwischenzeitlich veränderter Anforderungen der Bedarf einer Ablösung. Softwaresysteme altern, sie müssen durch neue ersetzt werden.
Als Alternative zur vollständigen Neuentwicklung eines Softwaresystems bietet sich das Software Reengineering an. Ein bestehendes Softwaresystem wird im Zuge eines Reverse Engineering analysiert und dokumentiert, danach restrukturiert und in einer abschließenden Phase des Forward Engineering neu implementiert [KAUFM94, S.1].
Das neu entstehende Systeme kann ein 1:1-Abbild des bestehenden Systems sein oder einzelne gezielte Erweiterungen der fachlichen Funktionalität aufweisen.
Abhängig vom Umfang der Änderungen und Erweiterungen in der Anforderungsspezifikation, der Entwurfsspezifikation oder der Implementierung ergibt sich der jeweilige Lösungsraum für ein neu zu erstellendes Softwaresystem.
Im Zuge des Software Reengineering sind vielfältige Probleme zu lösen. So hängt z. B. der Erfolg der (Re-) Dokumentation eines Softwaresystems stark von der Qualität und dem Umfang der vorhandenen Dokumentation ab. Insbesondere sehr alte Softwaresysteme weisen hier erhebliche Defizite auf. Bei der Ablösung der bestehenden Softwaresysteme bestehen hohe Risiken. Abhängig vom Risiko und dem möglichen Einführungsaufwand sind hier geeignete Strategien für die Ablösung eines Softwaresystems zu definieren und umzusetzen [BISKR92, S.125].
Jedes neu erstellte Softwaresystem wird früher oder später zu einem Altsystem. Vor diesem Hintergrund bietet es sich an, Alterungsprozesse bereits bei der Neuerstellung eines Softwaresystems zu berücksichtigen, um die Wartung und ein ggf. später durchzuführendes Software Reengineering zu vereinfachen. Dadurch könnten die Kosten, die im Lebenszyklus eines Softwaresystems entstehen, nachhaltig reduziert werden.
Inhaltsverzeichnis
- Einleitung
- Überblick
- Zielsetzung des Reengineering
- Aufbau der Arbeit
- Grundlagen des Reengineering
- Begriffsdefinitionen
- Die technologische Lücke im Software Lebenszyklus
- Reengineering - Modelle
- Argumente für ein Reengineering
- Reverse Engineering
- Problemerkennung und Analyse
- Restrukturierung
- CARE - Werkzeuge und Einsatzmöglichkeiten
- Offene Probleme und Fazit
- Literaturverzeichnis
Zielsetzung und Themenschwerpunkte
Diese Arbeit befasst sich mit dem Software Reengineering, einem Verfahren zur Modernisierung und Verbesserung bestehender Softwaresysteme. Ziel ist es, ein tiefes Verständnis für die Prozesse und Herausforderungen des Reengineering zu vermitteln, um die Überarbeitung und Adaption von Legacy-Systemen zu erleichtern.
- Definition und Abgrenzung des Software Reengineering
- Analyse der technologischen Lücke im Softwarelebenszyklus
- Verschiedene Reengineering-Modelle und -Methoden
- Bedeutung von Reverse Engineering und Restrukturierung
- Analyse der Herausforderungen und Probleme beim Software Reengineering
Zusammenfassung der Kapitel
Das erste Kapitel bietet eine einführende Übersicht zum Software Reengineering und beschreibt die Notwendigkeit dieses Verfahrens im Kontext der Software-Alterung und der Entwicklung neuer Anforderungen.
Kapitel 2 geht tiefer in die Grundlagen des Reengineering ein. Es werden verschiedene Begriffsdefinitionen vorgestellt, die technologische Lücke im Softwarelebenszyklus erläutert und verschiedene Reengineering-Modelle präsentiert.
Kapitel 2 analysiert die Argumente für ein Reengineering und beleuchtet die Bedeutung des Reverse Engineerings bei der Analyse und Dokumentation bestehender Systeme. Weiterhin werden die Prozesse der Problemerkennung, Analyse und Restrukturierung im Detail betrachtet.
Schlüsselwörter
Software Reengineering, Reverse Engineering, Forward Engineering, Legacy-Systeme, Software-Alterung, Technologische Lücke, Restrukturierung, CARE-Werkzeuge, Wartung, Anforderungen, Analyse, Dokumentation.
- Quote paper
- Aron Koch (Author), 2003, Software Reengineering, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/14129