Softwaretechnik

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

Softwareentwicklungsmodelle

  • Modelle wie das Wasserfallmodell oder dem Agilen Modell

Programmiersprachen und Werkzeuge

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