Fachgebiet Software Engineering Übersicht © 23.01.2014 Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.

Slides:



Advertisements
Ähnliche Präsentationen
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Advertisements

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.
Review-Techniken GI Regionalgruppe Nordhessen Peter Rösler Softlab GmbH 1 Merkmale 1- 5 von Fagans Inspektionsmethode 1.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
Reservierungs Datenbank
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
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.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan:
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.
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.
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 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.
Schätzverfahren: Phasenbasierte Vergleichsschätzung
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.
Vorgehensmodelle: Wasserfallmodell
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.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
M A X - P L A N C K - G E S E L L S C H A F T Bericht des Partnerinstituts Sabine Krott 1.0 Pilotentreffen im Harnack-Haus, 8. Juni 2006 Distribution:
Google App Engine Microsoft Windows Azure
Tutorial im Rahmen des Software(technik)praktikums
Stellen Sie sich vor: .....kurz vor der Einführung, ein neues Produktes / eine neue Software.....
Automated Software Testing
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Visual Studio 2012 Pre-Launch Event Neno Loje Berater & MVP für Visual Studio ALM, TFS & Scrum, Hansjörg Scherer Microsoft Switzerland.
2 Software Management SCRUM, Project Management, Quality Management, Business Analysis Innovation and Technology Management, Coaching, R&D Processes Quality.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
VORGEHENSMODELLE.
PM Camp Rhein-Main 28. und 29. Juni 2013 Facilitated by Tilman MoserCC-BY-3.0 Alexey Krivitsky
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Basel, September 2, 2008 Work Stream Template: ODM.
Agile ALM for Plex/2E CM MatchPoint ALM. Themen Agenda CM MatchPoint ALM Übersicht CM MatchPoint 5.2 Web und Mobile Entwicklung Agile ALM / DevOps CM.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Arbeiten in einem agilen Team mit VS & TFS 11
XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
Programmiermethodik SS2011 © 2011 Albert Zündorf, University of Kassel 1 Programmentwurf: 1. Beispiel auf Anwendungsebene anschauen 2. Beispiel in Objektdiagrammen.
SCRUM Informatik IF1 A. Neck.
EFFORTMANAGEMENT Jan Gerber Simon Hofmann Lukas Nonnenmacher.
EFFORTMANAGEMENT Jan Gerber Simon Hofmann Lukas Nonnenmacher.
Hero Quest Verwaltungstool -Projektmanagement Projektplanung für Softwareprojekte: KLips 2.0 Dozent: Prof. Dr. phil. Manfred Thaller Referent: Alexander.
Erfahrungen bei der Einführung agiler Methoden im JBF-Team
Test Summary: ein Fehler pro Tag Test First
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

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

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation

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

Features / User Stories m Baustein übergreifende Funktionalität m realisiert (Teil-) Anforderung m Use Case + GUI Entwurf + textuelle Szenarien + Objektdiagramme (Story Boards) m automatischer JUnit Test m Implementierung

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

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Scrum m Product Backlog: priorisierte Features / User Stories m Release Backlog: Unterteilung des ProductBacklog m Sprint Backlog: Features des Sprints mit l Status l geschätzter Aufwand l Bearbeiter l Restaufwand l Kunagi Example

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Scrum Roles: m Product Owner: l lebende Anforderungsdoku l Onsite Customer l Priorisierung der Features l Reviews der Entwürfe l Abnahme der Implementierung l Alpha Tester

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Scrum Roles: m Scrum Master: l Project Manager l Scrum Meetings l Burndown Charts l provide Tools, Computers, Room, Coffee, … l manage Risks l manage Failures l Parties l … m The Team:

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Scrum Roles: m The Team: l do the work l story boards / user stories l tests l implementation l bug tracking l bug killing l reviews l testing l debugging l documentation

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Was Scrum verschweigt: m Story Boards müssen harmonisiert werden m Klassendiagramme / Architektur m Metaphern / gemeinsame Vision m Bug Sqash Weeks m Libraries / Frameworks

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

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

