fh-prof. christian v. madritsch systems engineering informatik und programmieren 3...
TRANSCRIPT
FH-Prof. Christian V. Madritsch
Systems Engineering
www.cti.ac.at/rts
Informatik und Informatik und Programmieren 3Programmieren 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
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
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
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.
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.
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
11.04.23 8 [email protected]
VererbungsbeziehungVererbungsbeziehung
Vespa ist von Motorrad abgeleitet
11.04.23 9 [email protected]
Assoziationsbeziehung (i)Assoziationsbeziehung (i)
Die Vespa benutzt einen Motor, ...
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
11.04.23 11 [email protected]
AggregationsbeziehungAggregationsbeziehung
Aggregation ist gleichzusetzen mit Assoziation by reference
A B
1..*
A beinhaltet 1 bis N B
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
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.
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?
11.04.23 15 [email protected]
Zustandsdiagramm Zustandsdiagramm (State Diagram)(State Diagram)
Zustandsdiagramme dienen der dynamischen Beschreibung eines Systems mittels Automaten
11.04.23 16 [email protected]
Komponentendiagramm Komponentendiagramm (Component Diagram)(Component Diagram)
Komponentendiagramme zeigen den physischen oder logischen Aufbau eines Systems. Dateien, Bibliotheken, DLLs, ...
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.
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.