Unified Modeling Language Repetition / Einführung zu UML Was ist „UML“? Wann & wie setze ich UML ein? Was gibt es für Diagramme?
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... 2
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 3
UML – Diagrammtypen UML Klassendiagramme UML umfasst: Klassendiagramme sind nur ein Teil von UML UML ist mehr! UML umfasst: Use-Case-Diagramme Klassendiagramme Interaktionsdiagramme 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 (Schwerpunkt heute!) - 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 Darstellung 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