Modellierung Wintersemester 2014/15 UML (Folien teilw. · PDF fileModellierung UML Klassen-...

Click here to load reader

  • date post

    04-Jun-2018
  • Category

    Documents

  • view

    213
  • download

    0

Embed Size (px)

Transcript of Modellierung Wintersemester 2014/15 UML (Folien teilw. · PDF fileModellierung UML Klassen-...

  • Modellierung

    UML

    Vorlesung ModellierungWintersemester 2014/15

    UML(Folien teilw. von Prof. B. Konig)

    Prof. Norbert Fuhr

    1 / 196

  • Modellierung

    UML

    UML: Einfuhrung

    UML = Unified Modeling Language

    Standard-Modellierungssprache furSoftware Engineering.

    Basiert auf objekt-orientiertenKonzepten.

    Sehr umfangreich, enthalt vieleverschiedene Typen von Modellen.

    Entwickelt von Grady Booch,James Rumbaugh, Ivar Jacobson(1997).

    2 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML und Objekt-Orientierung

    Was bedeutet Objekt-Orientierung?

    Grundidee

    Die reale Welt besteht aus Objekten, die untereinander inBeziehungen stehen. Diese Sichtweise wird auch auf Modellierungund Softwareentwicklung ubertragen.

    Etwas genauer . . .

    Daten (= Attribute) werden zusammen mit der Funktionalitat (=Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt istin der Lage Nachrichten (= Methodenaufrufe) zu empfangen,Daten zu verarbeiten und Nachrichten zu senden.

    Diese Objekte konnen einmal erstellt in verschiedenenKontexten wiederverwendet werden.

    3 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML und Objekt-Orientierung

    Geschichte der Objekt-Orientierung

    Entwicklung von objekt-orientierten Programmiersprachen:

    60er Jahre: Simula (zur Beschreibung und Simulation vonkomplexen Mensch-Maschine-Interaktionen)80er Jahre: C++90er Jahre: Java

    Verbreitung von objekt-orientierten Entwurfsmethoden:

    70er Jahre: Entity-Relationship-Modell90er Jahre: Vorlaufer von UML:OOSE (Object-Oriented Software Engineering),OMT (Object Modeling Technique)Seit 1997: UMLSeit 2005: UML 2.0

    4 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML und Objekt-Orientierung

    Vorteile der objekt-orientierten Programmierung und Modellierung

    Leichte Wiederverwendbarkeit dadurch, dass Daten undFunktionalitat zusammen verwaltet werden und es Konzeptezur Modifikation von Code (Stichwort: Vererbung) gibt.

    Nahe zur realen Welt: viele Dinge der realen Welt konnen alsObjekte modelliert werden.

    Vertraglichkeit mit Nebenlaufigkeit und Parallelitat:Kontrollfluss kann nebenlaufig in den Objekten ablaufen unddie Objekte konnen durch Nachrichtenaustausch bzw.Methodenaufrufe untereinander kommunizieren.

    5 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML und Objekt-Orientierung

    Ein Beispiel fur die Modellierung vonObjekten der realen Welt:

    Fahrkartenautomat

    Daten: Fahrtziele, Zoneneinteilung,Fahrtkosten

    Funktionalitat: Tasten drucken,Preise anzeigen, Munzen einwerfen,Fahrkarte auswerfen

    6 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML und Objekt-Orientierung

    Konzepte

    Klassen: definiert einen Typ von Objekten mit bestimmtenDaten und bestimmter Funktionalitat.

    Beispiel: die Klasse der VRR-Fahrkartenautomaten

    Objekte: Instanzen der Klasse.

    Beispiel: der Fahrkartenautomat am DuisburgerHauptbahnhof, Osteingang

    7 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML: Einfuhrung

    Einsatzgebiete von UML

    Visualisierung

    Spezifikation

    Konstruktion (z.B. zur Codegenerierung)

    Dokumentation

    8 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML: Einfuhrung

    Vokabular der UML (nach Booch/Rumbaugh/Jacobson)

    Dinge (things)

    Beziehungen (relationships)

    Diagramme (diagrams)

    Dinge

    Strukturen (structural things)

    Verhalten (behavioral things)

    Gruppen (grouping things)

    Annotationen (annotational things)

    9 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML: Einfuhrung

    Beziehungen

    Abhangigkeiten (dependencies)

    Assoziationen (associations)

    Generalisierungen (generalizations)

    Realisierungen (realizations)

    10 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML: Einfuhrung

    UML-Diagramme

    Verhaltens-diagramme

    Interaktions-

    diagramme

    Objekt-

    diagramm

    Kompositions-

    strukturdiagramm

    diagrammeStruktur-

    Klassen-

    diagramm

    Komponenten-

    diagramm

    Verteilungs-

    diagramm

    Paket-

    diagramm

    Diagrammeder UML

    diagramm diagramm

    diagramm

    Aktivitats- Anwendungsfall-

    Zustands-

    diagrammdiagramm

    Interaktionsuber-

    sichtsdiagramm

    Zeitverlaufs-/

    Timing-Diagramm

    Kommunikations-Sequenz-

    11 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML: Einfuhrung

    Diagramme (I)

    Strukturdiagramme

    Klassendiagramme (class diagrams)Objektdiagramme (object diagrams)Kompositionsstrukturdiagramme (composite structurediagram)Paketdiagramme (package diagram)Verteilungsdiagramme (deployment diagram)Komponentendiagramme (component diagrams)

    12 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    UML: Einfuhrung

    Diagramme (II)

    Verhaltensdiagramme

    Aktivitatsdiagramme (activity diagrams)Zustandsdiagramme (state diagrams)Anwendungsfalldiagramm (use case diagrams)

    Interaktionsdiagramme

    Sequenzdiagramme (sequence diagrams)Kommunikationsdiagramm (communicationdiagram)Zeitverlaufsdiagramm (timing diagram)Interaktionsubersichtsdiagramm (interactionoverview diagram)

    Wir werden im Folgenden einige dieser Begriffe mit Leben fullen.

    13 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Wir beginnen mit Klassen- und Objektdiagrammen . . .

    Beispiel: Klasse der zweidimensionalen Punkte mit x-,y -Koordinaten und Operationen zum Auslesen der Koordinaten

    Graphische Darstellung einer Klasse

    x: inty: int

    Klassenname

    Attribute (evtl. mit Typ)

    Operationen/Methodenget x(): intget y(): int

    Point

    14 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Bei den Attributen handelt es sich um sogenannteInstanzattribute, d.h., sie gehoren zu den Instanzen einerKlasse (nicht zur Klasse selbst).

    Man kann die Sichtbarkeit eines Attributes bzw. einerMethode spezifieren, indem man + (offentlich/sichtbar) oder (privat/nicht sichtbar) vor den Attribut-/Methodennamenschreibt.Auch die Angabe # (geschutzt/protected) ist moglich. Indiesem Fall ist das Attribut nur fur Klassen sichtbar, die vonder entsprechenden Klasse erben.

    15 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Attribute haben im allgemeinen Typen, manchmal auchVorgabewerte (= initiale Werte). Dies wird dannfolgendermaen notiert:

    x: int = 0

    Mehrstellige Operationen mitRuckgabewert, werden mit ihren Typen folgendermaen notiert:

    add(m: int, n: int): int

    16 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Graphische Darstellung einer Instanz einer Klasse

    x: inty: int

    get x(): intget y(): int

    instantiate

    x = 0y = 0

    Point mypoint :Point

    17 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Graphische Darstellung von Generalisierung/Spezialisierung

    c: stringx: inty: int

    get x(): intget y(): int

    color(): stringsetcolor(c: string)

    Colored PointPoint

    Die Klasse Colored Point spezialisiert die Klasse Point.Umgekehrt generalisiert Point die Klasse Colored Point.

    18 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    In einer solchen Situation nennt man Point Superklasse undColored Point Subklasse.

    Da die Subklasse die Attribute, Methoden und Assoziationender Superklasse erbt (und diesen noch weitere hinzufugenkann), spricht man auch von Vererbung. Auerdem kann manin der Subklasse Methoden der Superklasse uberschreiben unddurch neue ersetzen.

    19 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Wie kann man Beziehungen zwischen Klassen in UML darstellen?

    Es gibt folgende mogliche Beziehungen:

    Assoziation

    Aggregation

    Komposition

    20 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Wir beginnen mit der schwachsten Relation zwischen zwei Klassen:der Assoziation.

    Assoziation

    Es gibt eine Assoziation zwischen den Klassen A und B, wenn

    es eine semantische Beziehung zwischen den Klassen gibt.

    Ublicherweise werden Assoziationen durch Referenzen realisiert(d.h., eine der Klassen hat ein Attribut vom Typ der anderenKlasse).

    21 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Beispiel fur eine Assoziation

    Eine Person besitzt ein Auto.

    besitzt

    Person Auto

    22 / 196

  • Modellierung

    UML

    Klassen- und Objektdiagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Es kann eine Leserichtung der Assoziation eingefuhrt werden:

    besitzt

    Person Auto

    Die Navigationsrichtung (beschrieben durch eine Pfeilspitze)kann von der Leserichtung abweichen. Sie beschreibt, welcheKlasse ihren Assoziationspartner kennt (und daher seineMethoden aufrufen kann).

    besitzt

    Person Auto