UML Eine kurze Einführung

Ähnliche Dokumente
UML Eine kurze Einführung

Algorithmen und Datenstrukturen 06

7. Objektorientierung. Informatik II für Verkehrsingenieure

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Vorlesung Programmieren

Objektorientierte Modellierung

Softwarearchitektur, UML, Design Patterns und Unit Tests

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

Einführung in die OOP mit Java

Objektorientierte Analyse (OOA) Strukturmodellierung

UML -Klassendiagramme

UML (Unified Modelling Language) von Christian Bartl

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Von der UML nach C++

Vorlesung Software Engineering I

Abschnitt 15: Unified Modeling Language (UML)

Unified Modelling Language

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Analyse und Modellierung von Informationssystemen

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Javakurs für Anfänger

Analyse und Design mit U ML 2.3

4. AuD Tafelübung T-C3

Kurzeinführung in UML

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Software Engineering. 6. Klassendiagramme. Franz-Josef Elmer, Universität Basel, HS 2012

Einführung in die Programmierung

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Software Entwicklung 1

Modellierungstipps für die Anwendungsfallmodellierung

Geoinformation I Datenmodellierung

10. Programmierungs-Phase: Objektorientierung Software Engineering

Unified Modeling Language 2

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Analyse und Design mituml2

Informatik I - Programmierung Globalübung Objektorientierung. Objektorientierung Konzepte & Notationen

Objektorientierte Modellierung (1)

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

NACHRICHTENTECHNISCHER SYSTEME

Probeklausur 2. Name: Vorname: Matrikelnr.: Datum:

Ein einfaches Adventure-Game für die Stufe EF, entwickelt von U. Helmich, inspiriert durch viele bekannte Spiele.

Klassendiagramm. (class diagram)

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Analyse und Design mituml2.1

Programmieren in Java

IT kompakt. UML 2 kompakt. mit Checklisten. Bearbeitet von Heide Balzert

SE Besprechung. Übung 1 Programmverständnis, Dokumentation

Philipp Güttler Objektorientierung und komplexe Datentypen

Java Einführung Objektorientierte Grundkonzepte

Sommersemester Implementierung I: Struktur

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Objektorientierung. Marc Satkowski 20. November C# Kurs

3. Objektorientierte Analyse

Objektorientierte Programmierung III

HdM-Stuttgart, FB1, MI Probeklausur 1, Informatik 4 Prof. Dr. Edmund Ihler. Fachhochschule Stuttgart Hochschule der Medien.

Datenstrukturen. Ziele

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben?

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Techniken der Projektentwicklungen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Software- und Systementwicklung

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Software Engineering Klassendiagramme Einführung

Einführung Propra Softwareentwicklung im 21. Jahrhundert. Jörg Niere Raum H-C 8304 Tel: 0271/

2.4 Datenabstraktion und Objektorientierung Datenabstraktion in Programmiersprachen

Algorithmen und Datenstrukturen

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Die Unified Modeling Language (UML)

Programmierung Nachklausurtutorium

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die objektorientierte Programmierung

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik

Software Engineering Klassendiagramme weiterführende Konzepte

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

4. Mentorium. UML-Modellierung (Lösungshinweise)

Beziehungen zwischen Objekten

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Assoziationen in Java

Theorie zu Übung 8 Implementierung in Java

Modellierung und Programmierung 1

Algorithmen und Datenstrukturen 07

Transkript:

UML Eine kurze Einführung Programmiermethodik Eva Zangerle Universität Innsbruck

Modell und Diagramm Ein Modell stellt Abstraktion eines Realitätsausschnitts dar. Um Informationen verständlicher darzustellen Analog zum Erstellen von Bauplänen von Gebäuden Um essentielle Systemaspekte aufzuzeigen Zur Kommunikation Mit Projektmitarbeitern Mit Kunden Um komplexe Architekturen darstellen zu können Ein Diagramm ist die grafische Repräsentation eines Modells. Sicht Modell Sicht Realitätsausschnitt Programmiermethodik - Objektorientierung 2

Unified Modeling Language (UML) Die Unified Modeling Language (UML) ist eine standardisierte ausdruckstarke Modellierungssprache. Mit Hilfe der UML können Softwaresysteme besser entworfen, analysiert und dokumentiert werden. Begriff Unified bedeutet Unterstützung des gesamten Entwicklungsprozesses. Unabhängigkeit von Entwicklungswerkzeugen, sowie Programmiersprachen oder auch Anwendungsbereichen. Die UML ist aber nicht ein Allheilmittel und vollständig, ein vollständiger Ersatz für eine Textbeschreibung, eine Methode oder Vorgehensmodell. Programmiermethodik - Objektorientierung 3

Diagrammarten (1) Etliche unterschiedliche Diagrammarten Klassendiagramm (in dieser Vorlesung) Beschreibt den strukturellen Aspekt (Klassen, Interfaces, Beziehungen). Sequenzdiagramm (in der Vorlesung über Entwurfsmuster) Beschreibt komplexe Interaktionen zwischen Objekten in bestimmten Rollen. Beschreibt die zeitliche Abfolge dieser Interaktionen. viele mehr (z.b. Business Prozesse, Use Case-Diagramme, etc.) Programmiermethodik - Objektorientierung 4

