einführung vorgehensmodelle und agile software entwicklung
TRANSCRIPT
![Page 1: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/1.jpg)
Software Technik
Christian Baranowski
HTWG Konstanz
Vorgehensmodelle und Agile Software Entwicklung
![Page 2: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/2.jpg)
WiederholungOberflächentests mit Selenium
![Page 3: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/3.jpg)
OberflächentestsEinführung in Selenium
Selenium Core
Selenium IDE
Selenium RC
![Page 4: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/4.jpg)
Selenium Core
open /JugsBase/zinsrechner.jsp
type betrag 20.0
type zinsatz 22.0
type laufzeit 100.0
clickAndWait submit
assertTextPresent 8649939365.27 Euro
Action - TabelleSelenium Befehl
Target
Argumente
am Beispiel eines Zinsrechner
![Page 5: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/5.jpg)
Selenium IDECapture & Replay Tests mit Selenium
Action Tabelle
![Page 6: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/6.jpg)
Selenium Remote ControlAnbindung Selenium in Java Code als Test Treiber
JAVA, PHP...
Selenium Server
Selenium Core
HTTP Proxy SUTWebapplikation
BrowserFirefox, IE
![Page 7: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/7.jpg)
Vorgehensmodelle
![Page 8: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/8.jpg)
Prozesse1
Methoden2
Werkzeuge3
Was ist Software Technik ?
![Page 9: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/9.jpg)
• Vorhersehbare, planbare und kontrollierbare Software-Entwicklungsprojekte
• Prozess Optimierungen
• Zertifizierbarkeit
• Prozessqualität
Warum Vorgehensmodelle?
Beherrschung komplexer Prozesse
![Page 10: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/10.jpg)
• Reihenfolge der Arbeitsabläufe (Phasen)
• Rahmenwerk (Framework)
• Fertigstellungskriterien (Umfang und Inhalt)
• Verantwortlichkeiten und Kompetenzen (Rollen)
• notwendige Mitarbeiterqualifikationen (Zertifikate)
• definierte Standards, Richtlinien und Werkzeuge
Was ist ein Vorgehensmodell?
![Page 11: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/11.jpg)
Klassische Modelle
• Wasserfall
• V-Modell
• RUP
• Spiralmodell
• ...
Welche Vorgehensmodell gibt es?
Agile Modelle
• Scrum
• Extreme Programming (XP)
• Crystal
• ...
![Page 12: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/12.jpg)
Softwarelebenszyklus
Problem Analyse
System Spezifikation
Umsetzung
System Testen
Betrieb und Wartung
![Page 13: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/13.jpg)
Analyse und Umsetzung
![Page 14: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/14.jpg)
Projekt Phasen
Test
Systemtest
Integrationstest
Modultest
Implementierung
Architektur Design
Spezifikation
![Page 15: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/15.jpg)
Requirement Analysis
Testing
System Design
Coding
Delivery
Wasserfallmodell
![Page 16: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/16.jpg)
• klare Abgrenzung der einzelnen Phasen
• einfache Möglichkeiten der Planung und Kontrolle
• bei stabilen Anforderungen und klarer Abschätzung von Kosten und Umfang sehr effektives Modell
Vorteile Wasserfall
![Page 17: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/17.jpg)
• Abgrenzungsproblem
• Abfolgeproblem
• Das Modell ist nur auf einfache Projekte anwendbar
• Unflexibel gegenüber Änderungen und im Vorgehen
• Frühes Festschreiben der Anforderungen ist sehr problematisch
• Einführung des Systems sehr spät nach Beginn des Entwicklungszyklus
• Fehler werden unter Umständen spät erkannt (Big Bang)
Nachteile Wasserfall
![Page 18: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/18.jpg)
Nachteile Wasserfall
0
20
40
60
80
Requirement Analysis System Design Coding Testing Delivery
Typischer Projektverlaufgeplanter Verlauf
Aufwand in PT
Wasserfall Phasen
Wir merken erst hier wir haben ein Problem!!!
![Page 19: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/19.jpg)
V-Modell
Anforderungsdefinition
Funktionaler Systementwurf
Technischer Systementwurf
Komponenten-spezifikation
Programmierung
Komponententest
Integrationstest
Systemtest
Abnahmetest
Konstruktionsphasen Te
stph
asen
![Page 20: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/20.jpg)
V-Modell XT
Quelle: V-Modell-XT Releases 1.3 Dokumentation
![Page 21: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/21.jpg)
• Anpassung an projektspezifische Anforderungen
• Integration vieler Aspekte des Entwicklungsprozesses
• Standardisierung der Abwicklung von Systemerstellungsprojekten
Vorteile V-Modell
![Page 22: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/22.jpg)
• Zu allgemein für kleine und mittlere Software-Modelle
• Sehr bürokratisch
• ...
Nachteile V-Modell
![Page 23: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/23.jpg)
Agile Software Entwicklung
![Page 24: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/24.jpg)
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Manifesto for Agile Software Development
http://agilemanifesto.org/
![Page 25: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/25.jpg)
iterative Softwareentwicklung
Quelle: Wikipedia DE
![Page 26: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/26.jpg)
Extreme Programming (XP)
Quelle: Wikipedia
![Page 27: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/27.jpg)
Extreme Programming (XP)
Quelle: Wikipedia
![Page 28: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/28.jpg)
Extreme Programming (XP)
Quelle: Wikipedia
![Page 29: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/29.jpg)
Kommunikation
![Page 30: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/30.jpg)
Team
![Page 31: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/31.jpg)
Planning Poker
Quelle: http://www.agile42.com/cms/pages/poker/
![Page 32: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/32.jpg)
Domain Driven Design
ENTITIES VALUE OBJECT SERVICES
REPOSITORIES FACTORIES
![Page 33: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/33.jpg)
Pair Programming
![Page 34: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/34.jpg)
Refactoring Grundlagen
![Page 35: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/35.jpg)
Refactoring
„Refactoring bezeichnet in der Software-Entwicklung die manuelle oder automatisierte Strukturverbesserung von Quelltexten unter Beibehaltung des beobachtbaren Verhaltens. Dabei sollen die Lesbarkeit, Verständlichkeit, Wartbarkeitund Erweiterbarkeit verbessert werden, mit dem Ziel, den jeweiligen Aufwand für Fehleranalyse und funktionale Erweiterungen deutlich zu senken.“ - Wikipedia
![Page 36: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/36.jpg)
Fundamentaler Refactoring Prozess
1.) Erstelle einen Test (Unit-Test) mit möglich 100% Abdeckung
2.) Führe den Test aus (Green bar)
3.) Refactoring
4.) Führe den Test aus (Green bar)
![Page 37: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/37.jpg)
Refactoring Patterns•Rename Class, Field, Method
•Extrahiere Methode
•Extrahiere lokale Variable
•Extrahiere Konstante
•Extrahiere Interface
•...
![Page 38: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/38.jpg)
Refactoring Patterns in Eclipse
![Page 39: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/39.jpg)
Übung 1
•Probieren Sie die Refactoring Methoden: Extrahiere Methode, Extrahiere lokale Variable, Extrahiere Konstante, Extrahiere InterfaceIn der Quicksort Beispiel Klasse aus
•Nutzen Sie Ihren Test um sicherzustellen dass Sie lediglich die Struktur ändern
![Page 40: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/40.jpg)
Test Driven Development
![Page 41: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/41.jpg)
Test Driven Development
Testgetriebene Entwicklung bezeichnet man eine Agile Methode zur Entwicklung einer Software, bei der Software-Tests vor den zu testenden Komponenten entwickelt werden.
![Page 42: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/42.jpg)
Test Driven Development Prozess
1.) Erstelle einen kleinen Test
2.) Führe alle Tests aus wobei der neue nicht funktioniert (Red bar)
3.) Erfülle den Test mit möglichst wenig Code
4.) Führe alle Tests aus, wobei alle Grün (Green-Bar)
5.) Refactoring - z.B. Entferne duplizierten Code
![Page 43: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/43.jpg)
Red Bar to Green Bar Pattern
![Page 44: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/44.jpg)
Test List Pattern
•Es empfiehlt sich beim TDD eine TODO Liste zu führen mit den Funktionen die noch umgesetzt werden soll
•Man spricht im TDD hier vom Test List Pattern - Test Driven Development by Example Kent Beck
![Page 45: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/45.jpg)
Geld Beispiel
Produkt Anzahl Preis Summe
Füller 10 10 € 100 €
Schokolade 5 25 € 125 €
TODO Liste:• 10 € * 10 = 100 €
![Page 46: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/46.jpg)
Geld Beispiel
TODO Liste:•10 € * 10 = 100 €
•Betrag sollte private sein
• Euro Nebeneffekte
![Page 47: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/47.jpg)
Geld Beispiel
TODO Liste:•10 € * 10 = 100 €
•Betrag sollte private sein
•Euro Nebeneffekte
• equals()•hashCode()
![Page 48: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/48.jpg)
Geld Beispiel
TODO Liste:•10 € * 10 = 100 €
• Betrag sollte private sein•Euro Nebeneffekte
•equals()
•hashCode()
•Equals null und object
![Page 49: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/49.jpg)
TDD Vorteile
•Tests
•Hohe Code Abdeckung
•Gray-Box Testing statt White-Box
•Erfüllung der Anforderungen ist messbar
•Durchführung eines Refactoring ist mit wenig Fehlern behaftet
•Die Unit-Testsuite stellt eine „ausführbare Spezifikation“ dar
![Page 50: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/50.jpg)
TDD Nachteile
•Entwickler die keine Erfahrung in der testgetriebenen Entwicklung besitzen ist die Umsetzung schwierig
•Hohes Test KnowHow bei den Entwickler nötig (kann man auch als Vorteil sehen)
•Hohe Anforderungen an Werkzeuge z.B. IDE
![Page 51: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/51.jpg)
Übung 2
•Erstellen Sie Testgetrieben eine Software Komponente die die Anzahl der Wörter in einem Text zählt
•Beispiel: „Hallo hallo Beispiel TEXT für Text.“Ergebnis:
Hallo Beispiel Text für
2 1 2 1
![Page 52: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/52.jpg)
Zusammenfassung Vorgehensmodelle
![Page 53: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/53.jpg)
Scrum
Quelle: scrumalliance.org
Betrachten wir nächste Woche vor der Klausur Vorbereitung ausführlich ...
![Page 54: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/54.jpg)
ArchitekturWeb Anwendungen
(Geschäftsanwendungen)
![Page 55: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/55.jpg)
Fassade Geschäfts- klassen
Test- Client
Web- Client
ArchitekturWeb Anwendungen
![Page 56: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/56.jpg)
ArchitekturWeb Anwendungen
Browser/HTML
JSF/JSP
BackingBeans
Fassade
Geschäftsklassen
Datenbank
DTO
Repository
![Page 57: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/57.jpg)
Einführung in Java Server Faces
![Page 58: Einführung Vorgehensmodelle und Agile Software Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060118/558c6217d8b42ac14e8b4649/html5/thumbnails/58.jpg)
Übung 3
•Erstellen Sie ein einfaches Formular zum erstellen eines Tasks mit JSF.
•Nutzen Sie als Basis den Coderahmen für die Übung.