Definition
Code-and-Fix Ansatz
- ist eine unstrukturierte Methode in der Softwareentwicklung, bei der die Programmierung ohne vorherige Planung erfolgt
- keine klare Phase für as Festlegen von Anforderungen oder das Entwerfen der Software
- schneller Einsteig in die Programmierung
- keine klare Anforderungen
- keine umfangreiche Planung benötigt
- Hohe Anpassungsfähigkeit
Prototypen und Experimentieren
- Ideal für Experimente
schlechte Code Qualität
- weniger Qualität und schwere Wartung
Langwierige Entwicklungszyklen
[!] Jeder macht was er will ! keine Planung oder Organisation
Die Softwarekrise in den 60 Jahren
- viele Software Projekte haben massive Budget Probleme
- Quote von Edgar Dijkstra
Kostenüberschreitungen
- Projekte überschreiten oftmals das Budget
Zeitüberschreitungen
- Die Projekte überschreiten massiv den Zeitrahmen
Qualitätsprobleme
Schwierige Kommunikation zwischen Entwicklern und Auftragsgebern
- Durch die fehlende Kommunikation waren keine klaren Anforderungen bekannt
- Man hat das gemacht, was man dachte was der Kunde benötigt, nicht was er wirklich benötigt
Mangelnde Erfahrung und Reife
- fehlendes Wissen → Branche noch in Kinderschuhen
unzureichende Werkzeuge und Methoden
- Es gab nicht die benötigten Werkzeuge um komplexere Probleme zu lösen
Mangelnde Qualitätskontrolle
Komplexität
- Die Komplexität von den erforderlichen Programmen ist gestiegen
Lösungsansätze der Softwarekrise :
Einführung von Engineering
- Einführung von Ingenieursprinzipien
Softwareentwicklungsmodelle
- Modelle wie das Wasserfallmodell oder dem Agilen Modell
Programmiersprachen und Werkzeuge
- Einführung von Programmiersprachen und Werkzeugen
Qualitätskontrolle und Testen
- JUNIT Systeme wurden noch nicht entwickelt
Standarisierung und bewährte Verfahren
Einführung des Softwareentwicklungsprozesses
- Code-And-Fix hat lange funktioniert, aber mit der Zeit wurde bessere Lösungen und Techniken entwickelt
Das Wasserfallmodell
- Arbeiten in Phasen
Entstehung
- In den frühen 50/60 Jahren
Große, Komplexe Probleme
- zunehmende komplexität
Verteilung von Ressourcen
- erheblich finanzielle Mittel für software Projekte erforderlich
Menschen mögen Certainty ( Sicherheit)
Strukturierte und sequenzielle Entwicklung
- Sie Softwareentwicklung erfolgt in klar definierten aufeinanderfolgenden Phasen
Klare Phasen des Wasserfallmodels
Vorteile des Wasserfallmodels
Strukturierte vorhesehbare Entwicklung
- Das Modell bietet klare Struktur
Klare Meilensteine und Dokumentation
- Jede Phase erzeugt Dokumentierte Ergebnisse
Geeignet für Projekte mit stabilen Anforderungen
- Funktioniert gut, wenn die Anforderungen sich nicht verändern
Probleme und Herausforderungen
- Je früher der Fehler entdeckt wird desto besser
- Phase 10 Fehler entdeckt : _Kosten 100! _
Wenige Flexibilität für sich ändernde Anforderungen
- Fehler in späteren Phasen zu bewältigen ist sehr schwer
Späte Fehlererkennung
- Fehler werden oft erst sehr spät entdeckt
Lange Entwicklungszyklen
- Die Entwicklung kann sehr lange dauern
Das Wasserfallmodell wurde auf Projektmanagement übertragen
Es ist wie ein Einbahnstraßensystem mit wenig bis keiner Flexibilität
Das führt zu Silo-Teams aus Experten und langen Übergaben
Da die Realität meistens anders ist wie erwartet, wird oft ein Agiles Modell angewandt
Lern Logbuch !
Liebes Lernlogbuch,
Wichtigste Erkenntnisse
Das Plangetriebene Modell kennengelernt Von der Softwarekrise gelernt
Was weiß ich jetzt was ich davor nicht wusste
Warum die Softwarekrise entstanden ist