UML 2.1 Referenz Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 2.1.2 www.oio.de info@oio.de
Allgemeine Notationselemente Common Notation Elements Notiz {Zusicherung} Abhängigkeit [<Art>] Name Diagrammrahmen Art: act, class, cmp, sd, pkg, stm, uc 2
Paketdiagramm Package Diagram <<Stereotyp>> Paketnamen {Eigenschaftswerte} Paketname Klasse1 Klasse2 <<import>> Paket2 enthaltene Klasse <<access>> Paket3 enthaltenes Paket Paket1 <<merge>> Paket4 Klasse1 3
Klassendiagramm 1 Class Diagram <<Stereotyp>> Paket::Klassenname {Eigenschaftswerte} Oberklasse1 operation() <<interface>> Schnittstelle operation() Sichtbarkeiten Diskriminator Syntax Generalisierung Spezialisierung Realisierung <<realize>> Unterklasse1 Klassenname Unterklasse2 ImplementierendeKlasse - private_attribut # protected_attribut ~ package_attribut + public_attribut - private_operation # protected_operation ~ package_operation + public_operation attribut attribut :Typ attribut :Typ=Wert {Eigensch.} operation operation(parameter):erg_typ Komma getrennte Parameterliste: Richtung Name:Typ=Standardwert operation() AbstrakteKlasse x,y,...:daten_typ ParametrisierbareKlasse bereitgestellte Schnittstelle operation() <<call>> BenutzendeKlasse genutzte Schnittstelle Objektname:Klasse Objektnotation ParametrisierteKlasse<Parameter> AktiveKlasse 4
Klassendiagramm 2 (Assoziationen) Class Diagram Klasse_1 Assoziation <<Stereotyp>> Beziehungsname m {Eigenschaftswerte} n Leserichtung Klasse_2 Aggregation 0..* Teil1 Klasse_3 rolle1 m,n Multiplizität: 0..1, *, 1..*, x,y,... gerichtete Assoziation rolle2 Klasse_4 Ganzes 0..1 0..1 Komposition 0..* 0..* Teil2 ExistenzAbhängigesTeil Klasse_5 bidirektionale Assoz. a b Klasse_6 0..1 0..* {ordered} Komposition Klasse_7 a b Klasse_8 0..* rolle Teil tertiäre Assoziation c Qualifizierte Assoziation Klasse_9 Klasse_5 Qualifizierer Klasse_6 Klasse_10 Klasse_11 AssoziationsKlasse 5
Kompositionsstrukturdiagramm Composite Structure Diagram Observer Subject: Klasse_S Observer: Klasse_O Alternative Darstellungsweisen Klasse_S Subject Observer Klasse_O attrib_s Observer attrib_o Observer.attrib_o=xyz(Subject.attrib_s) 6
Anwendungsfalldiagramm Use Case Diagram AWF_3 Extension Points:... Systemname <<actor>> Akteur_1 Akteur <<extend>> Erweiterter AWF Abstrakter Akteur <<include>> Anwendungsfall AWF_2 Vererbung Einbezogener AWF Kardinalität 1..* 1..2 Akteur_1 AWF_1 Systemgrenze 7
Aktivitätsdiagramm 1 Activity Diagram Partition 1 Anfang Schritt Objektfluss Partition 2 Verantwortlichkeits Bereiche Entscheidung Partition 3 Verborgene Unteraktivitäten Objekt [Zustand] Schritt 2 Schritt 3 Schritt 1 Signal senden/ empfangen Sendeknoten Kontrolfluss &-Semantik [Bed_1] [Bed_2] Schritt 4 Empfangsknoten Ablaufende Schritt 5 Schritt 6 Synchron. für parallele Aktivitäten Ende merge 8
Aktivitätsdiagramm 2 Activity Diagram Aktivitätsname Parametername:Typ... <<precondition>> Vorbedingung <<postcondition>> Nachbedingung Schritt 1 Abbruchsignal Schritt 2 Schritt 3 Schritt 4 Unterbrechbarer Bereich Eingangsparameter Ausgangsparameter Mehrfachverarbeitung Art: parallel, iterative, stream Schritt 1 A <<Art>> Konnektor Schritt A Schritt 2 9
Interaktionsübersichtsdiagramm Interaction Overview Diagram sd Übersichtsdiagramm lifelines x:klasse1, y:klasse2 sd Interaktion XY x:klasse1 y:klasse2 msg_1 msg_2 [Bed_1] [Bed_2] ref Diagramm Z 10
Zustandsdiagramm Statechart Diagram Zustand Anfang Ende Optional auch: Ereignis(Parameter) [Bedingung]? oder nur [Bedingung] Reservierte Ereignisse: entry, exit, do, include Zustandsnamen Ereignis/ Aktion Ereignis (Parameter)[Bedingung] / Aktion Zustand_1 Ereignis Zustandsübergang Zustand_2 Eingangspunkt Zustand_A Gruppierung von Unterzuständen Zustand Abbruch Zustand_1 [Bed_1] Zustand_2 event_1 Versteckte_Zustände [Bed_2] [B_3] Z3 Zustand_3 event_2 Z1 Z2 [B_1] [B_2] Knoten- Punkt [B_4] [B_5] Z4 Z5 11
Zeitdiagramm Timing Diagram Zeitbedingungen sd Zeitdiagrammname Zustand o. Bedingung X_3 {d..3*d} :Klasse1 X_2 {t..t+2} Lebenslinien X_1 nachricht X_2 msg_1 msg_2 :Klasse2 X_1 t=now msg_3 d Einheit: 0 1 2 3... Zeitskala Einheit: ms,s,m... 12
Sequenzdiagramme Sequence Diagram sd Sequenzdiagramm Name sd Diagramm 2 Kontrollfokus Objektname synchron [Bedingung] nachricht(parameter) antwort :Klasse1 msg_1 asynchron ref Diagramm 2 Nachrichten - fluß wird in Diagramm 2 fortgesetzt. Obj2:Klasse2 msg_1 create Objekt3 par msg_3 msg_4 Objekt4 Darstellung paralleler Programmverlaufe. t=now x: msg_2 msg_3 msg_5 Zusicherung von Antwortzeiten Selbstaufruf msg_6 {t..t+3} loop y: reply_2 * msg_4() Iterationszeichen alt [Bedingung1] msg_7 Darstellung alternativer Programmverlaufe. [Schleifenabbruchbedingung] Iterationsrahmen mit Abruchbedingung [Bedingung2] msg_8 Lebenslinie delete() 13
Kommunikationsdiagramm Communication Diagram sd Kommunikationsdiagramm Name synchron asynchron 2.1: msg() Selbstaufruf start() Objektname 2: msg() Obj2:Klasse2 Gerichtete Assoziation 1: [Bed] antwort := nachricht(parameter) rolle Objekt1 Verschachtelter Nachrichtenfluß 1.1: new () 1.2: reply:= msg () Objekt3{new} 1.2.* [Bed]: msg () Iterationszeichen mit Abruchbedingung Neu erzeugtes Objekt 14
Komponentendiagramm Component Diagram <<component>> xyz genutzte Schnittstelle KlasseX <<component>> Komponentenname bereitgestellte Schnittstelle Portname <<component>> Komponente 2 <<manifest>> <<artifact>> xyz.jar 15
Verteilungsdiagramm Deployment Diagram Knotenname:Knotentyp Physikalische Verbindung (z.b Internet) Knoten1 <<artifact>> client.jar <<artifact>> Applikation.ear <<artifact>> abc.jar <<artifact>> xyz.jar :Knotentyp2 Kommunikation zweier Artefakte <<deploy>> <<depoyment spec>> abc.xml <<depoyment spec>> xyz.xml Knotentyp2 kann Applikation.ear aufnehmen. 16