UML Notation und Semantik - Vorlesungen
UML Notation und Semantik - Vorlesungen
UML Notation und Semantik - Vorlesungen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
80/1RWDWLRQXQG6HPDQWLNDr. Eckhardt HolzHumboldt-Universität zu BerlinInstitut für Informatik
*OLHGHUXQJ■■■■Historie von <strong>UML</strong><strong>UML</strong> <strong>Notation</strong>◆ General Concepts◆ Static Structure Diagrams◆ Use Case Diagrams◆ Sequence Diagrams◆ Collaboration Diagrams◆ Statechart Diagrams◆ Activity Diagrams◆ Implementation Diagrams<strong>UML</strong> <strong>Semantik</strong>Entwurf mit <strong>UML</strong>
(LQIKUXQJ■■■■<strong>UML</strong> = Unified Modeling Language<strong>UML</strong> ist Standardsprache für Visualisierung, Spezifikation,Konstruktion <strong>und</strong> Dokumentation komplexerSoftwaresysteme.<strong>UML</strong> ist prozeß- <strong>und</strong> technologieunabhängig <strong>und</strong> imgesamten Entwicklungszyklus einsetzbar.<strong>UML</strong> kombiniert Konzepte aus✦ Objektorientierter Modellierung✦ Datenmodellierung (Entity Relationship Diagrams)✦ Business-Modellierung (work flow)✦ Component Modeling
+LVWRULHYRQ80/OMGRational1996: <strong>UML</strong> 0.91995: UM 0.81997: <strong>UML</strong> 1.01997: <strong>UML</strong> 1.11999: <strong>UML</strong> 1.4 ?1997: OMG <strong>UML</strong> 1.01994-95: UM 0.7IBM, Oracle, MicrosoftBoochJacobsonOMT/Rumbaugh
80/■■■■ist eine <strong>Notation</strong>/Sprache, keine Methode,abstrahiert von◆ Architektur,◆ Technik,◆ Prozeß,standardisiert◆ visuelle Darstellung,◆ <strong>Semantik</strong>,◆ Begriffswelt,führt Ideen der bisherigen Techniken zusammen.
(LQVDW]YRQ80/■■■■■■■Hilft Nutzern <strong>und</strong> Entwicklern bei der Kommunikation.Bietet Nachvollziehbarkeit vom initialenBusinessmodell bis zum fertigen System (traceability).Zentrales Repository für Wissen <strong>und</strong> Erfahrungen.Verbesserung der gesamten Softwarequalität.Langfristige Kostenreduzierung.Flexibilität für schnelle technische <strong>und</strong> geschäftlicheÄnderungen.Große <strong>und</strong> komplexe Softwaresysteme erfordernsorgfältiges Design.
80/.RQ]HSWH■<strong>UML</strong> wird genutzt zur:◆ Darstellung der Grenzen eines Systems sowie seinerwichtigsten Funktionen,✦ use cases and actors,◆ Beschreibung der use-case Realisierung,✦ interaction diagrams,◆ Repräsentation der statischen Struktur des Systems,✦ class diagrams,◆ Modellierung des Objektverhaltens,✦ state transition diagrams,◆ Angabe der physischen Implementationsarchitektur,✦ component & deployment diagrams.
80/'HILQLWLRQ■<strong>UML</strong>-Standard-Dokumente (OMG, Rational)◆ <strong>UML</strong> Summary◆ <strong>UML</strong> <strong>Notation</strong> Guide◆ <strong>UML</strong> Semantics◆ <strong>UML</strong> Extensions for Business Modeling◆ <strong>UML</strong> Extensions for Objectory Processfor Software Engineering◆ Object Constraint Language Specification
*HQHUDO&RQFHSWV■Kommentare, AnnotationenDies ist einKommentarDies ist eineAnnotation■Packages, SubsystemePackageBPackageCPackageAPackageD
■Constraints◆ Einschränkungen an ein oder mehrere Modellelemente◆ Angabe als Einfacher Text oder formal möglich◆ <strong>Notation</strong>{ constraint }ClassA{singleton}{or }
■Properties◆ Werte für Attribute von Meta-Modellelementen oder fürTagged Values◆ <strong>Notation</strong>{ keyword = value }◆ Beispiel{status = analysis, author = “Mike Müller”}{abstract = true} auch {abstract}
■■■■■StereotypenErweiterungen des Metamodells im Modell◆ Subklasse eines existierenden Meta-Modellelements◆ Zusätzliche Einschränkungen oder andererAnwendungszweckVordefinierte Stereotypes<strong>Notation</strong>«stereotype name»Beispiel«interface»Accesspoint
ClassAus demMeta-Modell«stereotype»Interface{self.attributes->isEmpty}Definitioneines Stereotypes
6WDWLF6WUXFWXUH'LDJUDPV■■■Klassen- <strong>und</strong> Objektdiagramme◆ Klassen, Interfaces, Packages, Relationen◆ Instanzen, Objekte, Datenwerte◆ Classifier ElementsKlassen-/ObjektdefinitionRelationen◆ Assoziationen◆ Aggregationen◆ Abhängigkeiten◆ Generalisierung
6WDWLF6WUXFWXUH'LDJUDPNameRechnungpreis:Integerdrucken()stornieren()AtributeOperationenBestellungdrucken()Ware
WarePC:WareInstanzStereotypenAbstrakte Klasse«interface»WareWareWare{abstract}Rechnung+preis:Integer#kosten: Integer-gewinn:Integercreate()publicprotectedprivate
6WDWLF6WUXFWXUH'LDJUDP■■Relationen dienen zur Kommunikation zwischenObjekten.<strong>UML</strong> hat 5 Arten von Relationen:◆ Assoziationen sind bi-direktionale Verbindungen zwischenKlassen,◆ Aggregationen sind eine strengere Relation zwischenTeilen <strong>und</strong> einem Ganzen,◆ Abhängigkeiten sind schwächere Relationen zwischenKlient <strong>und</strong> Diensterbringer, in denen der Klient keinsemantisches Wissen über den Diensterbringer hat◆ Generalisierung,◆ Realisierung.
AssoziationAggregationAbhängigkeitGeneralisierungRealisierung
6WDWLF6WUXFWXUH'LDJUDPLieferungRechnungProduktWareKostetPreis
6WDWLF6WUXFWXUH'LDJUDP■■■■■■Multiplizität gibt an, wieviel Objekte an der Relationbeteiligt sind.Navigierbarkeit beschränkt den bi-direktionalenCharakter von Relationen.Qualifikatoren dienen zur Bestimmung einzelner Objektein n-zu-m Relationen.Constraints beschränken den Gültigkeitsbereich vonRelationen.Rollennamen beschreiben die Endpunkte der Relation.Leserichtung, Sichtbarkeit.
6WDWLF6WUXFWXUH'LDJUDPLieferungRechnungArtNrProdukt *UmfaßtWare*Kostet 1Preis*Erbringt2
6WDWLF6WUXFWXUH'LDJUDP■ObjektdiagrammWarename:StringartNr:Integer**Kostet 1ErbringtPreiswert:Integersteuer:Integer2PC:Warename=“Compaq”artNr=0815Einkauf:Preiswert=999steuer=16Standard:Preiswert=2000steuer=16Angebot:Preiswert=1500steuer=16
6WDWLF6WUXFWXUH'LDJUDP■Interfaces <strong>und</strong> Relationen«interface»If1«uses»ClassAClassAop1()ClassBIf1ClassB
Firma+arbeitgeberJob+arbeitnehmer* 1..*PersonJobgehaltboss0..1mitarbeiter*Leitet
HotelK<strong>und</strong>eTransportUrlaub
Window1..n11workareacontrolborderTextFeld Rahmen ButtonsWindow1workarea:TextFeld1border:Rahmencontrol:Buttons 1..nWindowworkarea:TextFeldborder:Rahmencontrol[1..n] :Buttons
6WDWLF6WUXFWXUH'LDJUDP■■■Vererbung ist eine Relation zwischen einer Superklasse<strong>und</strong> ihren Subklassen.Zwei Mechanismen:◆ Generalisierung,◆ Spezialisierung.Gemeinsame Attribute, Operationen <strong>und</strong> Relationenwerden auf dem höchsten anwendbarenHierarchieniveau gezeigt.
6WDWLF6WUXFWXUH'LDJUDPAntriebsartFahrzeug{abstract}Antriebsart{overlapping}AutoBootFahrzeug
■■Diskriminator beschreibt Art der GeneralisierungVordefinierte Constraints◆ overlapping◆ disjoint◆ complete◆ incomplete
ClassAClassA ClassA ClassA ...{overlapping,incomplete}antriebsartFahrzeugort{overlapping}Körperlich betriebenesFahrzeugMotorbetriebenesFahrzeugLandfahrzeugWasserfahrzeugFahrradMotorbootRuderboot
■Dependencies◆ trace◆ refine◆ uses◆ bind«calls»ClassA«friend»ClassB«instantiates»◆ calls◆ instantiates◆ friend◆ importClassC
Content,n:IntegerArraynContent«bind» (Person, 100)ArrayAdressbuch
■Weitere Stereotypes für Klasseen◆ utility◆ type◆ implementation class