Unified Modeling Language Einführung zu UML Was ist „UML“? Wann & wie setze ich UML ein? Was gibt es für Diagramme?
Historie der UML ab 1970 : Objektorientierte Programmierung ab 1990 : Methoden zur OO- Analyse und OO- Entwurf von Softwaresystemen 1995 : Rumbaugh, Booch, Jacobson („ drei Amigos“) arbeiten gemeinsam bei der Firma Rational 1996 : UML entsteht (großes Interesse und Feedback) 1997 : UML von der OMG (Object Management Group) als Standardmodellierungssprache angenommen
Was ist UML? UML = Sprache zur Beschreibung von Softwaresystemen Grundgedanke: Einheitliche Notation für alle Softwaresysteme! UML entstand aus mehreren bestehenden Notationen Verschiedene Diagrammtypen, die sich gegenseitig ergänzen können (sollen!) und verschiedene Systemaspekte hervorheben Bsp: Analogie Bauplan für Haus – Grundriss, Aussenansichten, Werkpläne für versch. Handwerker... 3
Strukturierung der UML- Konstrukte Einteilung nach verschiedenen Sichten Sicht = bestimmte Perspektive Fokussierung auf einen speziellen Sachverhalt: z. B. auf die Struktur = statische Sicht auf das Verhalten = dynamische Sicht auf das Modell = organisatorische Sicht
UML- Diagramme im Überblick statische Sicht Klassendiagramm Anwendungsfalldiagramm Komponentendiagramm Verteilungsdiagramm dynamische Sicht Sequenzdiagramm Kollaborationsdiagramm Zustandsdiagramm Aktivitätsdiagramm organisatorische Sicht Packagediagramm
UML für was? UML ist ein Werkzeug für die Systemanalyse und beim Design abstrakte Beschreibungssprache ermöglicht Kommunikation zwischen Entwicklern und Benutzern etabliertes Hilfsmittel bei OO-Analyse und –Design, sowie auch bei der Dokumentation Unterstützung von diversen Softwarewerkzeugen 6
UML – Diagrammtypen UML Klassendiagramme UML umfasst: Klassendiagramme sind nur ein Teil von UML UML ist mehr! UML umfasst: Use-Case-Diagramme Klassendiagramme Interaktionsdiagramme (Sequenz- und Kollaborationsdiagr.) Package-Diagramme Zustandsdiagramme Aktivitätsdiagramme Implementierungsdiagramme
Use-Case-Diagramme Beschreiben das Zusammenwirken von Personen [allg.: Aktoren] mit einem System Einsatz: Anforderungen, Festlegung, Übergabe Aktor System Interaktion Pfand-Maschine Technikerin Kunde Waage
Klassendiagramme Beschreiben statische Struktur der Objekte und ihre Beziehungen untereinander Ermittelung der Klassen ist nicht Sache der Klassendiagramme! anderer Hilfsmittel z.B.: - CRC Cards (Class, Responsability and Collaboration) - Use Cases Zentraler Bestandteil der UML aber nicht einziger!
Klassendiagramme Bsp. Name Klasse Attribute Operationen Vererbung Assoziation Kardinalität Pfandmaschine geld: int void zahle(int betrag) Flasche inhalt: float 0,1 Flaschen_Pfandmaschine anzFlaschen: int void nimm_Flasche() 0...*
Interaktionsdiagramme Beschreiben zeitliche Abläufe (Aufrufsequenzen) zwischen (bekannten) Objekten Dynamische Sicht im Gegensatz zu statischen Klassendiagrammen Zwei semantisch äquivalente Darstellungen: Einfach andere Darstellen, aber dieselbe Sicht Sequenzdiagramme - Verwendung bei wenigen Klassen - Zeitablauf klar ersichtlich Kollaborationsdiagramme - Verwendung bei wenigen Nachrichten - Zeitablauf weniger klar ersichtlich
Sequenzdiagramm Bsp. ZEIT Focus of Control Nachricht Objekt Bedingung Lebenslinie Pfandmaschine FlaschenMechanik nimmEineFlasche() [Genommen==TRUE] habeFlasche() ZEIT
Kollaborationsdiag. Bsp. Nachricht Objekt Sequenznummer Pfandmaschine 1: nimmEineFlasche() 2: [Genommen==TRUE] habeFlasche() FlaschenMechanik
Package-Diagramme Strukturierung der verschiedenen Darstellungen Zusammenfassung von Gruppen von Diagrammen oder Elementen Zusammenfassung: Strukturell oder Thematisch Besserer Gesamtüberblick Package Abhängigkeit Flaschen_Pfandmaschine Abrechnung Steuerung_Motorik
Zustandsdiagramme Beschreiben das Verhalten eines (Teil-)Systems Start Flaschen Aufnahme Flasche am Sensor Abgearbeitet Fehler bei Flaschenaufnahme Bereit Fehler trat auf Fehler / Problem Zustand Übergang behoben Abgeschaltet Abgeschaltet Ende
Kunde Pfandmaschine Technikerin Aktivitätsdiagramme Beschreiben nebenläufiges Verhalten Grundlagen: Zustandsdiagramme, Flussdiagramme & Petrinetze Kunde Pfandmaschine Technikerin Aktivität Synchronisationslinie Swimlane Transition Flasche hinstellen Maschine einschalten Flasche aufnehmen Geld auszahlen
Implementierungsdiagramme Beschreiben Aufteilung von logischen Komponenten auf physikalische Komponenten Einsatz: Aufzeigen von Unterschieden der logischen zur physikalischen Struktur Zwei Formen: Komponentendiagramme Deploymentdiagramme Kombinierbar! Pfandmaschine User Interface TCP/IP Steuerung
Zusammenfassung UML = Sprache zur Beschreibung von Softwaresystemen Verschiedene Diagrammtypen, die sich gegenseitig ergänzen können (sollen!) und verschiedene Systemaspekte hervorheben UML ist ein Werkzeug für die Systemanalyse und beim Design abstrakte Beschreibungssprache ermöglicht Kommunikation zwischen Entwicklern und Benutzern