Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Wasserfallmodel."—  Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Herunterladen ppt "Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Wasserfallmodel."

Ähnliche Präsentationen


Google-Anzeigen