1.04k likes | 1.37k Views
Objektorientierte Modellierung mit UML 2. Nichtrelationale Datenbanken. Was ist UML ?. UML. „ U nified (vereinheitlichte) M odeling L anguage“ auf objektorientierten Konzepten basierende grafische Modellierungssprache
E N D
Objektorientierte Modellierung mit UML2 Nichtrelationale Datenbanken
Objektorientierte Modellierung mit UML2 Was ist UML ? UML • „Unified (vereinheitlichte) Modeling Language“ • auf objektorientierten Konzepten basierende grafische Modellierungssprache • dient zur Modellierung bestimmter Realitätsausschnitte und ermöglicht das spezifizieren, konstruieren, visualisieren und dokumentieren eines Softwaresystems • grafische Repräsentation der Modelle in Form von Diagrammen
Objektorientierte Modellierung mit UML2 Prinzip cdA cdA cdA Modell rolle1 rolle1 rolle1 rolle2 rolle2 rolle2 rolle2 rolle2 rolle2 Diagramme Sicht Sicht Diagramme als grafische Repräsentation der Modelle als abstrakte Sicht auf die Realität Realitäts- ausschnitt
Objektorientierte Modellierung mit UML2 Diagramme Diagramme
Struktur-modellierung Statische Aspekte
Objektorientierte Modellierung mit UML2 Diagrammarten Diagramme
Objektorientierte Modellierung mit UML2 Namensfeld Attributliste Operationsliste Klasse Basisnotation von Klassen Klassendiagramme Attribut … Operation() …
Objektorientierte Modellierung mit UML2 Klassenname Stereotype/ Schlüsselwörter Eigenschafts-angaben {abstract} (=true) «Stammdaten» Mitarbeiter {abstract} Klasse Klassendiagramme
Objektorientierte Modellierung mit UML2 Attribute beschreiben Eigenschaften Instanzattribut (=Instanzvariable) in Standardschrift Klassenattribut (= Klassenvariable) unterstrichen Mitarbeiter Attribut Klassendiagramme -personalnr -name -gehalt -alter -/hyperlink:URL[0..1]
Objektorientierte Modellierung mit UML2 evtl. Abschnittsname (A-Name) bsw. attributes zeilenweise evtl. in Gruppen Sichtbarkeitsangabe abgeleitete Attribute„/“ Attribute nehmen einen Wert an (Daten) Multiplizitätsangabe = Anzahl Werte Attributtyp nicht festgelegt Eigenschaftsliste { } Attribut Klassendiagramme Mitarbeiter -personalnr -name -gehalt -alter -/hyperlink:URL[0..1] Sichtbarkeit: öffentlich (public/+) paket (package/~) geschützt (protcted/#) privat (private/-)
Objektorientierte Modellierung mit UML2 = ausführbare Tätigkeit evtl. Abschnittsname (A-Name)bsw.operations Parameterliste Sichtbarkeit Multiplizität Eigenschaftsliste { } Art eines Parameters (in, out, inout, return) = Datanflussrichtung Notiz Mitarbeiter Operation Klassendiagramme -personalnr -name -gehalt -/alter -hyperlink: URL[0..1] +einstellen() +erhöheGehalt() +druckeAusweis() +typ()
Objektorientierte Modellierung mit UML2 Aktive Klassen Klassendiagramme • Klassen, für die ein eigenes Verhalten definiert ist, z.B. mit Zustands- oder Aktivitätsdiagramm • Instanzen weisen Kontrollfluss auf • Reaktionen auf Ereignisse (Operationsaufrufe) • Notation: {active}, vertikal doppelter Rahmen Klasse {active} Klasse =
Objektorientierte Modellierung mit UML2 Geschachtelte Klassen Klassendiagramme • Gehören zum Namensraum der Klasse, in der sie deklariert sind Äußere Klasse «nestedClassifier» Geschachtelte Klasse
Objektorientierte Modellierung mit UML2 Objekt Klassendiagramme • Instanzen von Klassen als Objekt bezeichnet • = Ausprägungen der von der Klasse definierten Struktur (Attribute) und weisen definierte Verhalten (Operationen) auf • Notation: dem Klassennamen kann Objektname vorangestellt werden und beides unterstrichen m1:Mitarbeiter
Objektorientierte Modellierung mit UML2 Assoziation * 2 Klassendiagramme • Verbindungen zwischen Objekten einer Klasse • Darstellung als Verbindungslinie (Kanten) zwischen Klassen/Objekten • Assoziationsnamen, Leserichtung • Rolle (Bedeutung der Klasse in der Assoziation) - Rollenname • Sichtbarkeit, Multiplizität, Ordnung Termin Mitarbeiter /nimmtTeilAn Datum Name + teilnehmer {ordered}
Objektorientierte Modellierung mit UML2 Assoziation Klassendiagramme • Teilmengen von Assoziationen {subsets <role-name>} • Vereinigung {union} Termin Mitarbeiter * * /nimmtTeilAn Datum Name / teilnehmer {ordered} {union} * * * * geladeneTn {subsets teilnehmer} eingeladeneTn {subsets teilnehmer}
Objektorientierte Modellierung mit UML2 Assoziation Klassendiagramme • Navigierbare Assoziationsenden „“ • Nicht navigierbares A.ende „x“ • Navigierbare Assoziation als Attribut * 0..1 Termin HypertextDokument X zusatzInfo Termin HypertextDokument zusatzInfo: HypertextDokument [0..1]
Objektorientierte Modellierung mit UML2 Qualifizierte Assoziation Klassendiagramme • qualifiziertes Attribut zur Charakterisierung der Assoziation • dienen auch zur Reduzierung der Multiplizität 1..* angestelltBei * Person Unternehmen angestellter abteilung
Objektorientierte Modellierung mit UML2 Assoziationsklasse Teilnahme warnZeit: DatumZeit Klassendiagramme • eigenes Klassensymbol • durch gestrichelte Linie mit Assoziationskante verbunden • Klassenname = Assoziationsname Termin Mitarbeiter * * Datum Name {ordered} teilnehmer
Objektorientierte Modellierung mit UML2 n-äre Assoziation Klassendiagramme • mehrstellige Assoziation • durch Raute dargestellt • mit allen Klassen durch Kante verbunden • evtl. mit zugeordneter Assoziationsklasse Person Kalender Datum Name * Berechtigter Bewilliger * Berechtigung Termintyp * bezeichnung erlaubt: Recht
Objektorientierte Modellierung mit UML2 Aggregation/Komposition Klassendiagramme • Spezialfälle • beschreiben eine „Teile-Ganzes-Beziehung“(part-of-relationship) • asym. Assoziation zw. nicht gleichwertigen Partnern • Komposition = „strengere“ Form der Aggregation • Multiplizität max. 1 • wird das Ganze gelöscht, werden alle Teile gelöscht Buch Verzeichnis Aggregat- klasse Titel Erscheinungsjahr Name Erstellung * 1 Aggregation Komposition * * Kapitel Datei Teil- klasse Autor AnzahlSeiten Name Erstellung letzteÄnderung
Objektorientierte Modellierung mit UML2 Generalisierung(Vererbung) Klassendiagramme • Beziehung zwischen einer allgemeinen Basis- oder Superklasse und einer spezialisierteren Unter- oder Subklasse • fasst gemeinsame Eigenschaften und Verhalten zusammen • Klassenhierarchiebildung Vollzeit Angestellter Teilzeit Manager Programmierer Sekretärin
Objektorientierte Modellierung mit UML2 Generalisierung(Vererbung) Klassendiagramme • Diskriminatoren = eine Art „virtuelles“ Attribut - Kriterium der Vererbungsstruktur • Zusammengefasste Generalisierungen = Generalisierungsmenge • Einschränkungen { } Arbeitszeit Vollzeit Angestellter {complete} Teilzeit Tätigkeit Manager Programmierer Sekretärin
Objektorientierte Modellierung mit UML2 Generalisierung – weitere Begriffe Klassendiagramme • Objekt ist „direkte Instanz“ der Klasse • Jede „direkte Instanz“ einer Klasse ist „indirekte Instanz“ jeder Superklasse • Mehrfachvererbung: eine Klasse besitzt mehrere Oberklassen • Mehrfachklassifikation: Objekt kann direkte Instanz mehrer Klassen sein • Klassifikationstyp: Typ eines Diskriminators - wird als Klasse dargestellt, die mit Superklasse in Generalisierungsmenge durch Assoziation verbunden ist pt Klasse 1 a.pt Klasse 2 Klasse 3
Objektorientierte Modellierung mit UML2 Redefinition Klassendiagramme • durch Eigenschaft {redefines <feature>} notiert • Überschreiben des Verhaltens der Oberklasse • muss explizit angegeben werden Eintrag 1 0..1 B_Eintrag typ: Eintragstyp X daten Termin 1 B_Termin typ = termin {redefines typ} X terminDaten {redefines daten}
Objektorientierte Modellierung mit UML2 Objektdiagramme Objektdiagramme • formaler Teil der Klassendiagramme • von Klassen können beliebig viele Objekte als Instanzen gebildet werden • ein Objekt hat einen Zustand, ein Verhalten und eine unveränderliche Identität • können den Attributen Werte zuordnen Objektbezeichner Klasse des Objekts Waisenobjekt m1:Mitarbeiter :Mitarbeiter m1 personalnr = 1234 name = Bernd Meier anonymes Objekt
Objektorientierte Modellierung mit UML2 Links Objektdiagramme • Instanzen einer Assoziation = Links (Kanten) • nicht zu verwechseln mit Objekten der Laufzeitumgebung • modellierte Instanzen = Instanzspezifikationen t1:Termin m1:Mitarbeiter m2:Mitarbeiter
Objektorientierte Modellierung mit UML2 Paketdiagramm Paketname Paketname A B Termin Benutzer Paketdiagramme • Zusammenfassung von UML-Modellelementen (meist Klassen) • Gruppierung und Strukturierung des Gesamtsystems / Systemteilen • 3 Notationsvarianten Paketname
Objektorientierte Modellierung mit UML2 Namensraum Paketdiagramme • 1 Element kann zu max. 1 Paket gehören • Paket definiert Namenraum • Qualifizierter Name eines Elements • Referenzieren eines Elements Benutzerschnittstelle Terminverwaltung B_Termin Terminverwaltung::Termin Termin B_Kalender Kalender termine: B_Termin[*] benutzer: Benutzer Benutzer
Objektorientierte Modellierung mit UML2 Sichtbarkeit Paketdiagramme • Elementen können Sichtbarkeiten zugeordnet werden (nur privat/“-“ oder öffentlich/“+“) • Jedem Element muss eine Sichtbarkeit zugeordnet werden x «import» Y {import Z} «access» +E Z +D -G +C «import» U V +A +B -F
Objektorientierte Modellierung mit UML2 Import Paketdiagramme • Element-Import, Paket-Import, Klassen-Import (z.B. X::Z::D importiert Klasse X::Y::U::A) • Sichtbarkeit muss öffentlich sein - «import» = öffentliche Import-Beziehung • «access» = private Import-Beziehung x «import» Y {import Z} «access» +E Z +D -G +C «import» U V +A +B -F
Objektorientierte Modellierung mit UML2 Paketverschmelzung ^ P R = A B A Q A C Paketdiagramme • wie Paket-Import mit Beziehung --> + Schlüssel-wort «merge» = (Verschmelzungsbeziehung) • verschmilzt Inhalt des Basispakets mit Inhalt des Verschmelzungspakets • gleiche Inhalte = Effektiver Inhalt = Vereinigungsmenge • Vorteil: min. Modellierungsaufwand R «merge» A C Basis- pakete Effektiver Inhalt «merge» B Verschmelzungspaket
Objektorientierte Modellierung mit UML2 Komponentendiagramm Komponentendiagramm • modellieren die Struktur eines Systems zur Laufzeit und beschreiben, aus welchen Bestandteilen das System aufgebaut ist. • zeigen Definition von Komponenten und Abhängigkeiten zwischen diesen
Objektorientierte Modellierung mit UML2 Komponente «component» Name Interne Sicht Externe Sicht Ports «component» Name «component» Name öffentlicher Port privater Port Komponentendiagramm • Notation: • Externe Sicht • Interne Sicht • Ports: Verteilerzentrum zur Nachrichtenübermittlung (in, out, inout) • Verknüpfung einer Komponente mit anderer Komponente gleicher Ebene Typkonformität Voraussetzung
Objektorientierte Modellierung mit UML2 Interface A, B X, Y A, B X, Y Komponentendiagramm • Interfaces: („Schnittstelle“) zur Datenübertragung und Abfrage des Verhaltens anderer Komponenten (Verhaltensspezifikation) • Port mit angebotenen Interfaces • Port mit benötigten Interfaces • Kombinierter Port Stecker-/ Buchsen- symbol
Objektorientierte Modellierung mit UML2 Externe Sicht «use» Klient Anbieter Komponentendiagramm • Umfasst Interfaces, Ports, öffentliche Attribute & Operationen der Komponente, Verknüpfung von Komponenten gleicher Ebene Verknüpfung durch (Benutzungs-)Abhängigkeiten = allgemeine Kopplung zweier UML-Modellelemente; Änderungen in einem Element (Anbieter) zieht Änderungen im anderen Element (Klient) mit sich a) Interface-Realisierungs-/Benutzungsabhängigkeit: b) Buchse/Stecker-Notation: c) Separater Abschnitt:
Objektorientierte Modellierung mit UML2 Interne Sicht Komponentendiagramm • Umfasst private Attribute & Operationen, interne Realisierung (welche Elemente für die Realisierung des Verhaltens der Komponente zuständig sind) • direkte Implementierung • indirekte Implementierung a) Komponenten-Realisierungs-/Manifestationsabhängigkeit: b) Schachtelung: c) Separate Abschnitte:
Objektorientierte Modellierung mit UML2 Kompositionsstrukturdiag. Kompositionsstrukturd. • Kompositionsstrukturdiagramm modelliert innere Struktur einer Komponente oder Klassen • Beziehungen zwischen Rollen der internen Struktur werden durch Konnektoren modelliert, die Kommunikationspfade repräsentieren die verbundenen Instanzen interagieren zur Laufzeit miteinander • Notation: ungerichtet gerichtet
Objektorientierte Modellierung mit UML2 Kollaboration Kompositionsstrukturd. • Kollaboration beschreibt , wer mit wem kommuniziert, um best. Verhalten auszuführen (nicht wie und wann!) • Notation: a) KalenderAktualisierung auslöser:Kalender 1 1 1..* zuAktualisierende:Kalenderansicht 1..* b) Kalender auslöser zuAktualisierende Kalenderansicht … … Kalender Aktualisierung
Objektorientierte Modellierung mit UML2 Verteilungsdiagramm Verteilungsdiagramm • Modellieren der physischen Struktur eines Systems • zeigt die eingesetzte Hard- und Softwaretopologie und das zugeordnete Laufzeitsystem
Objektorientierte Modellierung mit UML2 Verteilungsdiagramm «device» calClient:PC «device» calServer:Host «artifact» calServerProgram:jar Verteilungsdiagramm • Knoten sind Hard-, Softwareelemente • Kommunikations-beziehungen = Verbindung zw. Knoten • Artefakte = Modellelemente, die für die Ausführung auf die Knoten verteilt werden (physische Manifestation der Software, z.B. exe-files) «internet» «deploy»
Verhaltens-modellierung Dynamische Aspekte
Objektorientierte Modellierung mit UML2 Diagrammarten Diagramme