1 vortrag 11: reengineering - refactoring referenten: christian ecke, joscha menzel univ.-prof. em....
TRANSCRIPT
![Page 1: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/1.jpg)
1
Vortrag 11:
Reengineering - Refactoring
Referenten: Christian Ecke, Joscha Menzel
Univ.-Prof. em. Dr. H.-J. HoffmannTU Darmstadt, Fachbereich Informatik
10.02.2002
![Page 2: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/2.jpg)
2
Zum Inhalt
Einleitung
Was ist Reengineering?
Forward Engineering
Reverse Engineering
Reengineering
Einordnung in den Lebenszyklus von Software
Wann ist Reengineering sinnvoll?
Ziele
Voraussetzungen
![Page 3: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/3.jpg)
3
Einleitung
Das erste Gesetz von Lehman
Software, welche in einer realen Umgebung benutzt wird, muss verändert werden oder sie wird nach und nach unbrauchbar.
Das zweite Gesetz von Lehman
Bei der Weiterentwicklung einer Software wird deren Struktur immer komplexer, falls keine Maßnahmen ergriffen werden um dies zu vermeiden.
Die Weiterentwicklung und Wartung von Software ist von entscheidender Bedeutung!
![Page 4: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/4.jpg)
4
Was ist Reengineering?
Forward Engineering
Traditioneller Prozess der Entwicklung von einem hohen Abstraktionsniveau zu der fertigen Implementierung der Software
Reverse Engineering
Analyse einer vorhandenen Software um:
Die einzelnen Komponenten und ihre Beziehungen festzustellen
Neue Repräsentationen der Software auf höherem Abstraktionsniveau zu erstellen
Der Startpunkt dieses Prozesses muss nicht die fertige Software sein
Die Software selbst wird nicht verändert
![Page 5: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/5.jpg)
5
Was ist Reengineering?
Definition
Unter Reengineering versteht man die Analyse und Modifizierung einer bestehenden Software mit dem Ziel diese zu erneuern und zu verbessern.
Benutzte Verfahren
Reverse Engineering (um eine abstraktere Beschreibung zu erhalten)
Forward Engineering
Refactoring
![Page 6: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/6.jpg)
6
Einordnung in den Lebenszyklus
![Page 7: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/7.jpg)
7
Wann ist Re-Engineering sinnvoll?
Generell bei Wartung/Aktualisierung von großen Softwareprojekten
Die Entwickler der Software sind nicht erreichbar, um Funktionalität zu erklären
Hier ist besonders Software zu nennen, welche sich regelmäßig ändert
Die Geschäftsmodelle vieler Unternehmen sind heute in Software implementiert (z.B.: Datenbanksysteme, etc.)
Diese Modelle ändern sich in bestimmten Zeitintervallen und somit auch die Software
![Page 8: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/8.jpg)
8
Ziele des Re-Engineering
Anpassung des Systems an neue Anforderungen, welche zuvor nicht erfüllt waren
Ein besseres Verständnis der Software erlangen, um einerseits die Wartung als auch andererseits die Weiterentwicklung zu vereinfachen
Leichterer Umgang mit hoch komplexer Software
Risiken der Softwareentwicklung verringern
Senken von hohen Wartungs- und Entwicklungskosten(normalerweise 50-90% der Gesamtkosten)
![Page 9: 1 Vortrag 11: Reengineering - Refactoring Referenten: Christian Ecke, Joscha Menzel Univ.-Prof. em. Dr. H.-J. Hoffmann TU Darmstadt, Fachbereich Informatik](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6649795902118bbcef/html5/thumbnails/9.jpg)
9
Anforderungen für Re-Engineering
Hilfe von Tools ist unverzichtbar
Um abstraktere Beschreibungen einer Software zu erhalten (Disassembler, Recompiler, etc.)
Um Refactoring durchzuführen
Gut ausgebildetes Personal
Einsatz von Regressionstests, um evtl. neu entstandene Fehler zu finden