CS2304 Code Refactoring

Modulverantwortliche
  • Prof. Dr. Klaus-Dieter Quibeldey-Cirkel
Lehrende
  • Prof. Dr. Klaus-Dieter Quibeldey-Cirkel
  • Prof. Dr. Thorsten Weyer
Vorausgesetzte Module
Kurzbeschreibung

Der Kurs vermittelt Kenntnisse und Erfahrungswissen über Refactoring-Methoden. In Übungen mit Refactoring-Werkzeugen lernen die Studierenden, ihre Code-Produktivität zu steigern und die Qualität ihres Quellcodes zu verbessern.

Inhalte
  • Reverse Engineering und Software-Metriken
  • Technical Debt
  • Tools für Continuous Code Inspection
  • Methoden der Code-Sanierung
  • Prinzipien des Refactoring
  • Refactoring in der IDE
  • Refactoring-Kataloge: „Bad Code Smells”
Qualifikations- und Lernziele

Fachkompetenzen

  • Die Studierenden können die wichtigsten Refactoring-Patterns erläutern.
  • Sie können werkzeuggestützt die Qualität von Software messen und bewerten.

Methodenkompetenzen (fachlich & überfachlich)

  • Code Refactoring ist eine Methode, um die interne Code-Struktur zu verbessern, ohne das funktionale Verhalten der Software zu ändern. Die Studierenden können diese Herangehensweise an die objektorientierte Programmierung und Wartung anwenden, die ihre Selbstsicherheit fördert und die Qualität ihrer Code-Änderungen sichert.
  • Nach Abschluss der praktischen Übungen an industriellen Fallbeispielen können sie Refactoring anwenden, um ihre persönliche Code-Produktivität deutlich zu steigern.
  • Sie sind in der Lage, den Aufwand zu bemessen, um Altsysteme anzupassen oder zu erweitern.

Sozialkompetenzen

  • Mit dem Wissen über Refactoring-Patterns sind die Studierenden in der Lage, die Qualität von Software differenziert zu beurteilen und im Team zu kommunizieren.

Selbstkompetenzen

  • Sie können die Qualität ihres Codes selbst beurteilen.
ECTS-Leistungspunkte (CrP)
  • 6 CrP
  • Arbeitsaufwand 180 Std.
  • Präsenzzeit 60 Std.
  • Selbststudium 120 Std.
Lehr- und Lernformen
  • 4 SWS
  • Vorlesung 2 SWS
  • Praktikum 2 SWS
Studiensemester
  • Bioinformatik (B.Sc. 2012)
  • Informatik (B.Sc. 2010)
  • Ingenieur-Informatik (B.Sc. 2010)
Dauer
1 Semester
Häufigkeit des Angebots
Einmal im Jahr
Unterrichtssprache
Deutsch
Bonuspunkte

Ja

Bonuspunkte werden gemäß § 9 (4) der Allgemeinen Bestimmungen vergeben. Art und Weise der Zusatzleistungen wird den Studierenden zu Veranstaltungsbeginn rechtzeitig und in geeigneter Art und Weise mitgeteilt.

Prüfungsleistungen

Prüfungsvorleistung: Hausübung (Anzahl der Hausübungen wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)

Prüfungsleistung: Klausur oder Projekt (Art des Leistungsnachweises wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben)

Benotung
Die Bewertung des Moduls erfolgt gemäß §§ 9, ggf. 12 (Teilleistungen), ggf. 18 (Arbeiten, Kolloquien) der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung).
Verwendbarkeit
Gemäß § 5 der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung) Verwendbarkeit in allen Bachelorstudiengänge der THM möglich.
Literatur, Medien
  • Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional.
  • Martin, R. C.: Working Effectively with Legacy Code. Prentice Hall.
  • Martin, R. C.: Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall International.

Rechtliche Hinweise