UML Grundlagen

Werbung
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
(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
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
Herunterladen