Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

Forschungszentrum Informatik
der Universität Oldenburg
Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Phasen und ihre Workflows
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Ein Beispiel in Java.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
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.
Use Case Driven Software Development
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.
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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
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.
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.
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.
Projektmanagement Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Wasserfallmodel Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Programmiermethodik Übung 6 Methoden verstehen und entwerfen (erstmal ohne Computer)
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
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
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.
Programmiermethodik WS 2011/12 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1338)
Einführung in C EDV1 - 03C-Einführung.
Einführung in C EDV1 - 04C-Einführung.
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 Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Programmiervorkurs WS 2014/15 Methoden
Test-Driven Development
Programmiermethodik SS2011 © 2011 Albert Zündorf, University of Kassel 1 Programmentwurf: 1. Beispiel auf Anwendungsebene anschauen 2. Beispiel in Objektdiagrammen.
Das Entwurfsmuster Model-View-Controller
6. Story Driven Modeling Gliederung: Einführung
Test Summary: ein Fehler pro Tag Test First
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

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

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 2 StudyRight with Assignments

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 3 Herausforderungen: m allgemein(gültig)es Verhalten m Perspektivwechsel m Modellwahl m Lokalisierung / Zuschnitt der Funktionalitäten m Algorithmus konstruieren

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

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 5 Motivation: StudyRight

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 6 StudyRight with Assignments

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 7 Methodenentwurf: 1. Beispiel auf Anwendungsebene anschauen 2. Beispiel in Objektdiagrammen / Story Boards modellieren 3. "Dreisprung": 1. generellen Kontrollfluss auf Anwendungsebene skizzieren 2. generelles Verhalten auf Objektebene skizzieren 3. allgemeines Verhalten programmieren 4. programmiertes Verhalten am Ausgangsbeispiel testen 5. programmiertes Verhalten an alternativen Beispielen testen

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

9

10 Top Down / Bottom Up/ Jojo / Iterativ m Top Down: l erst komplexe Methoden entwerfen l dabei Hilfsmethoden erfinden l dann Hilfsmethoden mit Hilfshilfsmethoden bauen usw. m Bottom Up l Erst Hilfshilfsmethoden bauen l dann damit Hilfsmethoden bauen l dann damit die komplexen

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 11 Top Down / Bottom Up/ Jojo / Iterativ m Jojo l ein bischen von oben ein bischen von unten m Iterativ l irgendwo anfangen l möglichst früh ausführbare Teile bauen l möglichst früh einzelne komplexe Methoden bauen l möglichst früh testen und praktisch einsetzen

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel Test-First Prinzip Test First aus dem eXtreme Programming: 1. als erstes Test bauen 2. Methode realisieren bis Test läuft 3. noch ein Test zu der Methode 4. Methode verfeinern bis Test läuft 5. wenn noch ein Szenario vorstellbar gehe zu sonst fertig

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel Test-First Prinzip Warum Test-First: m effizienteres Debuggen l reproduzierbare Programmläufe l schnelle Testwiederholung ohne manuelle Eingaben m Design for Test: l bei nachträgliches Testen fehlen oft wichtige Zugriffe auf Interna l dadurch schwerer l und am Ende fehlt immer die Zeit zum Testen m Stabilität für iteratives Vorgehen l fertige Funktionalität geht nicht wieder verloren l Sicherheit bei Änderungen / Erweiterungen l Wartungsfehler werden sofort entdeckt

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel Test-First Prinzip Warum Test-First: m iteratives Vorgehen führt meist zu robuster Kernfunktionalität m frühe Kundendemo / -nutzung von Teilfunktionalität aber m neue Funktionalität erfordert oft Änderung an alten Methoden m dadurch oft Fehler in Teilen die schon mal funktioniert haben Gegenmaßnahme m umfangreiche, gezielte, vollautomatische Tests für die einzelnen Funktionalitäten Effekt m hohe Sicherheit bei Änderungen

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 15 JUnit Tests m JUnit Rahmenwerk für flexible automatische Tests m Stand-alone GUI oder in IDE integriert m alle Tests, Testgruppen oder einzelne Tests ausführbar m Testprotokolle m Kombination mit Coverage Tool interessant (später)

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 16 Aufbau eines JUnit Tests für OO Programm: 1. Objektstruktur bauen 2. Zielfunktionalität / -methode aufrufen 3. Ergebnis prüfen 4. nächste Methode aufrufen 5. Ergebnis prüfen 6. usw.

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 17 Beispielabläufe mit Objektdiagrammen

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 18 Grafische Tests mit Fujaba Story Boards Story Board Notation: m Folge von Activities m Start Activity erzeugt Objekte m Methodenaufrufe m «system step» l Kommentare m «actor step» l vergleicht Ist/Soll l stößt neue Schritte an Code Generierung: m JUnit Test m Startobjekte erzeugen m Startobjekte merken m Aufrufe m Situation vergleichen

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 19 Grafische Tests mit Fujaba Story Boards class Scencario1Test { public Person prinz; public Raum r; public Tuer t1; public void scenario1 () { prinz = new Person (); r = new Raum (); prinz.setIn (r); t1 = new Tuer (); r.tueren.add (t1); … prinz.sammle…(); assertEquals (prinz.getIn (), r); assertTrue(r.tueren.contains(t1)); invent = prinz.hat; assertTrue(invent.enthaelt.contains(g1)) ; …