9 Wartung Flashcards
Nennen Sie die 4 Wartungsaufgaben.
corrective, preventive, perfective and adaptive maintenance.
Was ist Refactoring? Wann sollte man es durchführen und wann nicht?
Refaktorisiert wird, wenn es eine andere durchzuführende Tätigkeit, wie z. B. eine der folgenden, erfordert:
- Hinzufügen von Funktionalität
- Fehlerbehebung
- Design Review bzw. Code Review
Es sollte nicht durchgeführt werden, wenn es sich um sehr schlechten Entwurf/Code handelt. In dem Fall besser neu schreiben.
Was ist der Unterschied zwischen Refactoring und Performance-Optimierung?
Refactoring hat das Ziel SW verständlicher zu machen. Performance-Optimierung soll die Leistung der SW verbessern.
Änderungen zwecks Performance-Optimierung sind kein Refactoring
Beschreiben Sie grob die Refactoring-Technik ‘Methode extrahieren’
Ein hoch kohäsives, wiederzuverwendendes Codefragment wird in eine eigene Methode verschoben.
Lokale Variablen, die das Codefragment verarbeitet, werden der neuen Methode als Parameter übergeben.
Mittels Rückgabeparameter können die Ergebnisse des Codefragments übergeben werden.
Beschreiben Sie grob die Refactoring-Technik ‘Methode integrieren’
Eine Methode wird aufgelöst und der Code in ihrem ursprünglichem Rumpf nachträglich in den Rumpf des Aufrufers untergebracht.
Beschreiben Sie grob die Refactoring-Technik ‘Methode durch Methodenobjekt ersetzen’
Eine Methode wird in ein Objekt umgewandelt.
Die lokalen Variablen der Methode werden dabei Felder dieses Objekts.
Anschließend kann die Methode in andere Methoden innerhalb des gleichen Objekts zerlegt werden, z. B. durch Methodenextrahierung.
Beschreiben Sie grob die Refactoring-Technik ‘Klasse extrahieren’
Eine Klasse wird aufgeteilt, indem eine neue Klasse erstellt wird.
Bestimmte Attribute und Methoden der alten Klasse werden in die neue Klasse verschoben.
Beschreiben Sie grob die Refactoring-Technik ‘Klasse integrieren’
Alle Attribute und Methoden einer Klasse werden in eine andere Klasse verschoben.
Die ursprüngliche Klasse wird gelöscht.
Beschreiben Sie grob die Refactoring-Technik ‘Delegation verbergen’
Vor Refactoring: Server-Objekt gibt Objekt an Client, der eine Methode in Objekt aufruft.
Nach Refactoring: Dem Server-Objekt wird die Methode direkt hinzugefügt und Server ruft dann Methode in Objekt für den Client auf.
Beschreiben Sie grob die Refactoring-Technik ‘Collection kapseln’
Methode einer Klasse liefert eine Collection zurück. Klasse wird so abgeändert, dass sie nur eine lesende Sicht der Collection zurückliefert.
Änderungen der Collection können dann nur noch über add-und remove-Methoden der Klasse erfolgen.
Beschreiben Sie grob die Refactoring-Technik ‘Bedingten Ausdruck durch
Polymorphie ersetzen’
Eine Methode definiert in Abhängigkeit vom Typ eines Objekts unterschiedliches Verhalten.
Man verschiebt jeden Zweig der Entscheidung in eine überschreibende Methode einer Unterklasse.
Die Originalmethode wird abstrakt.
Beschreiben Sie grob die Refactoring-Technik ‘Feld nach oben verschieben’
Zwei Unterklassen haben das gleiche Feld. Das Feld wird in die Oberklasse verschoben.
Beschreiben Sie grob die Refactoring-Technik ‘Methode nach oben
verschieben’
Es gibt Methoden mit identischem Verhalten (insbesondere mit gleichen Feldern) in verschiedenen Unterklassen. Die Methoden werden in die Oberklasse verschoben.
Beschreiben Sie grob die Refactoring-Technik ‘Unterklasse extrahieren’
Eine Klasse weist Attribute und/oder Methoden auf, die nicht für alle Instanzen der Klasse von Bedeutung sind.
Eine neue Unterklasse für die Instanzen, die diese Attribute und/oder Methoden benötigen, wird erstellt.
Die betroffenen Attribute und/oder Methoden werden in die Unterklasse verschoben.
Beschreiben Sie grob die Refactoring-Technik ‘Oberklasse extrahieren’
Es gibt zwei Klassen mit gemeinsamen Attributen und/oder Methoden.
Eine Oberklasse wird erstellt, und die gemeinsamen Attribute und/oder Methoden werden in die Oberklasse verschoben.