Objektorientierte Analyse und Design (Vorlesung 14)

Zur Evaluation

  • Aufzeichnungen von OOAD-Vorlesungen gibt es
    • Prof. Hahn hat im WS11/12 aufgezeichnet
    • Aufzeichnungen befinden sich auch seine Homepage (Link auch auf der Seite von Prof. Grieser)

Zur Klausur

  • Es darf ein doppelseitig, handgeschriebenes A4 Blatt benutzt werden
  • Ansonsten werden nur Stifte benötigt

Wann ist ein System gut?

1. Grundprinzip: Trennung von Zuständigkeiten

  • Unterteilen des Systems, sodass jeder Teil nur eine Aufgabe hat

2. Grundprinzip: Minimierung von Abhängigkeiten

  • Zusammenfassen von stark zusammenhängenden Teilen
  • so wenige Aufrufe und Assoziationen wie möglich verwenden

3.Grundprinzip: Information Hiding / Geiheimnisprinzip

  • Internes Wissen eines Systemteils wird gekapselt, sodass es keinem anderen Teil bekannt ist.
    • Abläufe, Daten, Strukturen
    • Der Systemteil muss nutzbar sein, ohne etwas über seine Realisierung zu verraten
    • Internes darf nicht von außen einsehbar sein
  • Implementierung
    • „getter„/“setter“
      • Attribute und Methoden als „private“ deklarieren
  • zusätzlicher Vorteil:
    • Trennung von Zuständigkeiten und Minimierung von Abhängigkeiten werden unterstützt / erleichtert
    • fördert Wartbarkeit, Änderbarkeit und Testbarkeit

4. Grundprinzip: Homogenität

  • Es gibt Komponenten, die sehr Komplex sind uns Komponenten die sehr einfach zu realisieren sind. → Unterschiedliche hoher Arbeitsaufwand → inhomogen
  • Löse ähnliche Probleme mit ähnlichen Lösungen
    • bereits bekannte Lösungen wiederverwenden, wenn möglich.
    • Systemteile innerhalb einer Strukturierungsebene so entwerfen, dass sie etwas gleich groß und komplex sind.

5. Grundprinzip: Redundanzfreiheit

  • System so entwerfen, dass jeder Teil im System nur an einer Stelle umgesetzt wird.
    • Herausziehen von mehrfach verwendeten Teilen
      • Verfügbar machen dieser Teile für Andere
    • Finden einer sinnvollen „Heimat“ für den Systemteil
  • fördert auch Trennung von Zuständigkeiten
  • verringert die Aufwendigkeit von Änderungen / Korrekturen

→ Ein Entwurf ist gelungen („gut“), wenn er die 5 Grundprinzipien erfüllt

Wie erreiche ich diese Ziele?

Ein Beispiel:

  • Ein Softwaresystem, dass Kunden, Lieferanten und Mitarbeiter verwalten soll
  • Problem: Änderungen sind schwierig umsetzbar
    • z.B. Beförderung eines Arbeiters zum Manager

Eine ganz andere Lösung

  • Nun kann eine Person mehrere Rollen einnehmen
  • Beförderungen und Ähnliches sind nun kein Problem mehr
  • Es können einfach neue Rollen hinzugefügt werden
  • „Rolle“ wird nicht als Attribut von „Person“ dargestellt
    • Zuständigkeiten sind getrennt
    • Bei Änderung der Rolle einer Person kann die Person „unverändert“ bleiben

Regel 1: Sparsames Einsetzen von Vererbung

  • Viele Vererbungen lassen sich mit Assoziationen umgehen
  • Vererbung nur bei echter „ist ein“ Beziehung verwenden
  • Wenn man Vererbungen verwendet, dann möglichst nur Einfachvererbungen
  • Vererbungen nicht zu tief verschachteln
Maximilian
Maximilian

Herzlich willkommen! Ich bin Max, ein Informatiker mit über 15 Jahren Berufserfahrung. Hier teile ich meine Leidenschaften, Erlebnisse und Perspektiven. Ich lade dich ein, gemeinsam mit mir auf eine Entdeckungsreise zu gehen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.