Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.

Slides:



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

der Universität Oldenburg
Anwendungen des OODM auf die ADB / NDB
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Parser für CH3-Sprachen
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
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.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Objektorientierte Programmierung JDK-Klassenbibliothek
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
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.
3. Klassendiagramme in Java implementieren
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 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 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
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.
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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
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
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Programmiermethodik WS 2011/12 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1338)
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Verzweigung.
Brückenschaltung 1.
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.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
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
Programmiermethodik WS 2018/19 Prof. Albert Zündorf
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4. Implementierung des Datenmodells 5. Implementierung der Szenarios als JUnit Tests 6. Textuelle Algorithmen 7. Story Diagramme 8. Implementierung der Algorithmen

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 2 Motivation: Study-Right University Aufgabe: m Wegesuche Handicaps: m Motivationspunkte m Pro Credit eine Motivation m 214 Credits erreichen m Pflichtkurse m Modulabhängigkeiten m...

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 3 1. Textuelle Szenarios Start: Karli is in the math room. She has still 197 points motivation and she has already gained 17 credits 1. Karli moves to the modeling room. 2. Karli earns 29 credits and consumes 29 points of her motivation.

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 4 Objekte klassifizieren r4 topic = "exam" r3 topic = "stochastic" credits = 23 r2 topic = "calculus" credits = 20 r1 topic = "math" credits = 17 r8 topic = "algebra" credits = 35 r7 topic = "philosophy" credits = 32 r5 topic = "modeling" credits = 29 r6 topic = "modern arts" credits = 17 rwkarli motivation = 197 credits = 17

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 5 Objekte klassifizieren r4 : Room topic = "exam" credits = 0 r3 : Room topic = "stochastic" credits = 23 r2 : Room topic = "calculus" credits = 20 r1 : Room topic = "math" credits = 17 r8 : Room topic = "algebra" credits = 35 r7 : Room topic = "philosophy" credits = 32 r5 : Room topic = "modeling" credits = 29 r6 : Room topic = "modern arts" credits = 17 rw : Room topic = "real life" credits = 0 karli : Student motivation = 197 credits = 17

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 6 Klassen als Baupläne für Objekte in doors Room topic : String credits: Integer Student motivation : Integer credits: Integer

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

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 8 Implementierung: public class Room { } Room … Room r = new Room (); … r = new Room (); … :Room Struktur DatenVerhalten

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 9 Implementierung: public class Room { … public int credits; … } Room credits : Integer … if (r. credits <= 0) { r. credits = 12; } … :Room credits = 5 :Room credits = -1 Struktur DatenVerhalten

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 10 Implementierung: public class Room { public void teach (Student s) { … } … } Room teach (s :Student) … r.teach (s); … r.teach (s); … :Room credits = 8 :Student motivation = 50 :Room credits = 12 :Student motivation = 100 Struktur DatenVerhalten

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 11 Implementierung: public class Professor { Room in; } public class Room { Professor prof; } Professor prof 0..1 located in 0..1 … oldRoom = new Room (); … newRoom = new Room (); myProf = new Professor (); newRoom.topic = "history"; myProf.in = newRoom; newRoom.prof = myProf; … Room topic :String :Professor :Room topic = "modeling" Struktur DatenVerhalten :Room topic = "math"

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 12 Implementierung: public class Professor { Room in; } public class Room { Professor prof; } Professor prof 0..1 located in 0..1 … if (myProf.in != null) { profRoom = myProf.in; int profCredits = profRoom.credits; if (profCredits > 40) { System.out.println("this is a VIP prof"); … Room topic :String :Professor :Room topic = "modeling" Struktur DatenVerhalten :Room topic = "math" located

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 13 Implementierung: import java.util.*; public class University { Set rooms; } public class Room { University uni; } … u.rooms.add (r); r.uni = u; … u.rooms.add (r); r.uni = u;; … Struktur DatenVerhalten :Room credits = 8 :Room credits = 12 :University University uni 0..1 rooms rooms 0..n Room credits :Integer

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 14 Implementierung: … for (Room r : u.rooms ) { u.teaching = u.teaching + r.credits; } … Struktur DatenVerhalten :Raum kosten = 8 :Raum kosten = 12 :Person geld = 50 :Person geld = 100 in import java.util.*; public class University { Set rooms; } public class Room { University uni; } uni 0..1 rooms rooms 0..n Room credits :Integer University teaching :Integer

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 15

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 16 Syntax von Klassendiagrammen (UML) {sorted}

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 17 "Syntax" von Objektdiagrammen:

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 18

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 19

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 20