Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.

Ähnliche Präsentationen


Präsentation zum Thema: "Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den."—  Präsentation transkript:

1 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den bisherigen Code leichter lesbar und verständlich zu machen. Dem dient das Refactoring. Refactoring ist ein systematischer Ansatz, durch eine Serie von kleinen Modifikationen das Design eines bestehenden objektorientierten Programms so zu verbessern, dass sich neue Funktionalitäten leichter implementieren lassen oder das Programm anschließend leichter wartbar ist. Bei Refactoring wird das externe Verhalten des Programmes nicht geändert, der Code erhält aber eine bessere interne Struktur. Der Name Refactoring leitet sich aus der Mathematik ab, Dort gilt 800 = 8 * 100 = 100 * 8 = 25 * 32 = 5 2 * 2 5

2 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Warum Refactoring? Refactoring verbessert das Design der Software Refactoring macht die Software verständlicher Refactoring verbessert die Flexibilität Refactoring hilft Fehler zu finden Refactoring beschleunigt den Software-Entwicklungsprozess

3 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Wann soll Refactoring eingesetzt werden? Vor Hinzufügen einer neuen Funktionalität Vor und Nach dem Code Review Code Bad Smells als Wegweiser

4 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Bed Smells: If it stinks, change it - Kent Beck Bed Smell 1: Duplizierter Code –Beim ersten Mal wird der Code geschrieben. –Beim zweiten Mal kann der gleiche Code noch dupliziert werden. –Beim dritten Mal muss der Code umstrukturiert werden. Bed Smell 2: Lange Methode –Eine lange Methode macht den Code unübersichtlich Bed Smell 3: Große Klasse –Eine grosse Klasse besitzt viele Attribute und Methoden, sie erledigt die Arbeit von mehreren Klassen und wird daher unübersichtlich

5 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Bed Smells: If it stinks, change it - Kent Beck Bed Smell 4: Lange Parameterliste –Schwer zu verstehen und zu benutzen Bed Smell 5: Faule Klasse –Tut fast nichts, bringt unnötige Kosten Bed Smell 6: Kommentare –Kommentierter Code ist gut, selbstkommentierender Code ist besser und andere mehr

6 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Wie soll Refactoring eingesetzt werden? Test bei jedem Schritt –Unit-Test –white-box Test Ein Schritt auf einmal –Rückzugsmöglichkeit sichern (CVS, o.a.) –nicht debuggen, sonder zurückziehen Keine Funktionalität ändern

7 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Wie soll Refactoring eingesetzt werden? Mögliche Modifikationen durch Refaktoring: –Hinzufügen –Umbenennen –Löschen –Bewegen –Extrahieren –Ersetzen von Strukturelementen (Attributen, Klassen, Methoden)

8 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Refactoring Methoden Methode Methode extrahieren –Zusammengehörigen Code in eine neue Methode extrahieren –Gefahr: Duplizierter Code, Lange Methode, Kommentare fehlen Methode Klasse extrahieren –Neue Klasse anlegen und Attribute und Methoden verschieben –Gefahr: Duplizierter Code, Methode Klasse integrieren –Attribute und Methoden in eine andere Klasse verschieben; Klasse löschen –Gefahr: Faule Klasse

9 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Refactoring Methoden Methode Ganzes Objekt übergeben –Mehrere Parameter bilden eine natürliche Einheit –Gefahr: Lange Parameterliste Methode Schnittstelle extrahieren –Teilmenge der Methoden in eine Schnittstelle extrahieren –Gefahr: Große Klasse u.v.a.

10 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Refactoring Methode: Schnittstelle extrahieren Name Problem –Verschiedene Klienten verwenden die gleiche Teilmenge der Schnitt-stelle einer Klasse, oder zwei Klassen haben einen Teil ihrer Schnitt-stellen gemeinsam Lösung –Extrahieren Sie die Teilmenge in eine Schnittstelle Motivation –Schnittstellen sind immer dann nützlich, wenn eine Klasse in verschiedenen Situationen unterschiedliche Rolle spielt. Verwenden Sie die Schnittstelle extrahieren für jede Rolle. Eine andere nützliche Anwendung dieser Refactoring Methode besteht darin die Importschnittstelle zu beschreiben. Vorgehen –Erstellen Sie eine leere Schnittstelle –Deklarieren Sie die gemeinsame Methode in der Schnittstelle –Lassen Sie die relevanten Klassen die Schnittstelle implementieren –Lassen Sie die Klienten die Schnittstelle verwenden

11 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Wann soll Refactoring nicht eingesetzt werden? Vom Refactoring ist abzuraten Kurz vor dem Abschlusstermin –Refactoring wird die Entwicklung über den Termin hinaus verlängern –Vorteile würden zu spät wirken wenn der Code zu schlecht ist –z.B. nicht übersetzbar oder nicht stabil lauffähig –Basis für stabiles Verhalten und Testbarkeit fehlt Also ist vor Beginn der Iterationsphase eine gute Gelegenheit eine Runde Refactoring einzulegen


Herunterladen ppt "Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den."

Ähnliche Präsentationen


Google-Anzeigen