Wasserfallmodel Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

der Universität Oldenburg
Prüfung objektorientierter Programme -1
Phasen und ihre Workflows
Das „Vorgehensmodell“
Ausnahmen HS Merseburg (FH) WS 06/07.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
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.
Komponentenbasierter Taschenrechner mit CORBA
Das Test-Framework JUnit
Das Test-Framework JUnit
Rational Unified Process (RUP) - Definitionen
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
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 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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2008/09 m.
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
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 2007/08 m.
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.
Projektmanagement Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Teamorganisation: Versionsverwaltung
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Software Engineering I
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 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.
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 Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
DVG Klassen und Objekte
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Sommersemester 2012 m Prof.
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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Whitebox Testen mit JUnit
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Wasserfallmodell und Einzelbegriffe
Testtechniken-Praktikum WS 2005/06 1 Arbeiten mit JUnit Andreas Höfer Dr. Matthias Müller Mit Beiträgen von Johannes Link.
JUnit Grundkonzept Gruppe Markt. JUnit: Ziele Einfachheit: –Leicht erlernbare, bekannte Tools –Möglichst wenig Aufwand für die Implementierung von Testfällen.
Rational Unified Process
TDD mit MSTest Stefan Lieser Web:
Test Summary: ein Fehler pro Tag Test First
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools
 Präsentation transkript:

Wasserfallmodel Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Machbarkeitsstudie Auswählen des Produktes Voruntersuchung des Produkts Durchführbarkeitsuntersuchung Prüfen der ökonomischen Durchführbarkeit Ergebnis: „Stop or go“ Entscheidung Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Anforderungsdefinition Konzepterarbeitung mit Laien / Kunden Verständliche Szenarios Klärung der Funktionalität Nichtfunktionale Anforderungen Anforderungsdokumentation Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Analyse Grob-Entwurf in der „Problem-Domain“ Erfassen der Domain (Business-Model) Konzeption neuer (komplexer) Funktionalität Konzeption von (Architektur) Umbauten Architekturkonzepte Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Design Fein-Entwurf in der „Solution-Domain“ Arbeitsvorlage für den Entwickler Konzeption neuer (komplexer) Funktionalität Konzeption von (Architektur) Umbauten Architekturkonzepte Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Implementierung hier wird „gehackt“ Entwickler orientieren sich am Design-Dokument Tests Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Wartung Auslieferung Pflege vor Ort Bugfixing Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Probleme mit dem Wasserfall Alle Anforderungen zuerst ersten Phasen werden teuer Kunde bekommt nicht das, was er will Probleme werden spät entdeckt  Phasen werden Arbeitsschritte iterativer Durchlauf prototypisch usecase / scenario – driven Test-first Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Kostenschätzung Resultat aus Gruppendiskussion Pi mal Daumen Ergebnis: ca. ein Semester Modul und Phasen-basiert Schätzgrößen LOC, Seiten  Zeit Einzelschätzungen + Gesamtsumme Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Abgaben Abgaben per CVS setzen der Tags gemäß Aufgabenstellung v3 vor der Deadline in eclipse: Rechtsklick  Team  Tag as Version Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Organisatorische Hinweise Im OKA anmelden - bis Anfang Dezember, Veranstaltung „Softwaretechnik“ Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Testen - Motivation Testen ist Ausprobieren? GUI ‚durchklicken‘ System.out.println(…) Wer hat das kaputt gemacht? don't touch it if it works! Je nach „Qualität“ geht bis zu 50% der Arbeitszeit Debugging und Fehlersuche Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Unit Tests Testen eine ‚Einheit‘: Klasse Modul Komponente Werden programmiert Prüfen den Funktionsumfang Rufen nur die öffentliche Schnittstelle auf Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Vorteile von Unit Testing Tests sind: Reproduzierbar (von anderen) Automatisierbar und selbst auswertend Dokumentierend und Anwendungsbeispiel Tests decken Designfehler frühzeitig auf Der entstehende Code ist: Modular und einfach Änderungssicher Qualitativ hochwertiger => Weniger Fehler, Debugging und Fehlersuche Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Testen Ziel: Fehler finden IST-SOLL Vergleich z.B. mit JUnit Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Vorgehen beim Testen Test vor der Implementierung: Funktionalität abprüfen Alle möglichen Fehlerfälle prüfen aber keine Trivialitäten So wenig wie möglich implementieren Genau soviel, dass der Test erfolgreich ist Umfang vom Testcode: 15-50% Anteil am Gesamtcode Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Testgetriebene Entwicklung Funktionale Anforderung Test anlegen Schnittstelle anlegen Test implementieren Funktion implementieren Eine Iteration Zeit Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Tests für CoreWars Verwenden Junit 3.8 (siehe Beispiele) möglichst früh Tests schreiben, (Test-first) vor oder während der Implementierung Hinterher macht das keinen Spaß! Achtung: gemeinsame Deadline für Tests und Implementierung! Szenarien-basiert: Test „spielt“ ein Szenario durch Prüfen der Ergebnisse Vorgehen siehe Vorlesung Programmiermethodik Debugger (Breakpoints, Variables View...) nutzen! Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Tests für die 8 neuen Befehle Siehe existierende Tests in CUTest.java Selbes Schema: Instruktion(en) erzeugen Queue mit Program Counter befüllen Aktuelle Instruktion ausführen Sind die richtigen Änderungen im Core? Stimmt der neue Program Counter? Testet die Funktion der Opcodes Mindestens eine Test-Methode pro Opcode Und auch die Fehlerfälle Division durch 0 ... Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

JUnit Framework (1) Freies Open Source Framework http://www.junit.org/ Verwendet: 3.8.1, aktuell: 4.4 Autoren: Kent Beck & Erich Gamma Grundeinstellung: Das Feature funktioniert erst … … wenn ein Test geschrieben wurde Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

JUnit Framework (2) Tests in separaten Test-Klassen, aber im gleichen Paket Test-Methoden Instanzieren von Objekten Prüfung des Objektzustandes vor und nach Methodenaufrufen Assertion-Methoden Prüfung von Fehlerbehandlung (Exceptions) Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

JUnit Framework (3) Basisklassen für Test-Klassen: junit.framework.TestCase Stellt Assert-Methoden bereit TestRunner lassen Tests ablaufen: Eine Methode einer Test-Klasse Eine Test-Klasse komplett Mehrere Test-Klassen as TestSuite Grafisch oder Textmodus Oder direkt in Eclipse „Run As -> JUnit Test“ Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Aufbau einer Test-Klasse Tests werden thematisch in einer Klasse gesammelt: … extends TestCase … Jeder Test ist eine Methode: public void test<Name> throws Exception { … } Vor und nach jedem Test: public void setUp() { … } Objektstruktur aufbauen public void tearDown() { … } - aufräumen Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Assertion-Methoden Ausdrücke, die wahr sein müssen, sonst Abbruch der aktuellen Test-Methode assertEquals(soll, ist) Object, primitive Typen assertTrue(boolean) assert[Not]Null(Object), assert[Not]Same(obj1, obj2) Bei Fehlschlag oder fail(): Wirft junit.framework.AssertionFailedError Alle Methoden auch mit ‚String message‘ Parameter Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Testen - Vorgehen Erster Hinweis: Fehlermeldung! Stacktrace Debugging - Einkreisen eines Fehlers Breakpoints an „spannenden“ Stellen setzen Variablenbelegung / Objekstruktur überprüfen Methode schrittweise ausführen in interessante Methoden reinsteppen Tip: Fehler gefunden => reproduzierenden Test schreiben Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University