3. Klassendiagramme in Java implementieren

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Imperative Programmierung
Programmierung II Prof. Dr. Michael Löwe
Einführung in die Programmierung Ausführbare Klassen
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Automatisches Testen und Bewerten von Java-Klassen
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS 07 Prof. Albert Zündorf
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS 09 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339 im Altbau)
3. Analyse Gliederung: Einführung Anforderungsdefinition
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 6. Tipps, Tricks, Idiome Gliederung: 1. Einführung 2. Anforderungsdefinition 3.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 Objektorientierte Vererbung Student erbt von Person: extensional: Menge der Studenten.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Objektorientierte Vererbung
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Programmiermethodik Übung 6 Methoden verstehen und entwerfen.
Programmiermethodik Übung 6 Methoden verstehen und entwerfen (erstmal ohne Computer)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS 10 Prof. Albert Zündorf
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Programmiermethodik WS 2013/14 Prof. Albert Zündorf
Programmiermethodik WS 2011/12 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1338)
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Grundkonzepte Java - Klassendefinition
Unified Modeling Language Repetition / Einführung zu UML
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1.3 Klassen und Beziehungen
Software-Technik: (fortgeschrittene) Klassendiagramme
Die Klasse String und ihre Methoden
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Programmiermethodik SS2011 © 2011 Albert Zündorf, University of Kassel 1 Programmentwurf: 1. Beispiel auf Anwendungsebene anschauen 2. Beispiel in Objektdiagrammen.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
6. Story Driven Modeling Gliederung: Einführung
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Die Klasse Vielfrass in Java
Programmiermethodik WS 2018/19 Prof. Albert Zündorf
1. Die rekursive Datenstruktur Liste 1
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

3. Klassendiagramme in Java implementieren Gliederung: Einführung Objektdiagramme zur Analyse von Beispielen Klassendiagramme in Java implementieren Methodenentwurf Test-First Prinzip Story Driven Modeling Zusammenfassung Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Motivation: rettet Prinz(essin) Ada Aufgabe: Wegesuche Handicaps: Räume kosten genaue Geldmenge ausgeben versteckte Geschenke Fallen . . . Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Alternative Modellierungen p1 :Person name = "Ada" in r2 :Raum kosten = 0 s7 :Schluessel hat t3 :Tuer locked = true in hat hat hat r4 :Raum kosten = 12 t5 :Tuer locked = false r6 :Raum kosten = 10 Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Klassen als Baupläne für Objekte hat Person name : String geld : Integer Schluessel in in oeffnet hat in Geschenk name : String Raum kosten : Integer Tuer locked : Boolean Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Klassendiagramme "Syntax" von Klassendiagrammen: kommt gleich Semantik von Klassendiagrammen aus extensionaler Sicht: Menge aller "gültigen" Objektdiagramme / Momentaufnahmen und Szenarios (siehe Verhaltensdiagramme) ein Objektdiagramm / eine Momentaufnahme ist "gültig" wenn: alle verwendeten Klassen sind deklariert alle benutzten Attribute sind deklariert und werden typkonform verwendet für jeden Link gibt es eine Assoziation zwischen den entsprechenden Klassen die Kardinialiätsangaben der Assoziationen werden nicht verletzt . . . Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: public class Raum { } Raum … Raum r = new Raum (); … Struktur Daten Verhalten … Raum r = new Raum (); … r = new Raum (); … :Raum :Raum Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: public class Raum { … Raum public int kosten; … } kosten : Integer Struktur Daten Verhalten … if (r.kosten <= 0) { r.kosten = 12; } :Raum kosten = 5 :Raum kosten = -1 Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: public class Raum { public void kassieren (Person p) { … } … } Raum kassieren (p:Person) Struktur Daten Verhalten :Raum kosten = 8 :Raum kosten = 12 … r.kassieren (p); :Person geld = 50 :Person geld = 100 Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: Schluessel Tuer locked :Boolean public class Schluessel { Tuer tuer; } public class Tuer { Schluessel oeffner; Schluessel oeffner 0..1 oeffnet tuer 0..1 Tuer locked :Boolean Struktur Daten Verhalten … t = new Tuer (); … t = new Tuer (); s = new Schluessel (); t.locked = true; s.tuer = t; t.oeffner = s; … :Schluessel :Tuer locked = false :Tuer locked = false Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: Schluessel Tuer locked :Boolean public class Schluessel { Tuer tuer; } public class Tuer { Schluessel oeffner; Schluessel oeffner 0..1 oeffnet tuer 0..1 Tuer locked :Boolean Struktur Daten Verhalten … if (t.locked) { Schluessel s = t.hat; if (s.besitzer == p) { … :Schluessel :Tuer locked = false oeffnet :Tuer locked = false Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: Person Raum … p.in = r; r.gaeste.add (p); … public class Person { Raum in; } import java.util.*; public class Raum { List gaeste; } Person gaeste 0..n in in 0..1 Raum Struktur Daten Verhalten … p.in = r; r.gaeste.add (p); … p.in = r; r.gaeste.add (p); … :Person geld = 50 geld = 100 :Raum kosten = 8 kosten = 12 Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Implementierung: Person Raum public class Person { Raum in; } import java.util.*; public class Raum { List gaeste; } Person gaeste 0..n in in 0..1 Raum Struktur Daten Verhalten … for (Person p : r.gaeste ) { p.geld = p.geld – r.kosten; } … :Person geld = 50 geld = 100 :Raum kosten = 8 kosten = 12 Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Syntax von Klassendiagrammen (UML) Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

"Syntax" von Objektdiagrammen: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel