Software Engineering SS 2009 Analyse und Entwurf Software Engineering SS 2009
Software Engineering SS 2009 Analyse und Entwurf Analyse Fachliche Beschreibung der Systemanforderungen Was soll das System machen, nicht: wie soll es umgesetzt werden Implementierungsaspekte ausgeklammert Es wird von „perfekter Technik“ ausgegangen Entwurf Erweiterung des OOA-Modells zu einem OOD-Modell Berücksichtigung von Effizienz- und Standardisierungsaspekten Erweiterung um systemnahe Klassen Schnittstellen Benutzeroberfläche Datenhaltung Verteilung OOD-Modell soll direkt implementierbar sein Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen Entwurfprozess Analyse Systementwurf Objektentwurf Modellierung als Entwurfstechnik statische Struktur dynamischer Ablauf Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen Grundlagen Objektorientierung: Software ist Sammlung diskreter Objekte, die Datenstruktur und Verhalten zusammenfassen Eigenschaften von Objekten Identität (jedes Objekt muss eindeutig identifizierbar sein) Klassifikation (Objekt als Instanz einer Klasse) Polymorphismus (Erscheinungsformen) Vererbung (Hierarchie) Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen Modellierung (Entwurfstechnik) Modell: Abstraktion eines Systems (Achtung! Grenzen beachten!) System: unterschiedliche Modelle für verschiedene Aspekte Modelle dienen dem Verständnis des Systems dem Test vor dem Bau der Verringerung der Komplexität Aspekte: vom Kunden zum Produkt vom Ganzen zum Teil vom Allgemeinen zum Speziellen vom Was zum Wie Werkzeug: UML Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen Unified Modelling Language (UML) grafische Modellierungssprache standardisiert durch Object Management Group (OMG) (z.Zt. V1.4) Darstellung in Diagrammen Diagrammarten: Anwendungsfalldiagramm (dynamisch) Paketdiagramm (statisch) Klassendiagramm (statisch) Interaktionsdiagramm (dynamisch) Zustandsdiagramm (dynamisch) Software Engineering SS 2009
Software Engineering SS 2009 Objektorientiertes Modellieren und Entwerfen - Phasen der Systemerstellung Analyse Eingabe Problembeschreibung konzeptuelle Übersicht Hintergrundwissen Ausgabe Anwendungsfalldiagramm Klassendiagramm Klassenbeschreibungen Zustandsdiagramm Prototyp der Benutzeroberfläche erläuternde Texte Software Engineering SS 2009
Software Engineering SS 2009 Objektorientiertes Modellieren und Entwerfen - Phasen der Systemerstellung Systementwurf Eingabe Machbarkeitsstudie Analysedokument Ausgabe Sollen Programmteile parallel ausführbar sein? Single- / Multi-User? Teilsysteme auf verschiedene Rechner verteilen? Echtzeitanforderungen? Interaktiver Betrieb oder Stapelbetrieb? Datenstrukturen im Hauptspeicher, in Dateien oder Datenbank? Systemarchitekturrelevante Qualitätsanforderungen? Software Engineering SS 2009
Software Engineering SS 2009 Objektorientiertes Modellieren und Entwerfen - Phasen der Systemerstellung Objektentwurf Anwendungskonzepte Computerkonzepte Eingabe Machbarkeitsstudie Analysedokumente Systementwurf Ausgabe vervollständigte Klassendefinition die Algorithmen der Methoden geeignete Containerklassen interne Klassen zur Implementierung Implementierungsart der Assoziationen Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Anwendungsfallanalyse Anwendungsfälle analysieren Anwendungsfalldiagramm erstellen Anwendungsfälle beschreiben Anwendungsfälle zu Paketen zusammenfassen Prototyp der Benutzeroberfläche erstellen Anwendungsfall = Geschäftsprozess Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Anwendungsfalldiagramm: beschreibt die Grenzen des zu realisierenden Systems; Darstellung des Systems mit den beteiligten Akteuren Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Ausdrucksmittel im Anwendungsfalldiagramm Systemgrenze mit Diagrammname Akteur Anwendungsfall Akteur wendet an Anwendungsfall verwendet Anwendungsfall Anwendungsfall erweitert Anwendungsfall Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Anwendungsfälle beschreiben Akteure Auslöser Ablauf Varianten Dialoge offene Punkte Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Anwendungsfälle zu Paketen zusammenfassen geringe Wechselwirkung zwischen Paketen starke Wechselwirkung in Paketen Kandidaten für Pakete Arbeitsbereiche Abteilungen Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Prototypen Explorative Prototypen: Unterstützung der Anforderungsanalyse. Klärung von Anforderungen hinsichtlich Funktionsabläufen, Benutzerschnittstellen, Qualitätsanforderungen wird nicht zu einem Produkt weiterentwickelt Beispiele für explorative Prototypen Dialogentwürfe Druckmuster Formularentwürfe Experimentelle Prototypen dienen zum Nachweis der Machbarkeit Unterstützung bei Lösungsstudien, System- und Detailentwurf eingesetzt Evolutionäre Prototypen werden in der Regel nicht verworfen, sondern sukzessive zum Produkt weiterentwickelt Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Benutzeroberfläche Fensterarten Anwendungsfenster Tochterfenster MDI-Client MDI-Tochterfenster Statusfenster Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Benutzeroberfläche Menüarten Hauptmenü Submenü Kontextmenü Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Interaktionselemente Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Interaktionselemente Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Interaktionselemente Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Gestaltung von Fenstern (Style Guides) (z.B. Microsoft MSDN) Software Engineering SS 2009
Objektorientiertes Modellieren und Entwerfen - Analyse Gestaltung von Fenstern (Style Guides) (z.B. Microsoft MSDN) Konsistente Darstellung Gruppierung (reduziert Suchzeit) Hervorhebung (max. 20%) Farbig, nicht bunt (max. 5 Farben) Fenster breiter als hoch Breite Fenster balanciert füllen symmetrische Anordnung (wenn möglich) Benutzer sequentiell durch Fenster führen gleich große Interaktionselemente verwenden Software Engineering SS 2009