9 Wartung Flashcards

1
Q

Nennen Sie die 4 Wartungsaufgaben.

A

corrective, preventive, perfective and adaptive maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist Refactoring? Wann sollte man es durchführen und wann nicht?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist der Unterschied zwischen Refactoring und Performance-Optimierung?

A

Refactoring hat das Ziel SW verständlicher zu machen. Performance-Optimierung soll die Leistung der SW verbessern.
Änderungen zwecks Performance-Optimierung sind kein Refactoring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Beschreiben Sie grob die Refactoring-Technik ‘Methode extrahieren’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Beschreiben Sie grob die Refactoring-Technik ‘Methode integrieren’

A

Eine Methode wird aufgelöst und der Code in ihrem ursprünglichem Rumpf nachträglich in den Rumpf des Aufrufers untergebracht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Beschreiben Sie grob die Refactoring-Technik ‘Methode durch Methodenobjekt ersetzen’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Beschreiben Sie grob die Refactoring-Technik ‘Klasse extrahieren’

A

Eine Klasse wird aufgeteilt, indem eine neue Klasse erstellt wird.

Bestimmte Attribute und Methoden der alten Klasse werden in die neue Klasse verschoben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Beschreiben Sie grob die Refactoring-Technik ‘Klasse integrieren’

A

Alle Attribute und Methoden einer Klasse werden in eine andere Klasse verschoben.
Die ursprüngliche Klasse wird gelöscht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Beschreiben Sie grob die Refactoring-Technik ‘Delegation verbergen’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Beschreiben Sie grob die Refactoring-Technik ‘Collection kapseln’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Beschreiben Sie grob die Refactoring-Technik ‘Bedingten Ausdruck durch
Polymorphie ersetzen’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Beschreiben Sie grob die Refactoring-Technik ‘Feld nach oben verschieben’

A

Zwei Unterklassen haben das gleiche Feld. Das Feld wird in die Oberklasse verschoben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Beschreiben Sie grob die Refactoring-Technik ‘Methode nach oben
verschieben’

A

Es gibt Methoden mit identischem Verhalten (insbesondere mit gleichen Feldern) in verschiedenen Unterklassen. Die Methoden werden in die Oberklasse verschoben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Beschreiben Sie grob die Refactoring-Technik ‘Unterklasse extrahieren’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Beschreiben Sie grob die Refactoring-Technik ‘Oberklasse extrahieren’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Beschreiben Sie grob die Refactoring-Technik ‘Vererbungsstruktur entzerren’

A

Vorher: Eine mehrstufige Vererbungshierarchie wird dazu verwendet, um zu den möglichen Kombinationen mehrerer Merkmale entsprechende Unterklassen zu definieren. Dadurch entsteht Coderedundanz.

Nachher: Mehrere getrennte Vererbungshierarchien werden erstellt und Assoziationen werden verwendet, um die Klassen einer Vererbungshierarchie mit denen einer anderen in Beziehung zu setzen.

17
Q

Wann können Indirektionen beim Refactoring entstehen?

A

Neue Indirektionen entstehen bei folgenden Refactoring-Techniken:

  • Methode extrahieren
  • Methode durch Methodenobjekt ersetzen
  • Klasse extrahieren
  • Collection kapseln
  • Bedingten Ausdruck durch Polymorphie ersetzen
  • Unterklasse extrahieren
  • Oberklasse extrahieren