Diagrammarten (2) Grafik übernommen von http://de.wikipedia.org/wiki/unified_modeling_language Programmiermethodik - Objektorientierung 5

Notation für Klassen (Übersicht) Klasse Sprachkonzept Klasse mit Abschnitten Notation Name Name Attribut1 Attribut2 Operation1 Operation2 Programmiermethodik - Objektorientierung 6

Klassen (Attribute) Sichtbarkeit für Attribute und Operationen + = public # = protected - = private ~ = default Instanzattribute oder Klassenattribute Klassenattribute werden unterstrichen Zusätzliche Eigenschaften angeben <<readonly>> <<ordered>> <<unique>> <<redefines <Operationsname>>> Programmiermethodik - Objektorientierung 7

Klassen (Multiplizität) Multiplizität von Attributen Spezifiziert wie viele Werte ein Attribut aufnehmen kann. Attribut:Typ[a..b] a..b mindestens a.. höchstens b a und b sind natürliche Zahlen * statt b bedeutet beliebig viele Beispiele 1..1 genau ein (entspricht 1) 0..1 Null oder ein 0..* beliebig viele (entspricht *) 1..* beliebig viele aber zumindest ein Programmiermethodik - Objektorientierung 8

Beispiele -max_size : int -top : int -stackarr : int [0..*] S tack <<constructor>>+s tack( max_size : int ) +push( element : int ) +pop() : int +ise mpty() : boolean +length() : int Alle Attribute sind privat User -name : S tring [1] -key : P asswo rd [1..*] User kann mehrere Passwörter haben Bereiche (hier Operationen) können auch leer bleiben Alle Operationen sind öffentlich <<enumerat ion>> RED B LUE GRE EN B LACK Color Datentypen oder Enumerations Programmiermethodik - Objektorientierung 9

Klassen (Operationen) Obligate Angabe einer (eventuell leeren) Parameterliste für jede Operation. Für jeden Parameter muss zumindest der Name und sein Typ angegeben werden (auch Multiplizität). Auch Rückgabetyp möglich (wenn nichts angegeben void). Unterstreichen kennzeichnet Klassenoperationen. Sichtbarkeit wie bei Attributen Programmiermethodik - Objektorientierung 10

Klassen (Operationen) Zusätzliche Eigenschaften <<abstract>> (oder kursiv geschrieben) <<leaf>> (wenn final) <<raisedexception>> (wie throws) <<enumeration>> <<constructor>> Hinweise auf Algorithmen können in einer Notiz angefügt werden. Programmiermethodik - Objektorientierung 11

Assoziation Grundform (binäre Assoziation) A B Zusätzliche Angaben Benennung In der Mitte der Kante (Anzeigen der Leserichtung durch Pfeil möglich) Rollen (an den Enden der Assoziation, spezifische Funktion angeben) Multiplizitäten (an den Enden, wie bei Attributen) Angabe von Eigenschaften {ordered} {unique} Navigationsangaben Zulässige Navigationsrichtung (durch Pfeil) Keine Navigation erlaubt (durch X) Programmiermethodik - Objektorientierung 12

Beispiele User has P assword User has * -key P assword User -owner 1 has * -key P assword Reflexive Assoziation S ortedintlist <<c ons truc tor>>+s ortedintlis t() +insert( element : int ) +print() * -firs t 0..1 Node -data : int <<constructor>>+node( data : int ) * -next 0..1 Programmiermethodik - Objektorientierung 13

Beispiel (Java Umsetzung) Borr ower -currentb orrower 0..1 borrows -borrowedbooks 5 Book public class Borrower{ private Book[] borrowedbooks; private int numbooks;... public Borrower(){ numbooks = 0; borrowedbooks = new Book[5]; } public class Book{ private Borrower currentborrower;... public void setborrower(borrower bw){ currentborrower = bw; } } } public void borrowbook(book b){... borrowedbooks[numbooks] = b; numbooks++; b.setborrower( this );... } Programmiermethodik - Objektorientierung 15

Aggregation Ist eine spezielle Assoziation (Teile-Ganzes-Beziehung). Komposition ist eine speziellere (strengere) Form der Aggregation mit folgenden Einschränkungen. Ein Teil darf Kompositionsteil höchstens eines Ganzen sein. Multiplizität 1 bedeutet, dass das Teil nur solange existiert wie sein Ganzes. Beispiele Company 1 has 1..* Div ision Aggregation Inv oice 1 has 1..* Inv oice line item Komposition Rechnungsposition existiert nur mit der Rechnung Programmiermethodik - Objektorientierung 16

Beispiel (Java Umsetzung) Car has -wheels 4 W heel Car has -fixedwheels 4 W heel public class Car { private Wheel[] wheels;... public Car(Wheel r1, Wheel r2, ) { wheels = new Wheel[4]; wheels[0] = r1; wheels[1] = r2; } } public class Car { private Wheel[] fixedwheels;... public Car(){ fixedwheels = new Wheel[4]; fixedwheels [0] = new Wheel(); fixedwheels [1] = new Wheel(); }... } Programmiermethodik - Objektorientierung 17

Vererbung, Schnittstellen Programmiermethodik - Objektorientierung 18

Programmiermethodik - Objektorientierung 19