Features / User Stories m Baustein übergreifende Funktionalität m realisiert (Teil-) Anforderung m User Story + GUI Entwurf + textuelle Szenarien (+ Objektdiagramme (Story Boards) ) m automatische JUnit Test m Implementierung

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Testen m (Whitebox) Glassbox-Test l anhand der Implementierung l Normal- und Grenzfälle aus Bedingungen l Überdeckungskriterien m Blackbox-Test l mit Hilfe der Spezifikation (ohne die Implementierung zu kennen) l Normalfälle aus der Spezifikation l Sonderfälle der Spezifikation l Unzulässige Eingaben der Spezifikation

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University White-Box-Testing m C0-Überdeckung (Anweisungs- und Bedingungsüberdeckung) l Beim Test muss jedes Statement und jeder Ausdruck mindestens einmal ausgewertet werden l Code Coverage Tools können das automatisch messen (Ergebnis gehört ins Testprotokoll) (Für Java z.B. EMMA) l manchmal schwer zu erfüllen z.B. try {... } catch (HeapOverflow e) { xxx () } l findet nicht alles: m (x, y) { int z = 0; if (x > 0) { z = 1; } y = x / z; // <== ERROR: Division by zero... l Der Aufruf m(1,0) erreicht C0-Überdeckung aber keine Fehlerfreiheit

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University White-Box-Testing m C1-Überdeckung: Zweigüberdeckung l auch leere if-then-else-Zweige müssen durchlaufen werden l (while) Schleifen müssen sowohl durchlaufen als auch übersprungen werden l findet aber immer noch nicht alles: m (x, y) { int z = 0; if (x > 0) { z = 1; } else { z = -1;} if (y > 0) { z ++; } else { z --; } y = x / z; // <== ERROR: Division by zero on x = 1 and y = -1

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University White-Box-Testing m C2-Überdeckung (Pfadüberdeckung) l Testfälle sollen alle möglichen Durchläufe durch eine Methode testen l Schleifen null und ein mal durchlaufen l Problem exponentieller Aufwand: m (x, y) { int z = 0; if (x > 0) { z = 1; } else { z = -1;} if (y > 0) { z ++; } else { z --; } if (...) {... } else {...} y = x / y; // <== ERROR: Division by zero on y = 0 l Bei jedem if-Statement 2 Fortsetzungsmöglichkeiten l bei n if Statements 2 hoch n Pfade (20 ifs 1 Millonen Testfälle) l in der Praxis nicht vertretbarer Zeitaufwand l findet immer noch nicht alle Fehler Bemerkung: sowas findet man gut mit Reviews

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University White-Box-Testing m Coverage Tools l cobertura ( l EMMA ( l EclEmma ( l Coverlipse ( l jCoverage ( l OptimzeIt ( l Clover (

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

Black-Box-Testing m Funktionsorientierter Test l jede Funktion / Feature / Variable einzeln m Äquivalenzklassenbildung l Definitionsbereich der Variablen betrachten l Partitionierung, zwei Tests pro Partition l Randwerte m Regressionstests l Wiederhole Tests bei Programmänderungen l vgl. XP m Szenario-basierte Tests l vgl. FUP

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Random Testing

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University JUnit Tests – Test First Principle m im eXtreme Programming / agilen Methoden: JUnit Tests l Für jede Funktionalität (jedes Oval im Use-Case Diagramm) wird als erstes eine automatische Testroutine geschrieben l Testroutine ist einzeln aufrufbar und wird in Gesamttest eingehängt l Testroutine kommt in die gleichen Klassen, wie die Implementierung l Testroutinen verbleiben im Code und gehören zum Endprodukt l Aufgaben der Testroutine: l verschiedene Ausgangssituationen herstellen l Funktionalität aufrufen l Messpunkte im Code abfragen (Testanweisungen fügen Meldungen an Testreport an) l Testprotokoll ausgeben (Testreport mit erwartetem Output vergleichen) l expliziter Unit-Test kann entfallen m im Unified Process l Tester != Programmierer Defect-Removal-Rate ~ 1 per day

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests (anstatt Bausteintests) m Ein Assert pro (typischer) Fehler(quelle) m Coverage m vollautomatisch m unglaublich wertvoll bei Änderungen / iterativem Vorgehen

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Reviews m Entwickler selbst plus Co-Entwickler oder externer Reviewer m Check-Liste mit typischen Fehlern m Code ist schon Unit getestet => suche nur nach typischen Fehlerquellen: l Division durch 0 l null-Pointer Dereferenzierung l Speicher-Lecks l Array-Grenzen bei for-Schleifen l deckt kompliziertes if alle Fälle richtig ab l Terminiert die Schleife / Rekursion sicher l Dead-Lock-Gefahren l Racing Conditions l... + Defect-Removal-Rate ~ 1 per hour + Reviewer lernt viele Kniffe + Viele Leute kennen viele Teile des Gesamtprogramms m bei XP pair-programming

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