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
Systemarchitektur definieren: Erstellung eines
detaillierten Plans, der die Struktur des Systems, die Beziehungen
zwischen den Teilen und die Verteilung der Verantwortlichkeiten
beschreibt.
Modularität sicherstellen: Förderung der
Wiederverwendbarkeit und Wartbarkeit durch die Definition klar
abgegrenzter, unabhängiger Module oder Klassen.
Flexibilität und Erweiterbarkeit gewährleisten:
Design des Systems auf eine Weise, die zukünftige Änderungen oder
Erweiterungen mit minimalen Auswirkungen auf den bestehenden Code
ermöglicht.
Leistung optimieren: Designentscheidungen treffen,
die eine angemessene Balance zwischen Leistung, Ressourcennutzung und
Wartbarkeit bieten.
9.2 Prozess des Objektorientierten
Designs
Klassen und Objekte definieren: Detaillierte
Spezifikation der Klassen und Objekte, einschließlich ihrer Attribute
und Methoden, basierend auf den Ergebnissen der OOA.
Vererbungshierarchien erstellen: Organisation der
Klassen in Hierarchien, um gemeinsame Funktionalitäten zu erben und
Code-Duplikation zu minimieren.
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.
Beziehungen und Assoziationen festlegen: Bestimmung
der Beziehungen zwischen Objekten, einschließlich Assoziationen,
Aggregationen und Kompositionen.
Designmuster anwenden: Einsatz bewährter
Designmuster, um häufig auftretende Probleme zu lösen und die
Designqualität zu verbessern.
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:
Reduziert Komplexität: Durch die Zerlegung des
Systems in kleinere, handhabbare Teile.
Erleichtert Wartung und Erweiterung: Durch klare
Schnittstellen und die Verwendung von Vererbung und Polymorphismus.
Fördert Wiederverwendung: Durch die Identifikation
und Definition wiederverwendbarer Komponenten.
Verbessert die Systemqualität: Durch die Anwendung
von Designprinzipien und -mustern, die Zuverlässigkeit, Leistung und
Benutzerfreundlichkeit optimieren.
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.