fh-prof. christian v. madritsch systems engineering informatik und programmieren 3...

18
FH-Prof. Christian V. Madritsch Systems Engineering www.cti.ac.at/rts Informatik und Informatik und Programmieren 3 Programmieren 3 Objektorientierte Programmierung und UML

Upload: rannulf-streufert

Post on 06-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

FH-Prof. Christian V. Madritsch

Systems Engineering

www.cti.ac.at/rts

Informatik und Informatik und Programmieren 3Programmieren 3

Objektorientierte Programmierung und UML

Page 2: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 2 [email protected]

Copyright NoticeCopyright Notice

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission of the author except for student usage.

Copyright © 2008 by Christian V. Madritsch Co-Copyright © 2008 by Andreas Sucher

Titelbild: Tron, 1982, Buena Vista Pictures

Page 3: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 3 [email protected]

Unified Modeling Language - UMLUnified Modeling Language - UML

Die UML ist ein standardisiertes System, das die besten Analyse- und Entwurfsmethoden der Software-Entwicklung zusammenfasst.

Die UML ist eine Standardsprache mit grafischer Notation zur Visualisierung, Spezifikation, Konstruktion und Dokumentation von Software-Modellierung.

Jim Rumbaugh, Grady Booch und Ivar Jacobson entwickelten um 1995 gemeinsam bei Rational Software Corp. die UML. Heute im Besitz von IBM

Page 4: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 4 [email protected]

DiagrammartenDiagrammarten

Die UML unterstützt unterschiedliche Diagrammarten, welche die unterschiedlichen Aspekte der Software-Modellierung ausdrücken. Anwendungsdiagramme Aktivitätsdiagramme Klassen-/Objektdiagramme Interaktionsdiagramme

Sequenzdiagramme Kollaborationsdiagramme

Zustandsdiagramme Komponentendiagramm Verteilungsdiagramme

Page 5: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 5 [email protected]

Anwendungsdiagramme Anwendungsdiagramme (Use Case Diagram)(Use Case Diagram)

Ein Use Case beschreibt die Funktionalität des Softwaresystems, die ein Benutzer des Systems (Akteur) ausführen muss, um ein gewünschtes Ergebnis zu erhalten oder ein bestimmtes Ziel zu erreichen.

Das Anwendungsdiagramm beschreibt die Beziehung zwischen Akteuren und Use Cases.

Page 6: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 6 [email protected]

Aktivitätsdiagramm Aktivitätsdiagramm (Activity Diagram)(Activity Diagram)

Das Aktivitätsdiagramm ist ein Ablaufdiagramm, mit dem die einzelnen Schritte eines Arbeitsablaufs anschaulich modelliert werden können.

Page 7: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 7 [email protected]

Klassen-/ObjektdiagrammeKlassen-/Objektdiagramme

Klassendiagramme beschreiben Klassen und deren statische Beziehungen untereinander. Vererbungsbeziehung Assoziationsbeziehung

Benutzung Aggregationsbeziehung

Enthalten sein Kompositionsbeziehung

Enthalten sein

Abhängigkeitsbeziehung

Page 8: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 8 [email protected]

VererbungsbeziehungVererbungsbeziehung

Vespa ist von Motorrad abgeleitet

Page 9: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 9 [email protected]

Assoziationsbeziehung (i)Assoziationsbeziehung (i)

Die Vespa benutzt einen Motor, ...

Page 10: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 10 [email protected]

Assoziationsbeziehung (ii)Assoziationsbeziehung (ii)

A B

Bidirektionale AssoziationA und B sind assoziiert

gerichtete AssoziationA beinhaltet B

KardinalitätA beinhaltet 1 bis N B

1..*

Kardinalität: 0..*, 1..*, 0..2, *, 1, ...

1

Rollenname A Rollenname BAssoziationsname

Page 11: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 11 [email protected]

AggregationsbeziehungAggregationsbeziehung

Aggregation ist gleichzusetzen mit Assoziation by reference

A B

1..*

A beinhaltet 1 bis N B

Page 12: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 12 [email protected]

KompositionsbeziehungKompositionsbeziehung

Der Teil kann ohne das Ganze nicht existieren by value

A B

1..*

A beinhaltet 1 bis N B

Der Motor einer Vespa kann nichtgleichzeitig in einer anderen Vespa sein

Page 13: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 13 [email protected]

Sequenzdiagramm Sequenzdiagramm (Sequenze Diagram)(Sequenze Diagram)

Das Sequenzdiagramm zeigt, wie Objekte miteinander komm-unizieren, um eine bestimmte Aufgabe zu erfüllen.

Im Gegensatz zum Kollabora-tionsdiagramm steht hier der zeitliche Aspekt im Vordergrund.

Page 14: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 14 [email protected]

Kollaborationsdiagramm Kollaborationsdiagramm (Collaboration Diagram)(Collaboration Diagram)

Wie Sequenzdiagramm, allerdings liegt die Betonung auf den Beziehungen zwischen den Objekten und ihrer Topologie. Wer mit wem?

Page 15: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 15 [email protected]

Zustandsdiagramm Zustandsdiagramm (State Diagram)(State Diagram)

Zustandsdiagramme dienen der dynamischen Beschreibung eines Systems mittels Automaten

Page 16: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 16 [email protected]

Komponentendiagramm Komponentendiagramm (Component Diagram)(Component Diagram)

Komponentendiagramme zeigen den physischen oder logischen Aufbau eines Systems. Dateien, Bibliotheken, DLLs, ...

Page 17: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 17 [email protected]

Verteilungsdiagramm Verteilungsdiagramm (Deployment Diagram)(Deployment Diagram)

Diagramm, das die Konfiguration der verarbeitenden Knoten und der auf ihnen eingesetzten Komponenten zeigt.

Page 18: FH-Prof. Christian V. Madritsch Systems Engineering  Informatik und Programmieren 3 Objektorientierte Programmierung und UML

11.04.23 18 [email protected]

UML ToolsUML Tools

Es gibt eine Menge kommerzieller und auch freier UML Tools.

Einen guten Überblick bietet der Link: www.jeckle.de/umltools

Ein freies Tool gibt es unter: http://astade.tigris.org

Einige UML Tools haben einen Codegenerator eingebaut, der aus dem Klassendiagramm Sourcecode für Java, C++ oder C# erzeugen kann.