Menu Close

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

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.

Index