Start | Sitemap | RSS | print | Search: 
SOPHIST > Architektur/Design > Objektorientiertes Design > FAQ zum Bereich OOD

Was ist OOD?

Das OOD zeigt, WIE die funktionalen und nichtfunktionalen Anforderungen an das System umgesetzt werden sollen und schafft den Rahmen für die Programmierung. Sie setzt die Ergebnisse der Analyse um, in der beschrieben wird, WAS ein System leisten soll. Ein vollständiges OOD-Modell umfasst mehrere Sichten, die das System unter verschiedenen Aspekten (z. B.: welche Daten, Prozesse, Schichten) beleuchten. Diese Sichten auf das System werden mit verschiedenen Abstraktionsebenen von sehr grob (Architektur) bis sehr fein (Feindesign) beschrieben.

 

Welche anderen Begriffe gehören zu dem Begriffsfeld?

  • OOSE (object-oriented software engineering)
  • Objektorientierte Analyse
  • Objektorientierter Entwurf
  • Objektorientierte Architekturen
  • Objektorientierter Test
  • UML
  • Klassendiagramm
  • Sequenzdiagramm
  • Komponentendiagramm
  • Zustandsdiagramm       

Gibt es evtl. Definitionen von OOD?

Architektur: “Die Spezifikation der grundlegenden Struktur eines Systems“
Design: „Alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses, mit denen ein Modell logisch und physisch strukturiert wird und die dazu dienen zu beschreiben, wie ein System die in der Analyse beschriebenen Anforderungen erfüllt.“

Helmut Balzert definiert OOD folgendermaßen:
„OOD erweitert, modifiziert und optimiert ein OOA-Modell unter technischen Gesichtspunkten, sodass anschließend eine Implementierung des OOD-Modells möglich ist. OOD besteht aus einem Architekturentwurf und einem Implementierungsentwurf.“
            

Wozu brauche ich OOD?

Jedes System hat eine Architektur und ein Design. OOD sollte allerdings bewusst durchgeführt werden, um für das System eine Struktur zu schaffen, welche die Umsetzung von nicht-funktionalen Anforderungen (z. B. Anforderungen an die Performance, Wartbarkeit, Modifizierbarkeit) ermöglicht. Dazu werden verschiedene Techniken eingesetzt (z. B. Benutzung von Designpatterns). Die nicht-funktionalen Anforderungen werden dazu priorisiert und Entscheidungen für Lösungen aus einer Reihe von Alternativen getroffen.

Bei inkrementeller Entwicklung muss das System erweiterbar sein, dazu wird ein gutes Design benötigt. Im Design werden Komponenten des Systems aufgeteilt und Schnittstellen dafür festgelegt.   
               

Wann und wie setze ich OOD ein?        

OOD beginnt, wenn die wichtigsten funktionalen Anforderungen und die wesentlichen nicht-funktionalen Anforderungen bekannt sind. Zu diesem Zeitpunkt wird die Architektur als Arbeitsgrundlage erstellt. Im weiteren Design werden die detaillierten Anforderungen in ein lauffähiges System umgesetzt, das die Architektur als Grundlage nutzt. Bei einer iterativen, inkrementellen Vorgehensweise wird OOD eingesetzt, um das System in erweiterbare Komponenten aufzuteilen und Schnittstellen für diese Komponenten festzulegen.
                

Was kann passieren, wenn ich OOD nicht einsetzte?

Wenn OOD nicht eingesetzt wird, kann es passieren, dass die nicht funktionalen Anforderungen ungenügend berücksichtigt werden und das System diese letztendlich nicht erfüllt.       
                        

Brauche ich unbedingt ein Tool dazu?

OOD-Modelle lassen sich theoretisch mit Papier und Bleistift modellieren. Ein Tool, das Sie bei der Erstellung eines Modells unterstützt, bietet ihnen aber erhebliche Vorteile. Bei mittleren bis großen Projekten mit mehreren Designern ist ein Tool zwingend erforderlich. Durch Sichtenbildung und Konsistenzprüfung lässt sich die Modellkomplexität reduzieren. Tools werden üblicherweise auch eingesetzt, um aus den im Design erstellten Modellen ein Code-Gerüst zu erzeugen, das „nur“ noch um Algorithmen ergänzt werden muss.
                

Was kostet OOD, was nutzt es?

Wenn OOD bewusst durchgeführt wird, wird etwas Zeit benötigt, um eine günstige Gesamtstruktur zu erstellen. Das Risiko, das System nach einigen Erweiterungen nicht mehr beherrschen zu können, wird dadurch allerdings deutlich reduziert, da ein Design zum Beispiel die Aspekte Erweiterbarkeit und Robustheit behandelt.
                

Wer setzt OOD typischerweise ein?

Es ist heute üblich, in mittleren bis großen Projekten die Architektur in einem eigenen Team zu erstellen. Das Architektur-Team hat außerdem die Aufgabe, das Know-how zum weiteren Design an die Software-Entwickler weiter zu geben.        
                    

Welche Ausbildung brauche ich, um es einzusetzen?

Um eine System-Architektur zu erstellen, wird Erfahrung im Bereich der Architekturen benötigt, um Risiken erkennen und bewährte Lösungen auswählen zu können. Ein Architekt sollte einen guten Überblick über aktuelle Technologien mit ihren Vor- und Nachteilen besitzen. Da er zudem als Mittler im Projekt dient, muss er ausgeprägte Soft-Skills besitzen. Für das weitere Design des Systems ist Erfahrung im Bereich der objektorientierten Methoden mit ihrem Möglichkeiten sowie Vor- und Nachteilen wertvoll.

Eine mehrtägige Schulung kann einen praxisbezogenen Einstieg in die Thematik erleichtern.    
                        

Welche Webseiten/Bücher liefern mit mehr Infos dazu?

Larman C.: Applying UML and Patterns, Prentice Hall PTR 2001
Starke G.: Effektive Software-Architekturen, Hanser Verlag 2002
Balzert H.: Lehrbuch der Objektmodellierung, Spektrum Akademischer Verlag 1999
Rupp C., Hruschka, P.: Agile Softwareentwicklung - für Embedded Real-Time Systems mit der UML, Hanser Verlag 2002
        

Objektorientiertes Design

 

 

 

 

 

 

 

 

 

 

 

 

Funktionale und nichtfunktionale Anforderungen