Guten Entwurf herstellen und erhalten VL 10-12 Flashcards
Was ist Kohäsion?
Den Grad der Aufgaben, die eine Softwareeinheit zu erfüllen hat.
Was ist eine hohe Kohäsion?
Wenn eine Einheit für genau eine logische Aufgabe zuständig ist, herrscht eine hohe Kohäsion.
->Ziel: hohe Kohäsion
Was ist Kopplung?
Der Grad der Abhängigkeiten zwischen den Einheiten eines Softwaresystems.
-> Ziel: lose Kopplung
Was ist explizite Kopplung?
Eine explizite Kopplng ist formal nachweisbar. Z.B. Klient grieft auf öffentliche Exemplarvariable zu.
Was ist implizite Kopplung?
Implizite Kopplungen sind nicht formal nachweisbar. Z.B. implementiert ein Entwickler sein Wissen über die Interna des Dienstleisters in eine Klientenklasse hinein.
Was ist ein Entwurf nach Zustöndigkeiten?
Eine Entwurfsphilosophie. Jedes Objekt ist für eine klar definierte Aufgabe zuständig. Objekte sind verantwortliche Mitglieder einer Objekt Gemeinschaft
Was ist Law of Demeter?
Eine Methode m eines Objekts o sollte ausschließlich Methoden von folgenden Objekten aufrufen können:
- o selbst
- Parameter von m
- Objekten, die m erzeugt
- Exemplarvariablen von o
Was sind CRC-Karten?
Class-Responsibilty-Collaboration
Responsibilty: von der Klasse erbrachte Dienstleistungen
Collaboration: andere Klassen, an die Teile der Dienstleistung delegiert wird
Was ist ein Wert?
- abstrakt(immateriell)
- zeitlos(werden nicht erzeugt)
- unveränderlich
- zustandslos
Was ist ein Objekt?
- zustandsbehaftet(innerer Zustand)
- erzeugbar und zerstörbar(Lebensdauer)
- potenziell veränderbar(Merkmale änderbar)
Wie sind Werttypen in Programmiersprachen definiert?
Sie haben eine unveränderliche Elementmenge. Bieten anstatt Konstruktoren, Selektoren an.
Was ist der Typesafe Enum Pattern
Beschreibt, wie Aufzählungen in Java modelliert werden können.
- public static final für jede Konstante der Aufzählung
- private Konstruktor
Was ist das Risiko bei Änderungen von Software?
- schlechte Verständlichkeit und Wartbarkeit
- neue Fehler
- keine Anpassung der Struktur der Software
- unvollständige Änderungen
Was sind “Bad Smells” im Code?
- Bad Smells sind Mängel der Wartbarkeit
- bei schlechtem Code ist der Aufwand für Änderungen hoch
- z.B. lange Methoden, Code-Duplikate, geringe Kohäsion
Was sind die Auswirkungen bei Code-Duplikate?
- Copy Paste an mehreren Stellen des Systems
- > Änderungen müssen an allen Codes vollführt werden, fehleranfällig