80/1RWDWLRQXQG6HPDQWLN Dr. Eckhardt Holz Humboldt-Universität zu Berlin Institut für Informatik *OLHGHUXQJ ■ ■ Historie von UML UML Notation ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ■ ■ General Concepts Static Structure Diagrams Use Case Diagrams Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams Implementation Diagrams UML Semantik Entwurf mit UML (LQIKUXQJ ■ ■ ■ ■ 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 1999: UML 1.4 ? 1997: UML 1.1 1997: UML 1.0 1997: OMG UML 1.0 1996: UML 0.9 1995: UM 0.8 1994-95: UM 0.7 Booch IBM, Oracle, Microsoft Jacobson OMT/Rumbaugh 80/ ■ ■ ist eine Notation/Sprache, keine Methode, abstrahiert von ◆ ◆ ◆ ■ standardisiert ◆ ◆ ◆ ■ Architektur, Technik, Prozeß, 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, ✦ ◆ Beschreibung der use-case Realisierung, ✦ ◆ class diagrams, Modellierung des Objektverhaltens, ✦ ◆ interaction diagrams, Repräsentation der statischen Struktur des Systems, ✦ ◆ use cases and actors, 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 ■ Packages, Subsysteme Dies ist eine Annotation 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 «stereotype» Interface {self.attributes->isEmpty} Aus dem Meta-Modell 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 Atribute preis:Integer drucken() stornieren() Bestellung drucken() Operationen Ware PC:Ware Ware Stereotypen «interface» Ware Instanz Abstrakte Klasse Ware {abstract} Ware Rechnung public +preis:Integer #kosten: Integer -gewinn:Integer create() 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 Umfaßt Produkt * Ware * * Kostet Erbringt 1 Preis 2 6WDWLF6WUXFWXUH'LDJUDP ■ Objektdiagramm Ware name:String artNr:Integer * Kostet Erbringt * 1 Preis wert:Integer steuer:Integer 2 PC:Ware name=“Compaq” artNr=0815 Einkauf:Preis wert=999 steuer=16 Standard:Preis Angebot:Preis wert=2000 steuer=16 wert=1500 steuer=16 6WDWLF6WUXFWXUH'LDJUDP ■ Interfaces und Relationen «interface» If1 «uses» ClassA ClassA op1() ClassB If1 ClassB Job Firma +arbeitgeber +arbeitnehmer * 1..* Job gehalt mitarbeiter boss 0..1 * Leitet Person Hotel Kunde Transport Urlaub Window 1..n 1 workarea TextFeld 1 control border Rahmen Buttons Window Window 1 workarea:TextFeld 1 border:Rahmen 1..n control:Buttons workarea:TextFeld border:Rahmen control[1..n] :Buttons 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} Boot Auto Fahrzeug ■ ■ Diskriminator beschreibt Art der Generalisierung Vordefinierte Constraints ◆ ◆ ◆ ◆ overlapping disjoint complete incomplete ClassA ClassA ClassA antriebsart ClassA Fahrzeug ort {overlapping} {overlapping,incomplete} Körperlich betriebenes Fahrzeug Fahrrad ... Motorbetriebenes Fahrzeug Landfahrzeug Motorboot Wasserfahrzeug Ruderboot ■ Dependencies ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ trace refine uses bind calls instantiates friend import «friend» ClassA ClassB «calls» «instantiates» ClassC Content,n:Integer Array n Content «bind» (Person, 100) Array<Person,10> Adressbuch ■ Weitere Stereotypes für Klasseen ◆ ◆ ◆ utility type implementation class