9 OOD

Objektorientiertes Design (OOD) ist der Prozess, bei dem die während der objektorientierten Analyse (OOA) gesammelten Anforderungen und Spezifikationen in ein funktionierendes System umgesetzt werden. Dabei werden die identifizierten Objekte, Klassen, und deren Beziehungen aus der Analysephase weiterentwickelt, um die Architektur, Komponenten und Schnittstellen des Systems zu definieren. OOD nutzt die Grundprinzipien der Objektorientierung wie Vererbung, Polymorphismus, Kapselung und Abstraktion, um ein modulares, flexibles und wiederverwendbares Design zu erstellen.

9.1 Ziele des Objektorientierten Designs

9.2 Prozess des Objektorientierten Designs

  1. Klassen und Objekte definieren: Detaillierte Spezifikation der Klassen und Objekte, einschließlich ihrer Attribute und Methoden, basierend auf den Ergebnissen der OOA.
  2. Vererbungshierarchien erstellen: Organisation der Klassen in Hierarchien, um gemeinsame Funktionalitäten zu erben und Code-Duplikation zu minimieren.
  3. Interfaces und Abstrakte Klassen definieren: Spezifikation von Interfaces und abstrakten Klassen, um Verträge für das Verhalten von Objekten festzulegen und Polymorphismus zu ermöglichen.
  4. Beziehungen und Assoziationen festlegen: Bestimmung der Beziehungen zwischen Objekten, einschließlich Assoziationen, Aggregationen und Kompositionen.
  5. Designmuster anwenden: Einsatz bewährter Designmuster, um häufig auftretende Probleme zu lösen und die Designqualität zu verbessern.
  6. UML-Diagramme zur Visualisierung verwenden: Erstellung von UML-Diagrammen wie Klassendiagrammen, Sequenzdiagrammen und Zustandsdiagrammen, um das Design zu dokumentieren und zu kommunizieren.

9.3 Bedeutung des Objektorientierten Designs

OOD ist entscheidend für die Entwicklung von Software, die nicht nur die aktuellen Anforderungen erfüllt, sondern auch anpassungsfähig, erweiterbar und wartbar ist. Ein gut durchdachtes Design:

Das objektorientierte Design bildet somit eine Brücke zwischen den Anforderungen, die in der Analysephase ermittelt wurden, und der tatsächlichen Implementierung des Systems, indem es einen klaren, strukturierten und umsetzbaren Plan für die Systementwicklung bietet.