230 likes | 428 Views
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML). Sandra Meißl 26.07.2001. Themenübersicht. Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte Modellierung mit UML Geschichte der Unified Modelling Language
E N D
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.2001
Themenübersicht • Objektorientierte Software-Entwicklung • Objektorientierte Analyse und Design • OOA • OOD • Objektorientierte Modellierung mit UML • Geschichte der Unified Modelling Language • Überblick • Anwendungsfalldiagramme • Strukturelle Modellierung mit Klassendiagrammen • Darstellung von Klassen und Objekten • Beziehungen zwischen Klassen • Vererbung • Beispiel • Zusammenfassung • Pakete • Dynamische Modellierung • Aktivitätsdiagramme • Sequenzdiagramme • Weitere Diagrammtypen • Werkzeuge • Literatur
Objektorientierte Software- Entwicklung Die Phasen des objektorientierten Software- Entwicklungsprozesses gliedern sich im wesentlichen in: • OO- Modellierung • OO- Analyse ("Soll- Modell") • OO- Design ("Entwurfs- Modell") • OO- Implementierung auf der Basis von: • OO- Programmiersprachen • OO- Datenbanksysteme • OO- Testen • OO-Wartung
Objektorientierte Analyse und Design • Entwicklung von objektorientierten Software-Systemen • Ist gekennzeichnet durch • dieselben Konzepte während ihrer einzelnen Phasen • Kein Strukturbruch zwischen den Phasen • dieselbe Notation in Analyse und Design • Dadurch wird folgendes erreicht • Durchgängigkeit • Nachvollziehbarkeit • Erweiterbarkeit • Wiederverwendbarkeit Wünsche des Auftraggebers Programme in einer OOP (z.B. Java) OOA-Modell OOD-Modell
Objektorientierte Analyse (OOA) • Betrachtet werden Objekte, die sich in der realen Welt befinden • Diese werden durch Modellbildung und geeignete Abstraktion in Objekte des Objektorientierten Modells überführt • Bestimmen des Umfangs • Bestimmen der zentralen Domänenbegriffe • Festlegen der Detailanforderungen • Untersuchen des Objektverhaltens • Ergebnistypen • OOA Modell • Prototyp der Benutzeroberfläche
Objektorientiertes Design (OOD) • Realisierung der in der Analyse spezifizierten Anwendung auf einer festgelegten Plattform unter den geforderten technischen Randbedingungen • Design der Architektur • Design des Systemverhaltens • Design der Klassen (Spezifikation aus Sicht der Realisierung) • Design der Assoziationen • Ergebnistypen • OOD Modell
Objektorientierte Modellierung mit UML (Unified Modelling Language) • UML: konkrete OO-Modellierungssprache für Analyse und Design • „Sprachfamilie“ mit mehreren Diagrammtechniken zur Darstellung von Struktur und Dynamik • Quasi Standard in der Objektmodellierung • grafische Notation
Geschichte der UML • 1994 Grady Booch und James Rumbaugh bei Rational Software mit dem Ziel einen Industriestandard für die Objektmodellierung zu entwickeln • 1995 Unified Method 0.8 als Vorgänger UML • 1995 Ivar Jacobson zu Rational Software • 1996 UML 0.91 • 1997 UML1.1 wird als Standard von der Object Management Group (OMG) verabschiedet
Überblick über UML • 8 Teilsprachen mit diagrammtechnischen Notationen zur objektorientierten Modellierung • Modellierung von strukturellen Aspekten und Dynamik • Klassendiagramme • Anwendungsfalldiagramme • Sequenzdiagramme • Kollaborationsdiagramme • Zustandsübergangsdiagramme • Aktivitätsdiagramme • Komponentendiagramme • Verteilungsdiagramme
Anwendungsfalldiagramme (Use Case Diagrams) • Use Cases • beschreiben die für Nutzer sichtbare Funktionalität des Gesamtsystems • strukturieren das Gesamtverhalten des Systems • Anwendungsfalldiagramm • Beziehung zwischen Akteuren und Anwendungsfällen
Strukturelle Modellierung mit Klassendiagrammen Klassendiagramme • Darstellung struktureller Aspekte • enthalten • Definition der Eigenschaften und des Verhaltens von Klassen • Beziehungen zwischen den Klassen • Abstraktionskonzepte: Generalisierung, Aggregation, ... • Erstellung während der Analyse • Verfeinerung in der Designphase
Darstellung von Klassen und Objekten „Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte“ (Oesterreich 1998) Klassenattribute und Klassenoperationen
Darstellung von Beziehungen zwischen Klassen Assoziation • Benutzt-Beziehungen zwischen gleichrangigen Klassen Aggregation • Teile/Ganzes-Beziehung • Zusammensetzung eines Objekts aus Einzelteilen Komposition • Strenge Form der Aggregation • Teile vom Ganzen sind existenzabhängig
Vererbung • Oberbegriff-Beziehung (Ist-ein-Beziehung) • Eine Subklasse kann über die Attribute und Operationen einer Superklasse verfügen • Generalisierung - Spezialisierung
Zusammenfassung struktureller Modellierung mit Klassendiagrammen • Grafische Repräsentation des strukturellen Modells durch Klassendiagramme • Erstellung in folgenden Schritten • Objekte und Klassen identifizieren • Attribute identifizieren • Assoziationen zwischen Klassen identifizieren und spezifizieren (Aggregation etc.) • Modell vereinfachen durch Generalisierung / Spezialisierung
Pakete • Aufteilung großer Modelle in verwaltbare Teile • Darstellung des Gesamtbilds mit reduzierten Details • direkte Unterstützung von Paketen z.B. in Java Nebenbemerkung: Darstellung „elementarer Klassen“
Dynamische Modellierung • Beschreibung von Kontrollfluß, Interaktion und Ablauf von Operationen • Schritte zur Konstruktion dynamischer Modelle • Use Cases mit Hilfe von Aktivitätsdiagrammen verfeinern • Szenarien typischer Interaktionssequenzen „durchspielen“ • Ereignisse zwischen Objekten identifizieren... • ... und ein Sequenzdiagramm für jedes Szenario entwerfen
Aktivitätsdiagramme Modellierung von Workflows (objektorientierte Ablaufpläne, ausschließliche Darstellung von Aktivitäten) • Konzepte • Aktivitäten • Verzweigungen (branches) • Synchronisation (fork & join) • Partitionierung entlang Verantwortlichkeit (swimlanes) Beispiel: Use Case „Auftrag bearbeiten“
Sequenzdiagramme • (Zeitbezogene) Darstellung von beispielhaften Interaktionssequenzen • Konzepte • Zeitlinie (lifeline) • Interaktion: Methodenaufruf / -antwort Beispiel: Auftrag bearbeiten Sz1, „alter“ Kunde bestellt Lagerartikel
Weitere Diagrammtypen • Kollaborationsdiagramm • ähnlich Sequenzdiagramm • Zusammenarbeit der Objekte steht im Vordergrund • Zustands(übergangs)diagramm • Zustände, die ein Objekt einnehmen kann • Stimuli für Zustandsänderungen • Komponentendiagramm • Beziehungen zwischen den Komponenten • Schnittstellen der Komponenten • Verteilungsdiagramm • Hardware Architektur • Verteilung der Softwarekomponenten auf der Hardware
Werkzeuge • Dienen der automatischen Unterstützung von Methoden, Verfahren, Konzepten und Notation • Codegenerierung • C++ • Java • ... • UML Case Tools • Rose • Visio • Together • ...