Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.

Slides:



Advertisements
Ähnliche Präsentationen
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Advertisements

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.
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2006 Albert Zündorf, Software Engineering.
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.
Use Case Driven Software Development
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.
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
Reservierungs Datenbank
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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Programmiermethodik SS 06 Prof. Albert Zündorf
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Objektorientierte Vererbung
Tätigkeiten bei der Softwareentwicklung
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
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.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Projektmanagement Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Wasserfallmodel Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
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)
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2010/11 m.
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)
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Design Pattern 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.
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.
Zeitplanerstellung ACHTUNG:
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 Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
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.
Petra Mutzel: DAP2, Universität Dortmund SS Rotationen (1) b(5)=2 b(7)=0 b(7)=1 5 ist unbalanciert5, 7, 8 sind balanciert b(5)=0 Rotation nach.
Programmiermethodik SS2011 © 2011 Albert Zündorf, University of Kassel 1 Programmentwurf: 1. Beispiel auf Anwendungsebene anschauen 2. Beispiel in Objektdiagrammen.
Das Internet als 5. Gewalt Benjamin Halbrock
6. Story Driven Modeling Gliederung: Einführung
0 – Nichts und doch so wichtig!
Programmiermethodik WS 2018/19 Prof. Albert Zündorf
Test Summary: ein Fehler pro Tag Test First
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design <== l Klassendiagramme l Story Diagramme l Zetteltests 5. Validierung 6. Zusammenfassung

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 2 Implementierung von Objektdiagrammen Ziel: Programm m Daten m Verhalten Für alle Objekte m Schablonen für Objekte m Zugriff auf Attribute m Bereitstellung von Links Klassen m gleichartige Objekte gemeinsame Klassen Step 2: Der Spielstein macht einen Schritt. Zwei bleiben. tom theDie s1 f3 f4 :Field v == 3 stones at next die «destroy» «create» 1: moveOneStep() 2: steps := 2

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 3 Projekthandbuch Beispiel 5. Design (Produktdaten): Klassendiagramm(e) des Projekts: m Klassen für alle Objektarten m Attributdeklarationen m Assoziationen m Methodendeklarationen ….. 5. Design (Produktdaten)

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 4 Projekthandbuch Beispiel Systematische Ableitung aus Story Boards: l ordne jedem Objekt vorhandenen oder neuen Typ zu. l für jede Attributverwendung Deklaration in entsprechender Klasse l für jeden Link entsprechende Assoziation l für jede Nachricht entsprechende Methodendeklaration tom theDie s1 f3 f4 :Field v == 3 stones at next die «destroy» «create»

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 5 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 SS2006 © 2005 Albert Zündorf, University of Kassel 6 Klassendiagramme aus Implementierungssicht: public class Student { public void removeYou() { // kill all links } } Student Student s1 = new Student; … s1.removeYou();

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 7 Klassendiagramme aus Implementierungssicht: public class Student { … private String haarfarbe; public String getHaarfarbe() { return this.haarfarbe; } public void setHaarfarbe(String value){ this.haarfarbe = value; } … } Student haarfarbe:String String f = s1.getHaarFarbe(); … s1.setHaarFarbe(green);

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 8 Klassendiagramme aus Implementierungssicht: public class Student { … public void lese(String buch){ // todo } … } Student lese(String buch) … s1.lese(Harry Potter); …

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 9 Klassendiagramme aus Implementierungssicht: public class Student { private Sitz platz; public Sitz getPlatz() { return this.platz; } public void setPlatz(Sitz value){ if (this.platz != value) { if (this.platz != null) { Sitz oldPlatz = this.platz; this.platz = null; oldPlatz.setBesetzer(null); } this.platz = value; if (this.platz != null) { this.platz.setBesetzer (this); }}}} Student Sitz besetzer 0..1 hat platz 0..1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 10 Klassendiagramme aus Implementierungssicht: public class Sitz { private Student besetzer; public Student getBesetzer() { return this.besetzer; } public void setBesetzer (Student value){ if (this.besetzer != value) { if (this.besetzer != null) { Sitz oldBesetzer = this.besetzer; this.besetzer = null; oldBesetzer.setPlatz(null); } this.besetzer = value; if (this.besetzer != null) { this.besetzer.setPlatz (this); }}}} Student Sitz besetzer 0..1 hat platz 0..1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 11 Klassendiagramme aus Implementierungssicht: Student Sitz besetzer 0..1 hat platz 0..1 … Sitz pos = s1.getPlatz(); … s1.setPlatz (sitz2); …

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 12 Klassendiagramme aus Implementierungssicht: Prof Tafel user 0..1 nutzt boards 0..n public class Prof { private HashSet boards = new FHashSet(); public boolean hasInBoards(Tafel value) { return this.boards.contains (value); } public int sizeOfBoards () { return this.boards.size(); } public Iterator iteratorOfBoards () { return this.boards.iterator(); } }

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 13 Klassendiagramme aus Implementierungssicht: Prof Tafel user 0..1 nutzt boards 0..n boolean flag = albert.hasInBoards (linkeTafel); int no = albert.sizeOfBoards(); Iterator iter = albert.iteratorOfBoards(); while (iter.hasNext()) { Tafel current = (Tafel) iter.next(); }

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 14 Klassendiagramme aus Implementierungssicht: Prof Tafel user 0..1 nutzt boards 0..n public class Prof { private HashSet boards = new FHashSet(); … public void addToBoards (Tafel value) { if ( value != null && ! this.hasInBoards (value)) { this.boards.put (value); value.setUser (this); }} public void removeFromBoards (Tafel value) { if (value != null && this.hasInBoards (value) { this.boards.remove (value); value.setUser (null); }} }

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 15 Klassendiagramme aus Implementierungssicht: Prof Tafel user 0..1 nutzt boards 0..n … albert.addToBoards (tafel1); albert.addToBoards (tafel2); albert.removeFromBoards (tafel0); …

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 16