Was versteht man unter Re-engineering?
Der Begriff "Re-engineering" im Software Engineering beschreibt den Prozess der Überarbeitung oder Restrukturierung eines bestehenden Softwaresystems, um es zu modernisieren, zu verbessern oder besser an neue Anforderungen anzupassen. Dies beinhaltet in der Regel das Reverse Engineering, um das aktuelle System zu verstehen, sowie das anschließende Umgestalten und Neuentwickeln, um das System effizienter, skalierbarer und wartungsfreundlicher zu machen.
Typische Softwarefunktionen im Bereich "Re-engineering":
- Code-Refactoring: Umgestaltung des Quellcodes, um die Lesbarkeit und Wartbarkeit zu verbessern, ohne die externe Funktionalität zu ändern.
- Architektur-Redesign: Überarbeitung der Systemarchitektur, um die Skalierbarkeit und Performance zu steigern.
- Modernisierung von Technologien: Austausch veralteter Technologien durch modernere und effizientere Frameworks, Programmiersprachen oder Plattformen.
- Dokumentationserstellung: Erstellung oder Aktualisierung von technischen Dokumentationen basierend auf der neuen Systemstruktur.
- Testgenerierung und -automatisierung: Entwicklung automatisierter Tests, um sicherzustellen, dass die re-engineerte Software die erwarteten Funktionen korrekt erfüllt.
- Datenmigration: Übertragung von Daten aus älteren Systemen in modernisierte Datenstrukturen oder Datenbanken.
- Integration von neuen Funktionen: Hinzufügen neuer Funktionalitäten oder Module, die besser auf die aktuellen Geschäftsanforderungen abgestimmt sind.
Beispiele für „Re-engineering“:
- Modernisierung eines Legacy-Systems: Ein Unternehmen entscheidet sich, ein altes System zu re-engineeren, indem es auf eine moderne Plattform portiert wird.
- Umstrukturierung des Codes für bessere Wartbarkeit: Ein Entwicklerteam nimmt Re-engineering vor, um den Code eines bestehenden Systems zu vereinfachen und zu optimieren.
- Migration auf eine Cloud-Architektur: Ein altes On-Premise-System wird im Rahmen eines Re-engineering-Prozesses in eine cloudbasierte Infrastruktur überführt.
- Verbesserung der Systemleistung: Durch Re-engineering wird die Architektur eines Systems optimiert, um eine bessere Performance und Skalierbarkeit zu erreichen.
- Erweiterung eines Systems für neue Geschäftsanforderungen: Ein Unternehmen nutzt Re-engineering, um bestehende Softwarelösungen um neue Funktionen zu erweitern, die den aktuellen Marktanforderungen entsprechen.