UML Eine kurze Einführung

Ähnliche Dokumente
Abschnitt 15: Unified Modeling Language (UML)

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

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

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

Vorlesung Programmieren

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

4. AuD Tafelübung T-C3

Javakurs für Anfänger

Algorithmen und Datenstrukturen 07

Software Engineering Klassendiagramme Einführung

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

Software Engineering Klassendiagramme weiterführende Konzepte

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

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

Kurzeinführung in UML

Objektorientierte Modellierung (1)

Theorie zu Übung 8 Implementierung in Java

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014

Klassendiagramm. (class diagram)

Java Einführung Objektorientierte Grundkonzepte

Software- und Systementwicklung

3. Konzepte der objektorientierten Programmierung

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Einführung in die Informatik

Vorlesung "Software-Engineering"

Unified Modeling Language (UML)

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

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Code-Erzeugung aus UML-Klassendiagrammen

3 Objektorientierte Konzepte in Java

Repetitorium Informatik (Java)

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Von der UML nach C++

7. Analyse-Phase: Datenmodellierung Software Engineering

Teil V. Generics und Kollektionen in Java

WhiteStarUML Tutorial

Methodische objektorientierte Softwareentwicklung

Algorithmen und Datenstrukturen

Programmieren in Java

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Kapitel 6. Vererbung

Einstieg in die Informatik mit Java

Kapitel 6. Vererbung

Unified Modeling Language (UML )

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Software Engineering Klassendiagramme Assoziationen

Kapitel 6. Vererbung

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Softwarepraktikum: Enigma

Die abstrakte Syntax der Unified Modeling Language

UML 2.0 Das umfassende Handbuch

Einführung in UML. Überblick. 1. Was ist UML??? 2. Diagrammtypen. 3. UML Software. Was ist ein Modell??? UML Geschichte,...

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

C# im Vergleich zu Java

8. Generics Grundlagen der Programmierung 1 (Java)

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

Objektorientierte und Funktionale Programmierung SS 2014

Arbeitsblätter zu Teil I des Praktikums

Analyse und Modellierung von Informationssystemen

3 Objektorientierte Konzepte in Java

Große Übung Praktische Informatik 1

Grundbegriffe der Objektorientierung

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Folge 18 - Vererbung

Softwaretechnik Unified Modeling Language (UML)

Projekt AGB-10 Fremdprojektanalyse

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Oracle JDeveloper 10 g

Einführung in die Informatik II

Bei Sitzungen im Team oder mit dem Kunden erleichtert eine grafische Darstellung des Software-Systems die Kommunikation.

Objektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6

UML. Weiteres Vorgehen im Projekt

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Softwaretechnik für den Entwurf

Gliederung des Vortrages

Teil 2: OOP und JAVA (Vorlesung 11)

Orientierte Modellierung mit der Unified Modeling Language

Objektorientierte Softwareentwicklung

Objektorientierter Softwareentwurf mit UML. Grundlagen. Ricardo Hernández Garcia. 3. Ausgabe, November 2012 PGOS

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

SWE5 Übungen zu Software-Engineering

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

J.2 Objektorientiertes Modellieren mit UML

5. Tutorium zu Programmieren

Dr. Beatrice Amrhein. April 13

Klassenbeziehungen & Vererbung

Transkript:

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

Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle Themen Generische Programmierung Java Collection-Framework Streams Unit-Tests Entwurfsmuster - Eine Einführung GUI-Programmierung Java Virtual Machine Ausblick Allgemeine Grundlagen Objekte und Klassen Klassen, Objekte und Methoden in Java String-Klasse Wrapper-Klassen UML Eine kurze Einführung Programmiermethodik - Objektorientierung 2

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 3

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 4

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 5

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

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

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 8

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 9

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 10

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 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 -c urrentb 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. Ganzes ist verantwortlich für die Erzeugung der Teile. Beispiele Company 1 has 1..* Div ision Aggregation Inv oice 1 has 1..* Inv oice line item Komposition Rechnungsposition existiert nur mit Programmiermethodik - Objektorientierung der Rechnung 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