80/1RWDWLRQXQG6HPDQWLN Dr. Eckhardt Holz Humboldt-Universität zu Berlin Institut für Informatik
Historie von UML UML Notation *OLHGHUXQJ General Concepts Static Structure Diagrams Use Case Diagrams Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams Implementation Diagrams UML Semantik Entwurf mit UML
(LQI KUXQJ UML = Unified Modeling Language UML ist Standardsprache für Visualisierung, Spezifikation, Konstruktion und Dokumentation komplexer Softwaresysteme. UML ist prozeß- und technologieunabhängig und im gesamten Entwicklungszyklus einsetzbar. UML kombiniert Konzepte aus Objektorientierter Modellierung Datenmodellierung (Entity Relationship Diagrams) Business-Modellierung (work flow) Component Modeling
+LVWRULHYRQ80/ OMG Rational 1996: UML 0.9 1995: UM 0.8 1997: UML 1.0 1997: UML 1.1 1999: UML 1.4? 1997: OMG UML 1.0 1994-95: UM 0.7 IBM, Oracle, Microsoft Booch Jacobson OMT/Rumbaugh
80/ ist eine Notation/Sprache, keine Methode, abstrahiert von Architektur, Technik, Prozeß, standardisiert visuelle Darstellung, Semantik, Begriffswelt, führt Ideen der bisherigen Techniken zusammen.
(LQVDW]YRQ80/ Hilft Nutzern und Entwicklern bei der Kommunikation. Bietet Nachvollziehbarkeit vom initialen Businessmodell bis zum fertigen System (traceability). Zentrales Repository für Wissen und Erfahrungen. Verbesserung der gesamten Softwarequalität. Langfristige Kostenreduzierung. Flexibilität für schnelle technische und geschäftliche Änderungen. Große und komplexe Softwaresysteme erfordern sorgfältiges Design.
80/.RQ]HSWH UML wird genutzt zur: Darstellung der Grenzen eines Systems sowie seiner wichtigsten 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 UML-Standard-Dokumente (OMG, Rational) UML Summary UML Notation Guide UML Semantics UML Extensions for Business Modeling UML Extensions for Objectory Process for Software Engineering Object Constraint Language Specification
*HQHUDO&RQFHSWV Kommentare, Annotationen Dies ist ein Kommentar Dies ist eine Annotation Packages, Subsysteme PackageB PackageC PackageA PackageD
Constraints Einschränkungen an ein oder mehrere Modellelemente Angabe als Einfacher Text oder formal möglich Notation { constraint } ClassA {singleton} {or }
Properties Werte für Attribute von Meta-Modellelementen oder für Tagged Values Notation { keyword = value } Beispiel {status = analysis, author = Mike Müller } {abstract = true} auch {abstract}
Stereotypen Erweiterungen des Metamodells im Modell Subklasse eines existierenden Meta-Modellelements Zusätzliche Einschränkungen oder anderer Anwendungszweck Vordefinierte Stereotypes Notation «stereotype name» Beispiel «interface» Accesspoint
Class Aus dem Meta-Modell «stereotype» Interface {self.attributes->isempty} Definition eines Stereotypes
6WDWLF6WUXFWXUH'LDJUDPV Klassen- und Objektdiagramme Klassen, Interfaces, Packages, Relationen Instanzen, Objekte, Datenwerte Classifier Elements Klassen-/Objektdefinition Relationen Assoziationen Aggregationen Abhängigkeiten Generalisierung
6WDWLF6WUXFWXUH'LDJUDP Name Rechnung preis:integer drucken() stornieren() Atribute Operationen Bestellung drucken() Ware
Ware PC:Ware Instanz Stereotypen Abstrakte Klasse «interface» Ware Ware Ware {abstract} Rechnung +preis:integer #kosten: Integer -gewinn:integer create() public protected private
6WDWLF6WUXFWXUH'LDJUDP Relationen dienen zur Kommunikation zwischen Objekten. UML hat 5 Arten von Relationen: Assoziationen sind bi-direktionale Verbindungen zwischen Klassen, Aggregationen sind eine strengere Relation zwischen Teilen und einem Ganzen, Abhängigkeiten sind schwächere Relationen zwischen Klient und Diensterbringer, in denen der Klient kein semantisches Wissen über den Diensterbringer hat Generalisierung, Realisierung.
Assoziation Aggregation Abhängigkeit Generalisierung Realisierung
6WDWLF6WUXFWXUH'LDJUDP Lieferung Rechnung Produkt Ware Kostet Preis
6WDWLF6WUXFWXUH'LDJUDP Multiplizität gibt an, wieviel Objekte an der Relation beteiligt sind. Navigierbarkeit beschränkt den bi-direktionalen Charakter von Relationen. Qualifikatoren dienen zur Bestimmung einzelner Objekte in n-zu-m Relationen. Constraints beschränken den Gültigkeitsbereich von Relationen. Rollennamen beschreiben die Endpunkte der Relation. Leserichtung, Sichtbarkeit.
6WDWLF6WUXFWXUH'LDJUDP Lieferung Rechnung ArtNr Produkt * Umfaßt Ware * Kostet 1 Preis * Erbringt 2
Objektdiagramm 6WDWLF6WUXFWXUH'LDJUDP Ware name:string artnr:integer * * Kostet 1 Erbringt Preis wert:integer steuer:integer 2 PC:Ware name= Compaq artnr=0815 Einkauf:Preis wert=999 steuer=16 Standard:Preis wert=2000 steuer=16 Angebot:Preis wert=1500 steuer=16
6WDWLF6WUXFWXUH'LDJUDP Interfaces und Relationen «interface» If1 «uses» ClassA ClassA op1() ClassB If1 ClassB
Firma +arbeitgeber Job +arbeitnehmer * 1..* Person Job gehalt boss 0..1 mitarbeiter * Leitet
Hotel Kunde Transport Urlaub
Window 1..n 1 1 workarea control border TextFeld Rahmen Buttons Window workarea:textfeld border:rahmen 1 1 Window workarea:textfeld border:rahmen control[1..n] :Buttons control:buttons 1..n
6WDWLF6WUXFWXUH'LDJUDP Vererbung ist eine Relation zwischen einer Superklasse und ihren Subklassen. Zwei Mechanismen: Generalisierung, Spezialisierung. Gemeinsame Attribute, Operationen und Relationen werden auf dem höchsten anwendbaren Hierarchieniveau gezeigt.
6WDWLF6WUXFWXUH'LDJUDP Antriebsart Fahrzeug {abstract} Antriebsart {overlapping} Auto Boot Fahrzeug
Diskriminator beschreibt Art der Generalisierung Vordefinierte Constraints overlapping disjoint complete incomplete
ClassA ClassA ClassA ClassA... {overlapping,incomplete} antriebsart Fahrzeug ort {overlapping} Körperlich betriebenes Fahrzeug Motorbetriebenes Fahrzeug Landfahrzeug Wasserfahrzeug Fahrrad Motorboot Ruderboot
Dependencies trace refine uses bind «calls» ClassA «friend» ClassB «instantiates» calls instantiates friend import ClassC
Content,n:Integer Array n Content «bind» (Person, 100) Array<Person,10> Adressbuch
Weitere Stereotypes für Klasseen utility type implementation class